// of this document. For example, when you apply class article to a beamer document,
// all unknown layouts such as frame will be added to document class article so that
// these layouts can keep their original names.
- tclass.addLayoutIfNeeded(layoutname);
+ bool const added_one = tclass.addLayoutIfNeeded(layoutname);
+ if (added_one) {
+ // Warn the user.
+ docstring const s = bformat(_("Layout `%1$s' was not found."), layoutname);
+ errorList.push_back(
+ ErrorItem(_("Layout Not Found"), s, par.id(), 0, par.size()));
+ }
par.setLayout(bp.documentClass()[layoutname]);
pos_type left = (pit == begPit ? begPos : 0);
pos_type right = (pit == endPit ? endPos : parSize);
-
+
+ if (left == right)
+ // there is no change here
+ continue;
+
if (op == ACCEPT) {
pars_[pit].acceptChanges(left, right);
} else {
spit += cur.pit();
Buffer & b = *cur.buffer();
cur.paragraph().eraseChar(cur.pos(), b.params().trackChanges);
+
if (!plist.empty()) {
+ // see bug 7319
+ // we clear the cache so that we won't get conflicts with labels
+ // that get pasted into the buffer. we should update this before
+ // its being empty matters. if not (i.e., if we encounter bugs),
+ // then this should instead be:
+ // cur.buffer().updateBuffer();
+ // but we'll try the cheaper solution here.
+ cur.buffer()->clearReferenceCache();
+
// ERT paragraphs have the Language latex_language.
// This is invalid outside of ERT, so we need to
// change it to the buffer language.
// restore position
cur.pit() = min(cur.lastpit(), spit);
cur.pos() = min(cur.lastpos(), spos);
- } else
- cur.forceBufferUpdate();
+ }
+
+ cur.forceBufferUpdate();
// Ensure the current language is set correctly (bug 6292)
cur.text()->setCursor(cur, cur.pit(), cur.pos());
}
if (!name.empty())
- // FIXME refstyle
- // We should allow customization of the separator or else change it
text = name + ':' + text;
return text;
}
+void Text::forToc(docstring & os, size_t maxlen, bool shorten) const
+{
+ LASSERT(maxlen > 10, maxlen = 30);
+ for (size_t i = 0; i != pars_.size() && os.length() < maxlen; ++i)
+ pars_[i].forToc(os, maxlen);
+ if (shorten && os.length() >= maxlen)
+ os = os.substr(0, maxlen - 3) + from_ascii("...");
+}
+
void Text::charsTranspose(Cursor & cur)
{