From afcc0e0490ff1333c577a1858c9276f38199c527 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Mon, 20 Oct 2008 20:38:40 +0000 Subject: [PATCH] Code duplication is bad. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26998 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt4/GuiDocument.cpp | 48 +++++++++---------------------- src/frontends/qt4/GuiDocument.h | 2 ++ 2 files changed, 16 insertions(+), 34 deletions(-) diff --git a/src/frontends/qt4/GuiDocument.cpp b/src/frontends/qt4/GuiDocument.cpp index d59e7d2804..65465f68ed 100644 --- a/src/frontends/qt4/GuiDocument.cpp +++ b/src/frontends/qt4/GuiDocument.cpp @@ -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 const & reqmods = bp_.baseClass()->defaultModules(); + bp.clearRemovedModules(); + list const & reqmods = bp.baseClass()->defaultModules(); list::const_iterator rit = reqmods.begin(); list::const_iterator ren = reqmods.end(); // check each of the default modules for (; rit != ren; rit++) { - list::const_iterator mit = bp_.getModules().begin(); - list::const_iterator men = bp_.getModules().end(); + list::const_iterator mit = bp.getModules().begin(); + list::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 selModList; - for (int i = 0; i < srows; ++i) - params.addLayoutModule(modules_sel_model_.getIDString(i)); - // update the list of removed modules - params.clearRemovedModules(); - 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++) { - list::const_iterator mit = params.getModules().begin(); - list::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; diff --git a/src/frontends/qt4/GuiDocument.h b/src/frontends/qt4/GuiDocument.h index 1e9a1f38ed..1fcb6a5448 100644 --- a/src/frontends/qt4/GuiDocument.h +++ b/src/frontends/qt4/GuiDocument.h @@ -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; } -- 2.39.2