X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTocBackend.cpp;h=c0a4373923f631eb51a29688cd5051db2c927b19;hb=88e34fc39237b28ee6e61c0e8ccfc18e0125ded6;hp=7ea16b747a20b284fce31eb082c3e8bacde1799f;hpb=79bcf68018bb3dd0be926ff63b9a82d6f6204166;p=lyx.git diff --git a/src/TocBackend.cpp b/src/TocBackend.cpp index 7ea16b747a..c0a4373923 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,8 +146,8 @@ shared_ptr TocBackend::toc(string const & type) TocBuilder & TocBackend::builder(string const & type) { - auto p = make_unique(toc(type)); - return * builders_.insert(make_pair(type, move(p))).first->second; + auto p = lyx::make_unique(toc(type)); + return * builders_.insert(make_pair(type, std::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(); @@ -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"));