]> git.lyx.org Git - lyx.git/blobdiff - src/TextClass.cpp
Clean includes in TextMetrics.cpp
[lyx.git] / src / TextClass.cpp
index a39ab34f2aacc7b5ae39ac0311894485bb3eeb88..03a7624a9ac776f396f819859c39dc8cb646a64f 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 = 82; // dourouc05: DocBook additions.
+int const LAYOUT_FORMAT = 85; // tcuvelier: DocBookInnerTag.
 
 
 // Layout format for the current lyx file format. Controls which format is
@@ -92,7 +92,7 @@ bool layout2layout(FileName const & filename, FileName const & tempfile,
        LYXERR(Debug::TCLASS, "Running `" << command_str << '\'');
 
        cmd_ret const ret = runCommand(command_str);
-       if (ret.first != 0) {
+       if (!ret.valid) {
                if (format == LAYOUT_FORMAT)
                        LYXERR0("Conversion of layout with layout2layout.py has failed.");
                return false;
@@ -139,19 +139,19 @@ 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), docbookroot_("article"), docbookforceabstract_(false)
-{
+         cite_full_author_list_(true), bibintoc_(false) {
 }
 
 
-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;
        }
@@ -456,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;
@@ -518,7 +515,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;
                        }
 
@@ -529,14 +526,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);
 
@@ -554,7 +551,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;
                }
@@ -975,7 +972,6 @@ void TextClass::readTitleType(Lexer & lexrc)
 void TextClass::readOutputType(Lexer & lexrc)
 {
        LexerKeyword outputTypeTags[] = {
-               { "docbook",  DOCBOOK },
                { "latex",    LATEX },
                { "literate", LITERATE }
        };
@@ -988,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;
@@ -1383,6 +1378,7 @@ bool TextClass::readFloat(Lexer & lexrc)
                FT_HTMLTAG,
                FT_DOCBOOKATTR,
                FT_DOCBOOKTAG,
+               FT_DOCBOOKTAGTYPE,
                FT_LISTCOMMAND,
                FT_REFPREFIX,
                FT_ALLOWED_PLACEMENT,
@@ -1398,6 +1394,7 @@ bool TextClass::readFloat(Lexer & lexrc)
                { "allowswide", FT_ALLOWS_WIDE },
                { "docbookattr", FT_DOCBOOKATTR },
                { "docbooktag", FT_DOCBOOKTAG },
+               { "docbooktagtype", FT_DOCBOOKTAGTYPE },
                { "end", FT_END },
                { "extension", FT_EXT },
                { "guiname", FT_NAME },
@@ -1424,6 +1421,7 @@ bool TextClass::readFloat(Lexer & lexrc)
        string htmltag;
        string docbookattr;
        string docbooktag;
+       string docbooktagtype;
        string listname;
        string listcommand;
        string name;
@@ -1545,6 +1543,10 @@ bool TextClass::readFloat(Lexer & lexrc)
                        lexrc.next();
                        docbooktag = lexrc.getString();
                        break;
+               case FT_DOCBOOKTAGTYPE:
+                       lexrc.next();
+                       docbooktagtype = lexrc.getString();
+                       break;
                case FT_END:
                        getout = true;
                        break;
@@ -1572,9 +1574,9 @@ bool TextClass::readFloat(Lexer & lexrc)
                }
                Floating fl(type, placement, ext, within, style, name,
                        listname, listcommand, refprefix, allowed_placement,
-                       htmltag, htmlattr, htmlstyle, docbooktag, docbookattr,
-                       required, usesfloat, ispredefined, allowswide,
-                       allowssideways);
+                       htmltag, htmlattr, htmlstyle, docbookattr,
+                       docbooktagtype, required, usesfloat, ispredefined,
+               allowswide, allowssideways);
                floatlist_.newFloat(fl);
                // each float has its own counter
                counters_.newCounter(from_ascii(type), from_ascii(within),
@@ -1860,7 +1862,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);