]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiDocument.cpp
** fix bug 2114. Fileformat change.
[lyx.git] / src / frontends / qt4 / GuiDocument.cpp
index 622156603da014131709f832a85e694c71d07630..dcc118de19c589df76857ec6bb5f3a99916f1672 100644 (file)
@@ -71,15 +71,21 @@ namespace {
 
 char const * const tex_graphics[] =
 {
-       "default", "dvips", "dvitops", "emtex",
-       "ln", "oztex", "textures", "none", ""
+       "default", "dvialw", "dvilaser", "dvipdf", "dvipdfm", "dvipdfmx",
+       "dvips", "dvipsone", "dvitops", "dviwin", "dviwindo", "dvi2ps", "emtex",
+       "ln", "oztex", "pctexhp", "pctexps", "pctexwin", "pctex32", "pdftex",
+       "psprint", "pubps", "tcidvi", "textures", "truetex", "vtex", "xdvi",
+       "xetex", "none", ""
 };
 
 
 char const * const tex_graphics_gui[] =
 {
-       N_("Default"), "Dvips", "DVItoPS", "EmTeX",
-       "LN", "OzTeX", "Textures", N_("None"), ""
+       N_("Default"), "dvialw", "DviLaser", "dvipdf", "DVIPDFM", "DVIPDFMx",
+       "Dvips", "DVIPSONE", "DVItoPS", "DVIWIN", "DVIWindo", "dvi2ps", "EmTeX",
+       "LN", "OzTeX", "pctexhp", "pctexps", "pctexwin", "PCTeX32", "pdfTeX",
+       "psprint", "pubps", "tcidvi", "Textures", "TrueTeX", "VTeX", "xdvi",
+       "XeTeX", N_("None"), ""
 };
 
 
@@ -890,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)),
@@ -907,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, 
@@ -1342,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_);
 }
 
 
@@ -1588,9 +1597,9 @@ void GuiDocument::apply(BufferParams & params)
                params.addLayoutModule(modules_sel_model_.getIDString(i));
        // update the list of removed modules
        params.clearRemovedModules();
-       set<string> const & reqmods = params.baseClass()->defaultModules();
-       set<string>::const_iterator rit = reqmods.begin();
-       set<string>::const_iterator ren = reqmods.end();
+       list<string> const & reqmods = params.baseClass()->defaultModules();
+       list<string>::const_iterator rit = reqmods.begin();
+       list<string>::const_iterator ren = reqmods.end();
        // check each of the required modules
        for (; rit != ren; rit++) {
                vector<string>::const_iterator mit = params.getModules().begin();
@@ -1694,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());
@@ -1989,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(