///////////////////////////////////////////////////////////////////////////
TocItem::TocItem(DocIterator const & dit, int d, docstring const & s,
- bool output_active, FuncRequest const & action)
- : dit_(dit), depth_(d), str_(s), output_(output_active),
+ bool output_active, bool missing, FuncRequest const & action)
+ : dit_(dit), depth_(d), str_(s), output_(output_active), missing_(missing),
action_(action)
{
}
prefix += cross;
prefix += thin;
}
+ if (missing_) {
+ prefix += _("MISSING: ");
+ }
return prefix + str_;
}
TocBuilder & TocBackend::builder(string const & type)
{
- auto p = make_unique<TocBuilder>(toc(type));
+ auto p = lyx::make_unique<TocBuilder>(toc(type));
return * builders_.insert(make_pair(type, move(p))).first->second;
}
// TocItem creation and update should be made in a dedicated function and
// updateItem should be rewritten to uniformly update the matching items from
// all TOCs.
-bool TocBackend::updateItem(DocIterator const & dit_in)
+bool TocBackend::updateItem(DocIterator const & dit_in) const
{
+ if (dit_in.buffer() && dit_in.buffer()->isInternal())
+ return false;
+
// we need a text
DocIterator dit = dit_in.getInnerText();
//
// FIXME: This is supposed to accomplish the same as the body of
// InsetText::iterateForToc(), probably
- Paragraph & par = toc_item->dit().paragraph();
+ Paragraph const & par = toc_item->dit().paragraph();
for (auto const & table : par.insetList())
if (InsetArgument const * arg = table.inset->asInsetArgument()) {
tocstring = par.labelString();