X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTocBackend.cpp;h=859e6e86e8e306ec35600e448754ac503f581e17;hb=46c6c40bea6ac75474b712b718b5903a8451bd31;hp=d401e2250936d31f86c4b6c683088f8731676b5a;hpb=714113655ad434f9a73d0101038568d59311af72;p=lyx.git diff --git a/src/TocBackend.cpp b/src/TocBackend.cpp index d401e22509..859e6e86e8 100644 --- a/src/TocBackend.cpp +++ b/src/TocBackend.cpp @@ -43,8 +43,8 @@ namespace lyx { /////////////////////////////////////////////////////////////////////////// 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) { } @@ -65,6 +65,9 @@ docstring const TocItem::asString() const prefix += cross; prefix += thin; } + if (missing_) { + prefix += _("MISSING: "); + } return prefix + str_; } @@ -143,7 +146,7 @@ shared_ptr TocBackend::toc(string const & type) TocBuilder & TocBackend::builder(string const & type) { - auto p = make_unique(toc(type)); + auto p = lyx::make_unique(toc(type)); return * builders_.insert(make_pair(type, move(p))).first->second; } @@ -153,8 +156,11 @@ TocBuilder & TocBackend::builder(string const & type) // 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(); @@ -180,7 +186,7 @@ bool TocBackend::updateItem(DocIterator const & dit_in) // // 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(); @@ -279,7 +285,7 @@ void TocBackend::resetOutlinerNames() { outliner_names_.clear(); // names from this document class - for (pair const & name + for (auto const & name : buffer_->params().documentClass().outlinerNames()) addName(name.first, translateIfPossible(name.second)); // Hardcoded types @@ -288,9 +294,10 @@ void TocBackend::resetOutlinerNames() addName("senseless", _("Senseless")); addName("citation", _("Citations")); addName("label", _("Labels and References")); + addName("brokenrefs", _("Broken References and Citations")); // Customizable, but the corresponding insets have no layout definition addName("child", _("Child Documents")); - addName("graphics", _("Graphics")); + addName("graphics", _("Graphics[[listof]]")); addName("equation", _("Equations")); addName("external", _("External Material")); addName("math-macro", _("Math Macros"));