From 297d5d1f4ee71252770f97ca544fdf7ff514e58a Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Thu, 16 Oct 2008 17:14:46 +0000 Subject: [PATCH] Factorize out some of this. Just a bit more cleanup, prior to the patch I've been promising.... git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26923 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/BufferParams.cpp | 62 +++++++++++++++++++++++++------------------- src/BufferParams.h | 2 ++ 2 files changed, 37 insertions(+), 27 deletions(-) diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp index 81481ada8f..647206426e 100644 --- a/src/BufferParams.cpp +++ b/src/BufferParams.cpp @@ -1468,33 +1468,9 @@ void BufferParams::setDocumentClass(DocumentClass const * const tc) { } -bool BufferParams::setBaseClass(string const & classname) +void BufferParams::addDefaultModules() { - LYXERR(Debug::TCLASS, "setBaseClass: " << classname); - LayoutFileList & bcl = LayoutFileList::get(); - if (!bcl.haveClass(classname)) { - docstring s = - bformat(_("The document class %1$s could not be found. " - "A default textclass with default layouts will be used. " - "LyX might not be able to produce output unless a correct " - "textclass is selected from the document settings dialog."), - from_utf8(classname)); - frontend::Alert::error(_("Document class not found"), s); - bcl.addEmptyClass(classname); - } - - bool const success = bcl[classname].load(); - if (!success) { - docstring s = - bformat(_("The document class %1$s could not be loaded."), - from_utf8(classname)); - frontend::Alert::error(_("Could not load class"), s); - return false; - } - - pimpl_->baseClass_ = classname; - - // add any default modules not already in use + // add any default modules not already in use list const & mods = baseClass()->defaultModules(); list::const_iterator mit = mods.begin(); list::const_iterator men = mods.end(); @@ -1566,7 +1542,39 @@ bool BufferParams::setBaseClass(string const & classname) } } - layoutModules_.insert(layoutModules_.begin(), modulesToAdd.begin(), modulesToAdd.end()); + // OK, now we can add the default modules. + layoutModules_.insert( + layoutModules_.begin(), modulesToAdd.begin(), modulesToAdd.end()); +} + + +bool BufferParams::setBaseClass(string const & classname) +{ + LYXERR(Debug::TCLASS, "setBaseClass: " << classname); + LayoutFileList & bcl = LayoutFileList::get(); + if (!bcl.haveClass(classname)) { + docstring s = + bformat(_("The document class %1$s could not be found. " + "A default textclass with default layouts will be used. " + "LyX might not be able to produce output unless a correct " + "textclass is selected from the document settings dialog."), + from_utf8(classname)); + frontend::Alert::error(_("Document class not found"), s); + bcl.addEmptyClass(classname); + } + + bool const success = bcl[classname].load(); + if (!success) { + docstring s = + bformat(_("The document class %1$s could not be loaded."), + from_utf8(classname)); + frontend::Alert::error(_("Could not load class"), s); + return false; + } + + pimpl_->baseClass_ = classname; + addDefaultModules(); + return true; } diff --git a/src/BufferParams.h b/src/BufferParams.h index 7d1d777080..a7ef4dad46 100644 --- a/src/BufferParams.h +++ b/src/BufferParams.h @@ -344,6 +344,8 @@ private: void readModules(Lexer &); /// void readRemovedModules(Lexer &); + /// + void addDefaultModules(); /// for use with natbib CiteEngine cite_engine_; -- 2.39.2