]> git.lyx.org Git - features.git/commitdiff
Code duplication is bad.
authorRichard Heck <rgheck@comcast.net>
Mon, 20 Oct 2008 20:38:40 +0000 (20:38 +0000)
committerRichard Heck <rgheck@comcast.net>
Mon, 20 Oct 2008 20:38:40 +0000 (20:38 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26998 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/GuiDocument.cpp
src/frontends/qt4/GuiDocument.h

index d59e7d2804222b677e59b2af78948efbbe401244..65465f68ed83286b3e7930268d9ab24b652f20e4 100644 (file)
@@ -1389,24 +1389,24 @@ namespace {
 }
 
 
-void GuiDocument::modulesChanged()
+void GuiDocument::modulesToParams(BufferParams & bp)
 {
        // update list of loaded modules
-       bp_.clearLayoutModules();
+       bp.clearLayoutModules();
        int const srows = modules_sel_model_.rowCount();
        for (int i = 0; i < srows; ++i)
-               bp_.addLayoutModule(modules_sel_model_.getIDString(i));
+               bp.addLayoutModule(modules_sel_model_.getIDString(i));
 
        // update the list of removed modules
-       bp_.clearRemovedModules();
-       list<string> const & reqmods = bp_.baseClass()->defaultModules();
+       bp.clearRemovedModules();
+       list<string> const & reqmods = bp.baseClass()->defaultModules();
        list<string>::const_iterator rit = reqmods.begin();
        list<string>::const_iterator ren = reqmods.end();
 
        // check each of the default modules
        for (; rit != ren; rit++) {
-               list<string>::const_iterator mit = bp_.getModules().begin();
-               list<string>::const_iterator men = bp_.getModules().end();
+               list<string>::const_iterator mit = bp.getModules().begin();
+               list<string>::const_iterator men = bp.getModules().end();
                bool found = false;
                for (; mit != men; mit++) {
                        if (*rit == *mit) {
@@ -1416,9 +1416,14 @@ void GuiDocument::modulesChanged()
                }
                if (!found) {
                        // the module isn't present so must have been removed by the user
-                       bp_.addRemovedModule(*rit);
+                       bp.addRemovedModule(*rit);
                }
        }
+}
+
+void GuiDocument::modulesChanged()
+{
+       modulesToParams(bp_);
        bp_.makeDocumentClass();
        paramsToDialog();
 }
@@ -1609,32 +1614,7 @@ void GuiDocument::apply(BufferParams & params)
        }
 
        // Modules
-       params.clearLayoutModules();
-       int const srows = modules_sel_model_.rowCount();
-       vector<string> selModList;
-       for (int i = 0; i < srows; ++i)
-               params.addLayoutModule(modules_sel_model_.getIDString(i));
-       // update the list of removed modules
-       params.clearRemovedModules();
-       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++) {
-               list<string>::const_iterator mit = params.getModules().begin();
-               list<string>::const_iterator men = params.getModules().end();
-               bool found = false;
-               for (; mit != men; mit++) {
-                       if (*rit == *mit) {
-                               found = true;
-                               break;
-                       }
-               }
-               if (!found) {
-                       // the module isn't present so must have been removed by the user
-                       params.addRemovedModule(*rit);
-               }
-       }
+       modulesToParams(params);
 
        if (mathsModule->amsautoCB->isChecked()) {
                params.use_amsmath = BufferParams::package_auto;
index 1e9a1f38edd351a0fa66fa0de7857b5d3306b710..1fcb6a5448cb54fae326461b782edff731316950 100644 (file)
@@ -165,6 +165,8 @@ private:
        ///
        void dispatchParams();
        ///
+       void modulesToParams(BufferParams &);
+       ///
        bool isBufferDependent() const { return true; }
        /// always true since we don't manipulate document contents
        bool canApply() const { return true; }