]> git.lyx.org Git - lyx.git/blobdiff - src/TextClass.cpp
sk review
[lyx.git] / src / TextClass.cpp
index 91f68f729124df5327a9a7691c5c21d233d53ce6..eb92612d847b6d9bad0ead06aa018324b53164fe 100644 (file)
@@ -62,7 +62,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 = 81; // rikiheck: GuiName for counters
+int const LAYOUT_FORMAT = 82; // dourouc05: DocBook additions.
 
 
 // Layout format for the current lyx file format. Controls which format is
@@ -139,12 +139,12 @@ TextClass::TextClass()
          opt_pagesize_("default|a4|a5|b5|letter|legal|executive"),
          opt_pagestyle_("empty|plain|headings|fancy"), fontsize_format_("$$spt"), pagesize_("default"),
          pagesize_format_("$$spaper"), pagestyle_("default"), tablestyle_("default"),
+         docbookroot_("article"), docbookforceabstract_(false),
          columns_(1), sides_(OneSide), secnumdepth_(3), tocdepth_(3), outputType_(LATEX),
          outputFormat_("latex"), has_output_format_(false), defaultfont_(sane_font), 
          titletype_(TITLE_COMMAND_AFTER), titlename_("maketitle"),
          min_toclevel_(0), max_toclevel_(0), maxcitenames_(2),
-         cite_full_author_list_(true), bibintoc_(false)
-{
+         cite_full_author_list_(true), bibintoc_(false) {
 }
 
 
@@ -216,7 +216,9 @@ enum TextClassTags {
        TC_FULLAUTHORLIST,
        TC_OUTLINERNAME,
        TC_TABLESTYLE,
-       TC_BIBINTOC
+       TC_BIBINTOC,
+       TC_DOCBOOKROOT,
+       TC_DOCBOOKFORCEABSTRACT
 };
 
 
@@ -239,6 +241,8 @@ LexerKeyword textClassTags[] = {
        { "defaultfont",       TC_DEFAULTFONT },
        { "defaultmodule",     TC_DEFAULTMODULE },
        { "defaultstyle",      TC_DEFAULTSTYLE },
+       { "docbookforceabstract", TC_DOCBOOKFORCEABSTRACT },
+       { "docbookroot",       TC_DOCBOOKROOT },
        { "excludesmodule",    TC_EXCLUDESMODULE },
        { "float",             TC_FLOAT },
        { "format",            TC_FORMAT },
@@ -452,9 +456,6 @@ TextClass::ReturnValues TextClass::read(Lexer & lexrc, ReadType rt)
                        case LATEX:
                                outputFormat_ = "latex";
                                break;
-                       case DOCBOOK:
-                               outputFormat_ = "docbook";
-                               break;
                        case LITERATE:
                                outputFormat_ = "literate";
                                break;
@@ -868,10 +869,20 @@ TextClass::ReturnValues TextClass::read(Lexer & lexrc, ReadType rt)
                        error = !readOutlinerName(lexrc);
                        break;
 
-               case TC_TABLESTYLE:
+        case TC_TABLESTYLE:
                        lexrc.next();
                        tablestyle_ = rtrim(lexrc.getString());
                        break;
+
+               case TC_DOCBOOKROOT:
+                       if (lexrc.next())
+                               docbookroot_ = lexrc.getString();
+                       break;
+
+               case TC_DOCBOOKFORCEABSTRACT:
+                       if (lexrc.next())
+                               docbookforceabstract_ = lexrc.getBool();
+                       break;
                } // end of switch
        }
 
@@ -961,7 +972,6 @@ void TextClass::readTitleType(Lexer & lexrc)
 void TextClass::readOutputType(Lexer & lexrc)
 {
        LexerKeyword outputTypeTags[] = {
-               { "docbook",  DOCBOOK },
                { "latex",    LATEX },
                { "literate", LITERATE }
        };
@@ -974,7 +984,6 @@ void TextClass::readOutputType(Lexer & lexrc)
                lexrc.printError("Unknown output type `$$Token'");
                return;
        case LATEX:
-       case DOCBOOK:
        case LITERATE:
                outputType_ = static_cast<OutputType>(le);
                break;
@@ -994,7 +1003,6 @@ void TextClass::readClassOptions(Lexer & lexrc)
                CO_PAGESIZE_FORMAT,
                CO_PAGESTYLE,
                CO_OTHER,
-               CO_HEADER,
                CO_END
        };
 
@@ -1002,7 +1010,6 @@ void TextClass::readClassOptions(Lexer & lexrc)
                {"end",       CO_END },
                {"fontsize",  CO_FONTSIZE },
                {"fontsizeformat", CO_FONTSIZE_FORMAT },
-               {"header",    CO_HEADER },
                {"other",     CO_OTHER },
                {"pagesize",  CO_PAGESIZE },
                {"pagesizeformat", CO_PAGESIZE_FORMAT },
@@ -1048,10 +1055,6 @@ void TextClass::readClassOptions(Lexer & lexrc)
                        else
                                options_ += ',' + lexrc.getString();
                        break;
-               case CO_HEADER:
-                       lexrc.next();
-                       class_header_ = subst(lexrc.getString(), "&quot;", "\"");
-                       break;
                case CO_END:
                        getout = true;
                        break;
@@ -1373,6 +1376,8 @@ bool TextClass::readFloat(Lexer & lexrc)
                FT_HTMLSTYLE,
                FT_HTMLATTR,
                FT_HTMLTAG,
+               FT_DOCBOOKATTR,
+               FT_DOCBOOKTAG,
                FT_LISTCOMMAND,
                FT_REFPREFIX,
                FT_ALLOWED_PLACEMENT,
@@ -1386,6 +1391,8 @@ bool TextClass::readFloat(Lexer & lexrc)
                { "allowedplacement", FT_ALLOWED_PLACEMENT },
                { "allowssideways", FT_ALLOWS_SIDEWAYS },
                { "allowswide", FT_ALLOWS_WIDE },
+               { "docbookattr", FT_DOCBOOKATTR },
+               { "docbooktag", FT_DOCBOOKTAG },
                { "end", FT_END },
                { "extension", FT_EXT },
                { "guiname", FT_NAME },
@@ -1410,6 +1417,8 @@ bool TextClass::readFloat(Lexer & lexrc)
        string htmlattr;
        docstring htmlstyle;
        string htmltag;
+       string docbookattr;
+       string docbooktag;
        string listname;
        string listcommand;
        string name;
@@ -1523,6 +1532,14 @@ bool TextClass::readFloat(Lexer & lexrc)
                        lexrc.next();
                        htmltag = lexrc.getString();
                        break;
+               case FT_DOCBOOKATTR:
+                       lexrc.next();
+                       docbookattr = lexrc.getString();
+                       break;
+               case FT_DOCBOOKTAG:
+                       lexrc.next();
+                       docbooktag = lexrc.getString();
+                       break;
                case FT_END:
                        getout = true;
                        break;
@@ -1550,8 +1567,9 @@ bool TextClass::readFloat(Lexer & lexrc)
                }
                Floating fl(type, placement, ext, within, style, name,
                        listname, listcommand, refprefix, allowed_placement,
-                       htmltag, htmlattr, htmlstyle, required, usesfloat,
-                       ispredefined, allowswide, allowssideways);
+                       htmltag, htmlattr, htmlstyle, docbooktag, docbookattr,
+                       required, usesfloat, ispredefined, allowswide,
+                       allowssideways);
                floatlist_.newFloat(fl);
                // each float has its own counter
                counters_.newCounter(from_ascii(type), from_ascii(within),