X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLayout.cpp;h=e368f23bbda0e821d3928b0f58538e5290a9e577;hb=3f7d2a66f522a45583e0a8b0ba734bb71f0ddde0;hp=7fedb3209c11fc16da9b7edc43a6c3d4626958e2;hpb=0fb8f3fba12ab9fb395ef40e21b5ba50a5e0b9df;p=lyx.git diff --git a/src/Layout.cpp b/src/Layout.cpp index 7fedb3209c..e368f23bbd 100644 --- a/src/Layout.cpp +++ b/src/Layout.cpp @@ -37,6 +37,7 @@ enum LayoutTags { LT_ALIGNPOSSIBLE, LT_MARGIN, LT_BOTTOMSEP, + LT_CATEGORY, LT_COMMANDDEPTH, LT_COPYSTYLE, LT_DEPENDSON, @@ -137,6 +138,7 @@ bool Layout::read(Lexer & lexrc, TextClass const & tclass) { "align", LT_ALIGN }, { "alignpossible", LT_ALIGNPOSSIBLE }, { "bottomsep", LT_BOTTOMSEP }, + { "category", LT_CATEGORY }, { "commanddepth", LT_COMMANDDEPTH }, { "copystyle", LT_COPYSTYLE }, { "dependson", LT_DEPENDSON }, @@ -209,6 +211,11 @@ bool Layout::read(Lexer & lexrc, TextClass const & tclass) finished = true; break; + case LT_CATEGORY: + if (lexrc.next()) + category_ = lexrc.getDocString(); + break; + case LT_COPYSTYLE: // initialize with a known style if (lexrc.next()) { docstring const style = subst(lexrc.getDocString(), @@ -216,16 +223,17 @@ bool Layout::read(Lexer & lexrc, TextClass const & tclass) if (tclass.hasLayout(style)) { docstring const tmpname = name_; - this->operator=(*tclass[style]); + this->operator=(tclass[style]); name_ = tmpname; } else { lyxerr << "Cannot copy unknown style `" << to_utf8(style) << "'\n" << "All layouts so far:" << endl; - for (size_t i = 0; i != tclass.layoutCount(); ++i) - lyxerr << to_utf8(tclass.layout(i)->name()) - << endl; + DocumentClass::const_iterator lit = tclass.begin(); + DocumentClass::const_iterator len = tclass.end(); + for (; lit != len; ++lit) + lyxerr << to_utf8(lit->name()) << endl; //lexrc.printError("Cannot copy known " // "style `$$Token'"); @@ -240,7 +248,7 @@ bool Layout::read(Lexer & lexrc, TextClass const & tclass) if (tclass.hasLayout(style)) { docstring const tmpname = name_; - this->operator=(*tclass[style]); + this->operator=(tclass[style]); name_ = tmpname; if (obsoleted_by().empty()) obsoleted_by_ = style; @@ -822,6 +830,16 @@ docstring const & Layout::depends_on() const } +bool Layout::operator==(Layout const & rhs) const +{ + // This is enough for the applications we actually make, + // at least at the moment. But we could check more. + return name() == rhs.name() + && latexname() == rhs.latexname() + && latextype == rhs.latextype; +} + + Layout * Layout::forCaption() { Layout * lay = new Layout();