bformat(_("%1$s is from a different"
" version of LyX, but a temporary"
" file for converting it could"
- " not be created."),
+ " not be created."),
from_utf8(filename.absFilename())));
return failure;
}
bformat(_("%1$s is from a different"
" version of LyX, but the"
" conversion script lyx2lyx"
- " could not be found."),
+ " could not be found."),
from_utf8(filename.absFilename())));
return failure;
}
Alert::error(_("Conversion script failed"),
bformat(_("%1$s is from a different version"
" of LyX, but the lyx2lyx script"
- " failed to convert it."),
+ " failed to convert it."),
from_utf8(filename.absFilename())));
return failure;
} else {
}
-void Buffer::updateBibfilesCache() const
+void Buffer::updateBibfilesCache(UpdateScope scope) const
{
// If this is a child document, use the parent's cache instead.
- if (d->parent_buffer) {
+ if (d->parent_buffer && scope != UpdateChildOnly) {
d->parent_buffer->updateBibfilesCache();
return;
}
static_cast<InsetInclude &>(*it);
inset.updateBibfilesCache();
support::FileNameList const & bibfiles =
- inset.getBibfilesCache(*this);
+ inset.getBibfilesCache();
d->bibfilesCache_.insert(d->bibfilesCache_.end(),
bibfiles.begin(),
bibfiles.end());
}
-support::FileNameList const & Buffer::getBibfilesCache() const
+support::FileNameList const & Buffer::getBibfilesCache(UpdateScope scope) const
{
// If this is a child document, use the parent's cache instead.
- if (d->parent_buffer)
+ if (d->parent_buffer && scope != UpdateChildOnly)
return d->parent_buffer->getBibfilesCache();
// We update the cache when first used instead of at loading time.
if (d->bibfilesCache_.empty())
- const_cast<Buffer *>(this)->updateBibfilesCache();
+ const_cast<Buffer *>(this)->updateBibfilesCache(scope);
return d->bibfilesCache_;
}
// is it a nested text inset?
if (iit->inset->asInsetText()) {
// Inset needs its own scope?
- InsetText const * itext
- = iit->inset->asInsetText();
+ InsetText const * itext = iit->inset->asInsetText();
bool newScope = itext->isMacroScope();
// scope which ends just behind the inset
// is it an external file?
if (iit->inset->lyxCode() == INCLUDE_CODE) {
// get buffer of external file
- InsetInclude const & inset
- = static_cast<InsetInclude const &>(*iit->inset);
+ InsetInclude const & inset =
+ static_cast<InsetInclude const &>(*iit->inset);
d->macro_lock = true;
- Buffer * child = inset.loadIfNeeded(*this);
+ Buffer * child = inset.getChildBuffer();
d->macro_lock = false;
if (!child)
continue;
// register its position, but only when it is
// included first in the buffer
- if (d->children_positions.find(child)
- == d->children_positions.end())
- d->children_positions[child] = it;
+ if (d->children_positions.find(child) ==
+ d->children_positions.end())
+ d->children_positions[child] = it;
// register child with its scope
d->position_to_children[it] = Impl::ScopeBuffer(scope, child);
continue;
// get macro data
- MathMacroTemplate & macroTemplate
- = static_cast<MathMacroTemplate &>(*iit->inset);
+ MathMacroTemplate & macroTemplate =
+ static_cast<MathMacroTemplate &>(*iit->inset);
MacroContext mc(*this, it);
macroTemplate.updateToContext(mc);
}
-void Buffer::updateLabels(bool childonly) const
+void Buffer::setBuffersForInsets() const
+{
+ inset().setBuffer(const_cast<Buffer &>(*this));
+}
+
+
+void Buffer::updateLabels(UpdateScope scope) const
{
// Use the master text class also for child documents
Buffer const * const master = masterBuffer();
// master comes back we can see which of them were actually seen (i.e.
// via an InsetInclude). The remaining ones in the set need still be updated.
static std::set<Buffer const *> bufToUpdate;
- if (!childonly) {
+ if (scope == UpdateMaster) {
// If this is a child document start with the master
if (master != this) {
bufToUpdate.insert(this);
- master->updateLabels(false);
+ master->updateLabels();
// Do this here in case the master has no gui associated with it. Then,
// the TocModel is not updated and TocModel::toc_ is invalid (bug 5699).
if (!master->gui_)
return;
cbuf.tocBackend().update();
- if (!childonly)
+ if (scope == UpdateMaster)
cbuf.structureChanged();
}