]> git.lyx.org Git - features.git/blobdiff - src/frontends/qt4/GuiDocument.cpp
Support for removing "default" modules.
[features.git] / src / frontends / qt4 / GuiDocument.cpp
index c5be6ef4e5fdf3516114001065517c80627f9096..2a55c7f46bb51e39c1f56927b30cfe919ca1df70 100644 (file)
@@ -1565,6 +1565,27 @@ void GuiDocument::apply(BufferParams & params)
        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();
+       set<string> const & reqmods = params.baseClass()->defaultModules();
+       set<string>::const_iterator rit = reqmods.begin();
+       set<string>::const_iterator ren = reqmods.end();
+       // check each of the required modules
+       for (; rit != ren; rit++) {
+               vector<string>::const_iterator mit = params.getModules().begin();
+               vector<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);
+               }
+       }
 
        if (mathsModule->amsautoCB->isChecked()) {
                params.use_amsmath = BufferParams::package_auto;