};
// Keep the changes documented in the Customization manual.
-int const FORMAT = 13;
+int const FORMAT = 15;
bool layout2layout(FileName const & filename, FileName const & tempfile)
TextClass::TextClass()
{
outputType_ = LATEX;
+ outputFormat_ = "latex";
columns_ = 1;
sides_ = OneSide;
secnumdepth_ = 3;
enum TextClassTags {
TC_OUTPUTTYPE = 1,
+ TC_OUTPUTFORMAT,
TC_INPUT,
TC_STYLE,
TC_DEFAULTSTYLE,
{ "leftmargin", TC_LEFTMARGIN },
{ "nofloat", TC_NOFLOAT },
{ "nostyle", TC_NOSTYLE },
+ { "outputformat", TC_OUTPUTFORMAT },
{ "outputtype", TC_OUTPUTTYPE },
{ "pagestyle", TC_PAGESTYLE },
{ "preamble", TC_PREAMBLE },
FileName const tempfile = FileName::tempName("convert_layout");
bool success = layout2layout(filename, tempfile);
if (success)
- success = read(tempfile, rt);
+ success = readWithoutConv(tempfile, rt) == OK;
tempfile.removeFile();
return success;
}
-bool TextClass::read(FileName const & filename, ReadType rt)
+
+TextClass::ReturnValues TextClass::readWithoutConv(FileName const & filename, ReadType rt)
{
if (!filename.isReadableFile()) {
lyxerr << "Cannot read layout file `" << filename << "'."
<< endl;
- return false;
+ return ERROR;
}
LYXERR(Debug::TCLASS, "Reading " + translateRT(rt) + ": " +
LYXERR(Debug::TCLASS, "Finished reading " + translateRT(rt) + ": " +
to_utf8(makeDisplayPath(filename.absFilename())));
-
- if (retval != FORMAT_MISMATCH)
+
+ return retval;
+}
+
+
+bool TextClass::read(FileName const & filename, ReadType rt)
+{
+ ReturnValues const retval = readWithoutConv(filename, rt);
+ if (retval != FORMAT_MISMATCH)
return retval == OK;
-
+
bool const worx = convertLayoutFormat(filename, rt);
if (!worx) {
LYXERR0 ("Unable to convert " << filename <<
format = lexrc.getInteger();
break;
- case TC_OUTPUTTYPE: // output type definition
+ case TC_OUTPUTFORMAT:
+ if (lexrc.next())
+ outputFormat_ = lexrc.getString();
+ break;
+
+ case TC_OUTPUTTYPE:
readOutputType(lexrc);
+ switch(outputType_) {
+ case LATEX:
+ outputFormat_ = "latex";
+ break;
+ case DOCBOOK:
+ outputFormat_ = "docbook";
+ break;
+ case LITERATE:
+ outputFormat_ = "literate";
+ break;
+ }
break;
case TC_INPUT: // Include file