]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.cpp
Make the float interface for XHTML consistent with the others.
[lyx.git] / src / Buffer.cpp
index bd7305701785929e0afe9bc9cb65aa89cb375e28..8c013a9fa2bc973a897005c1ee1fe632c753e304 100644 (file)
@@ -127,7 +127,7 @@ namespace {
 
 // Do not remove the comment below, so we get merge conflict in
 // independent branches. Instead add your own.
-int const LYX_FORMAT = 374; // rgheck: HTML output options
+int const LYX_FORMAT = 375; // jspitzm: includeonly support
 
 typedef map<string, bool> DepClean;
 typedef map<docstring, pair<InsetLabel const *, Buffer::References> > RefCache;
@@ -315,9 +315,15 @@ Buffer::Buffer(string const & file, bool readonly, Buffer const * cloned_buffer)
 {
        LYXERR(Debug::INFO, "Buffer::Buffer()");
        if (cloned_buffer) {
-               d->inset = static_cast<InsetText *>(cloned_buffer->d->inset->clone());
+               d->inset = new InsetText(*cloned_buffer->d->inset);
                d->inset->setBuffer(*this);
-       } else 
+               // FIXME: optimize this loop somewhat, maybe by creating a new
+               // general recursive Inset::setId().
+               DocIterator it = doc_iterator_begin(this);
+               DocIterator cloned_it = doc_iterator_begin(cloned_buffer);
+               for (; !it.atEnd(); it.forwardPar(), cloned_it.forwardPar())
+                       it.paragraph().setId(cloned_it.paragraph().id());
+       } else
                d->inset = new InsetText(this);
        d->inset->setAutoBreakRows(true);
        d->inset->getText(0)->setMacrocontextPosition(par_iterator_begin());
@@ -374,6 +380,8 @@ Buffer::~Buffer()
 
 Buffer * Buffer::clone() const
 {
+       // FIXME for asynchronous export and preview: We must also clone all
+       // the child buffers!
        return new Buffer(fileName().absFilename(), false, this);
 }
 
@@ -599,6 +607,7 @@ int Buffer::readHeader(Lexer & lex)
        params().listings_params.clear();
        params().clearLayoutModules();
        params().clearRemovedModules();
+       params().clearIncludedChildren();
        params().pdfoptions().clear();
        params().indiceslist().clear();
        params().backgroundcolor = lyx::rgbFromHexName("#ffffff");
@@ -1251,7 +1260,9 @@ void Buffer::writeLaTeXSource(odocstream & os,
                listParentMacros(parentMacros, features);
 
                // Write the preamble
-               runparams.use_babel = params().writeLaTeX(os, features, d->texrow);
+               runparams.use_babel = params().writeLaTeX(os, features,
+                                                         d->texrow,
+                                                         d->filename.onlyPath());
 
                runparams.use_japanese = features.isRequired("japanese");