X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiDocument.cpp;h=dcc118de19c589df76857ec6bb5f3a99916f1672;hb=d45ca67d1d3e2d4fdc344cd2a1517725bc91723a;hp=ed6d550dfa036d60592132886bc970668167b2d1;hpb=ce09194e43070b17d9a2fe8bac7129cc45300033;p=lyx.git diff --git a/src/frontends/qt4/GuiDocument.cpp b/src/frontends/qt4/GuiDocument.cpp index ed6d550dfa..dcc118de19 100644 --- a/src/frontends/qt4/GuiDocument.cpp +++ b/src/frontends/qt4/GuiDocument.cpp @@ -896,6 +896,8 @@ GuiDocument::GuiDocument(GuiView & lv) // latex class connect(latexModule->optionsLE, SIGNAL(textChanged(QString)), this, SLOT(change_adaptor())); + connect(latexModule->defaultOptionsCB, SIGNAL(clicked()), + this, SLOT(change_adaptor())); connect(latexModule->psdriverCO, SIGNAL(activated(int)), this, SLOT(change_adaptor())); connect(latexModule->classCO, SIGNAL(activated(int)), @@ -913,7 +915,7 @@ GuiDocument::GuiDocument(GuiView & lv) connect(latexModule->childDocPB, SIGNAL(clicked()), this, SLOT(browseMaster())); - selectionManager = + selectionManager = new ModuleSelectionManager(latexModule->availableLV, latexModule->selectedLV, latexModule->addPB, latexModule->deletePB, @@ -1348,13 +1350,14 @@ void GuiDocument::classChanged() applyView(); } bp_.useClassDefaults(); - paramsToDialog(bp_); } // FIXME There's a little bug here connected with auto_reset, namely, // that, if the preceding is skipped and the user has changed the // modules before changing the class, those changes will be lost on // update. But maybe that's what we want? updateSelectedModules(); + bp_.makeDocumentClass(); + paramsToDialog(bp_); } @@ -1594,9 +1597,9 @@ void GuiDocument::apply(BufferParams & params) params.addLayoutModule(modules_sel_model_.getIDString(i)); // update the list of removed modules params.clearRemovedModules(); - set const & reqmods = params.baseClass()->defaultModules(); - set::const_iterator rit = reqmods.begin(); - set::const_iterator ren = reqmods.end(); + list const & reqmods = params.baseClass()->defaultModules(); + list::const_iterator rit = reqmods.begin(); + list::const_iterator ren = reqmods.end(); // check each of the required modules for (; rit != ren; rit++) { vector::const_iterator mit = params.getModules().begin(); @@ -1700,6 +1703,9 @@ void GuiDocument::apply(BufferParams & params) params.options = fromqstr(latexModule->optionsLE->text()); + params.use_default_options = + latexModule->defaultOptionsCB->isChecked(); + if (latexModule->childDocGB->isChecked()) params.master = fromqstr(latexModule->childDocLE->text()); @@ -1995,6 +2001,24 @@ void GuiDocument::paramsToDialog(BufferParams const & params) latexModule->optionsLE->setText(QString()); } + latexModule->defaultOptionsCB->setChecked( + params.use_default_options); + + if (!documentClass().options().empty()) { + latexModule->defaultOptionsLE->setText( + toqstr(documentClass().options())); + } else { + latexModule->defaultOptionsLE->setText( + toqstr(_("[No options predefined]"))); + } + + latexModule->defaultOptionsLE->setEnabled( + params.use_default_options + && !documentClass().options().empty()); + + latexModule->defaultOptionsCB->setEnabled( + !documentClass().options().empty()); + if (!params.master.empty()) { latexModule->childDocGB->setChecked(true); latexModule->childDocLE->setText(