X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLayout.cpp;h=7801e8fcb27f96c4f4b0dba7799e55c171290650;hb=4300feb8595c8542050adedf664cd4bfda7ede12;hp=ea651daf220708209d710a7e1596b0d71c77de3c;hpb=75bfed55079cab6b73fbea6ce4ae3f10d1af3b91;p=lyx.git diff --git a/src/Layout.cpp b/src/Layout.cpp index ea651daf22..7801e8fcb2 100644 --- a/src/Layout.cpp +++ b/src/Layout.cpp @@ -40,6 +40,8 @@ enum LayoutTags { LT_ALIGN = 1, LT_ALIGNPOSSIBLE, LT_ARGUMENT, + LT_AUTONESTS, + LT_AUTONESTEDBY, LT_MARGIN, LT_BOTTOMSEP, LT_CATEGORY, @@ -72,6 +74,7 @@ enum LayoutTags { LT_LATEXTYPE, LT_LEFTDELIM, LT_LEFTMARGIN, + LT_NEED_CPROTECT, LT_NEED_PROTECT, LT_NEWLINE, LT_NEXTNOINDENT, @@ -118,7 +121,7 @@ enum LayoutTags { ///////////////////// Layout::Layout() - : add_to_toc_(false), is_toc_caption_(false) + : add_to_toc_(false), is_toc_caption_(true) { unknown_ = false; margintype = MARGIN_STATIC; @@ -128,6 +131,7 @@ Layout::Layout() intitle = false; inpreamble = false; needprotect = false; + needcprotect = false; keepempty = false; font = inherit_font; labelfont = inherit_font; @@ -191,6 +195,7 @@ bool Layout::readIgnoreForcelocal(Lexer & lex, TextClass const & tclass) { "align", LT_ALIGN }, { "alignpossible", LT_ALIGNPOSSIBLE }, { "argument", LT_ARGUMENT }, + { "autonests", LT_AUTONESTS }, { "babelpreamble", LT_BABELPREAMBLE }, { "bottomsep", LT_BOTTOMSEP }, { "category", LT_CATEGORY }, @@ -217,6 +222,7 @@ bool Layout::readIgnoreForcelocal(Lexer & lex, TextClass const & tclass) { "innertag", LT_INNERTAG }, { "inpreamble", LT_INPREAMBLE }, { "intitle", LT_INTITLE }, + { "isautonestedby", LT_AUTONESTEDBY }, { "istoccaption", LT_ISTOCCAPTION }, { "itemcommand", LT_ITEMCOMMAND }, { "itemsep", LT_ITEMSEP }, @@ -238,6 +244,7 @@ bool Layout::readIgnoreForcelocal(Lexer & lex, TextClass const & tclass) { "leftdelim", LT_LEFTDELIM }, { "leftmargin", LT_LEFTMARGIN }, { "margin", LT_MARGIN }, + { "needcprotect", LT_NEED_CPROTECT }, { "needprotect", LT_NEED_PROTECT }, { "newline", LT_NEWLINE }, { "nextnoindent", LT_NEXTNOINDENT }, @@ -389,6 +396,10 @@ bool Layout::readIgnoreForcelocal(Lexer & lex, TextClass const & tclass) lex >> needprotect; break; + case LT_NEED_CPROTECT: + lex >> needcprotect; + break; + case LT_KEEPEMPTY: lex >> keepempty; break; @@ -545,23 +556,19 @@ bool Layout::readIgnoreForcelocal(Lexer & lex, TextClass const & tclass) // FIXME: this means LT_LABELSTRING_APPENDIX may only // occur after LT_LABELSTRING lex >> labelstring_; - labelstring_ = trim(labelstring_); labelstring_appendix_ = labelstring_; break; case LT_ENDLABELSTRING: lex >> endlabelstring_; - endlabelstring_ = trim(endlabelstring_); break; case LT_LABELSTRING_APPENDIX: lex >> labelstring_appendix_; - labelstring_appendix_ = trim(labelstring_appendix_); break; case LT_LABELCOUNTER: lex >> counter; - counter = trim(counter); break; case LT_PAR_GROUP: @@ -596,6 +603,30 @@ bool Layout::readIgnoreForcelocal(Lexer & lex, TextClass const & tclass) break; } + case LT_AUTONESTS: { + docstring const autonest = + subst(subst(subst(lex.getLongString(from_ascii("EndAutoNests")), + from_ascii("\n"), docstring()), + from_ascii(" "), docstring()), + from_ascii("\t"), docstring()); + vector const autonests = + getVectorFromString(autonest); + autonests_.insert(autonests.begin(), autonests.end()); + break; + } + + case LT_AUTONESTEDBY: { + docstring const autonest = + subst(subst(subst(lex.getLongString(from_ascii("EndIsAutoNestedBy")), + from_ascii("\n"), docstring()), + from_ascii(" "), docstring()), + from_ascii("\t"), docstring()); + vector const autonests = + getVectorFromString(autonest); + autonested_by_.insert(autonests.begin(), autonests.end()); + break; + } + case LT_REFPREFIX: { docstring arg; lex >> arg; @@ -1188,6 +1219,7 @@ void Layout::write(ostream & os) const it != postcommandargs_.end(); ++it) writeArgument(os, it->first, it->second); os << "\tNeedProtect " << needprotect << "\n" + "\tNeedCProtect " << needcprotect << "\n" "\tKeepEmpty " << keepempty << '\n'; if (labelfont == font) lyxWrite(os, font, "Font", 1); @@ -1391,6 +1423,26 @@ void Layout::write(ostream & os) const } os << '\n'; } + if (!autonests_.empty()) { + os << "\tAutoNests\n\t"; + for (set::const_iterator it = autonests_.begin(); + it != autonests_.end(); ++it) { + if (it != autonests_.begin()) + os << ','; + os << to_utf8(*it); + } + os << "\n\tEndAutoNests\n"; + } + if (!autonested_by_.empty()) { + os << "\tIsAutoNestedBy\n\t"; + for (set::const_iterator it = autonested_by_.begin(); + it != autonested_by_.end(); ++it) { + if (it != autonested_by_.begin()) + os << ','; + os << to_utf8(*it); + } + os << "\n\tIsAutoNestedBy\n"; + } if (refprefix.empty()) os << "\tRefPrefix OFF\n"; else @@ -1510,13 +1562,8 @@ string const & Layout::htmlitemattr() const string const & Layout::htmllabeltag() const { - if (htmllabeltag_.empty()) { - if (labeltype != LABEL_ABOVE && - labeltype != LABEL_CENTERED) + if (htmllabeltag_.empty()) htmllabeltag_ = "span"; - else - htmllabeltag_ = "div"; - } return htmllabeltag_; } @@ -1578,7 +1625,7 @@ string makeMarginValue(char const * side, double d) return os.str(); } -} +} // namespace void Layout::makeDefaultCSS() const