// Do not remove the comment below, so we get merge conflict in
// independent branches. Instead add your own.
-int const LYX_FORMAT = 373; // jspitzm: merge g-brief class
+int const LYX_FORMAT = 374; // rgheck: HTML output options
typedef map<string, bool> DepClean;
typedef map<docstring, pair<InsetLabel const *, Buffer::References> > RefCache;
parent_buffer = pb;
}
- /// So we can force access via the accessors.
- mutable Buffer const * parent_buffer;
-
/// If non zero, this buffer is a clone of existing buffer \p cloned_buffer_
/// This one is useful for preview detached in a thread.
Buffer const * cloned_buffer_;
+
+private:
+ /// So we can force access via the accessors.
+ mutable Buffer const * parent_buffer;
+
};
read_only(readonly_), filename(file), file_fully_loaded(false),
toc_backend(&parent), macro_lock(false), timestamp_(0),
checksum_(0), wa_(0), undo_(parent), bibinfoCacheValid_(false),
- parent_buffer(0), cloned_buffer_(cloned_buffer)
+ cloned_buffer_(cloned_buffer), parent_buffer(0)
{
if (!cloned_buffer_) {
temppath = createBufferTmpDir();
{
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());
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);
}
}
-std::vector<Buffer *> Buffer::getChildren(bool grand_children) const
+void Buffer::getChildren(std::vector<Buffer *> & clist, bool grand_children) const
{
- std::vector<Buffer *> clist;
// loop over children
Impl::BufferPositionMap::iterator it = d->children_positions.begin();
Impl::BufferPositionMap::iterator end = d->children_positions.end();
clist.push_back(*git);
}
}
- return clist;
+}
+
+
+std::vector<Buffer *> Buffer::getChildren(bool grand_children) const
+{
+ std::vector<Buffer *> v;
+ getChildren(v, grand_children);
+ return v;
}