X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTextClass.cpp;h=cd87cca2e4efd6d1b2ae052ba94ea5198c6a458f;hb=5887601f6836ebf6f2b16cc7587a98cc3aa6c391;hp=2c467b6d4cf5262145938a62226f5c3bb5b058d5;hpb=968f7e8cacac366fe86466c1ed74a3cd5fe3387c;p=lyx.git diff --git a/src/TextClass.cpp b/src/TextClass.cpp index 2c467b6d4c..cd87cca2e4 100644 --- a/src/TextClass.cpp +++ b/src/TextClass.cpp @@ -16,22 +16,19 @@ #include "TextClass.h" -#include "LayoutFile.h" #include "CiteEnginesList.h" -#include "Color.h" #include "Counters.h" #include "Floating.h" #include "FloatList.h" #include "Layout.h" +#include "LayoutFile.h" #include "Lexer.h" -#include "Font.h" #include "ModuleList.h" #include "frontends/alert.h" #include "support/lassert.h" #include "support/debug.h" -#include "support/ExceptionMessage.h" #include "support/FileName.h" #include "support/filetools.h" #include "support/gettext.h" @@ -62,7 +59,7 @@ namespace lyx { // You should also run the development/tools/updatelayouts.py script, // to update the format of all of our layout files. // -int const LAYOUT_FORMAT = 84; // tcuvelier: DocBook*TagType. +int const LAYOUT_FORMAT = 87; // rkh: master --> parent for counters // Layout format for the current lyx file format. Controls which format is @@ -148,10 +145,10 @@ TextClass::TextClass() } -bool TextClass::readStyle(Lexer & lexrc, Layout & lay) const +bool TextClass::readStyle(Lexer & lexrc, Layout & lay, ReadType rt) const { LYXERR(Debug::TCLASS, "Reading style " << to_utf8(lay.name())); - if (!lay.read(lexrc, *this)) { + if (!lay.read(lexrc, *this, rt == VALIDATION)) { LYXERR0("Error parsing style `" << to_utf8(lay.name()) << '\''); return false; } @@ -515,7 +512,7 @@ TextClass::ReturnValues TextClass::read(Lexer & lexrc, ReadType rt) Layout lay; // Since we couldn't read the name, we just scan the rest // of the style and discard it. - error = !readStyle(lexrc, lay); + error = !readStyle(lexrc, lay, rt); break; } @@ -526,14 +523,14 @@ TextClass::ReturnValues TextClass::read(Lexer & lexrc, ReadType rt) // block. if (have_layout && !providestyle) { Layout & lay = operator[](name); - error = !readStyle(lexrc, lay); + error = !readStyle(lexrc, lay, rt); } // If the layout does not exist, then we want to create a new // one, but not if we are in a ModifyStyle block. else if (!have_layout && !modifystyle) { Layout layout; layout.setName(name); - error = !readStyle(lexrc, layout); + error = !readStyle(lexrc, layout, rt); if (!error) layoutlist_.push_back(layout); @@ -551,7 +548,7 @@ TextClass::ReturnValues TextClass::read(Lexer & lexrc, ReadType rt) else { Layout lay; // signal to coverity that we do not care about the result - (void)readStyle(lexrc, lay); + (void)readStyle(lexrc, lay, rt); } break; } @@ -1862,7 +1859,7 @@ Layout TextClass::createBasicLayout(docstring const & name, bool unknown) const defaultLayout = new Layout; defaultLayout->setUnknown(unknown); defaultLayout->setName(name); - if (!readStyle(lex, *defaultLayout)) { + if (!readStyle(lex, *defaultLayout, BASECLASS)) { // The only way this happens is because the hardcoded layout above // is wrong. LATTEST(false); @@ -2048,6 +2045,7 @@ vector const DocumentClass::citeCommands( { vector const styles = citeStyles(type); vector cmds; + cmds.reserve(styles.size()); for (auto const & cs : styles) cmds.push_back(cs.name);