#include "support/debug.h"
#include "support/docstream.h"
#include "support/gettext.h"
+#include "support/lassert.h"
#include "support/limited_stack.h"
#include "support/lstrings.h"
InsetIterator const i_end = inset_iterator_end(in);
for (InsetIterator it = inset_iterator_begin(in); it != i_end; ++it) {
// Even though this will also be done later, it has to be done here
- // since, e.g., InsetLabel::updateCommand() is going to try to access
+ // since some inset might going to try to access
// the buffer() member.
it->setBuffer(const_cast<Buffer &>(buffer));
switch (it->lyxCode()) {
continue;
InsetLabel * lab = labels[i];
docstring const oldname = lab->getParam("name");
- lab->updateCommand(oldname, false);
+ lab->updateLabel(oldname);
// We need to update the buffer reference cache.
cur.forceBufferUpdate();
docstring const newname = lab->getParam("name");
// check for duplicates
InsetLabel & lab = static_cast<InsetLabel &>(*it);
docstring const oldname = lab.getParam("name");
- lab.updateCommand(oldname, false);
+ lab.updateLabel(oldname);
// We need to update the buffer reference cache.
cur.forceBufferUpdate();
docstring const newname = lab.getParam("name");
DocumentClass const & newtc = *newone;
// layouts
+ ParIterator it = par_iterator_begin(in);
ParIterator end = par_iterator_end(in);
- for (ParIterator it = par_iterator_begin(in); it != end; ++it) {
+ // for remembering which layouts we've had to add
+ set<docstring> newlayouts;
+ for (; it != end; ++it) {
docstring const name = it->layout().name();
// the pasted text will keep their own layout name. If this layout does
// not exist in the new document, it will behave like a standard layout.
- newtc.addLayoutIfNeeded(name);
+ bool const added_one = newtc.addLayoutIfNeeded(name);
+ if (added_one)
+ newlayouts.insert(name);
+
+ if (added_one || newlayouts.find(name) != newlayouts.end()) {
+ // Warn the user.
+ docstring const s = bformat(_("Layout `%1$s' was not found."), name);
+ errorlist.push_back(
+ ErrorItem(_("Layout Not Found"), s, it->id(), 0, it->size()));
+ }
if (in.usePlainLayout())
it->setLayout(newtc.plainLayout());