]> git.lyx.org Git - lyx.git/blobdiff - src/TextClass.cpp
Clean includes in TextMetrics.cpp
[lyx.git] / src / TextClass.cpp
index 79cdabd86996f5d5ad5935069c096bdd2f844382..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 = 83; // tcuvelier: DocBookWrapperMergeWithPrevious.
+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;
@@ -148,10 +148,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 +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;
                        }
 
@@ -526,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);
 
@@ -551,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;
                }
@@ -1378,6 +1378,7 @@ bool TextClass::readFloat(Lexer & lexrc)
                FT_HTMLTAG,
                FT_DOCBOOKATTR,
                FT_DOCBOOKTAG,
+               FT_DOCBOOKTAGTYPE,
                FT_LISTCOMMAND,
                FT_REFPREFIX,
                FT_ALLOWED_PLACEMENT,
@@ -1393,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 },
@@ -1419,6 +1421,7 @@ bool TextClass::readFloat(Lexer & lexrc)
        string htmltag;
        string docbookattr;
        string docbooktag;
+       string docbooktagtype;
        string listname;
        string listcommand;
        string name;
@@ -1540,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;
@@ -1567,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),
@@ -1855,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);