From d7bcab5e275ad1ec109f17a1d180bbcd1084cf98 Mon Sep 17 00:00:00 2001 From: Guillaume MM Date: Tue, 16 May 2017 12:13:58 +0200 Subject: [PATCH] Structure the broken InsetRef status --- src/insets/InsetRef.cpp | 19 ++++++++++++++----- src/insets/InsetRef.h | 19 ++++++++++--------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/insets/InsetRef.cpp b/src/insets/InsetRef.cpp index 98fb84648a..7c5442cbe9 100644 --- a/src/insets/InsetRef.cpp +++ b/src/insets/InsetRef.cpp @@ -339,19 +339,27 @@ void InsetRef::updateBuffer(ParIterator const & it, UpdateType) } } } - + if (!buffer().params().isLatex() && !getParam("name").empty()) { label += "||"; label += getParam("name"); } - + unsigned int const maxLabelChars = 24; if (label.size() > maxLabelChars) { tooltip_ = label; support::truncateWithEllipsis(label, maxLabelChars); } else tooltip_ = from_ascii(""); + screen_label_ = label; + broken_ = false; +} + + +docstring InsetRef::screenLabel() const +{ + return (broken_ ? _("BROKEN: ") : docstring()) + screen_label_; } @@ -364,9 +372,10 @@ void InsetRef::addToToc(DocIterator const & cpit, bool output_active, return; // It seems that this reference does not point to any valid label. - screen_label_ = _("BROKEN: ") + screen_label_; + + broken_ = true; shared_ptr toc = backend.toc("label"); - toc->push_back(TocItem(cpit, 0, screen_label_, output_active)); + toc->push_back(TocItem(cpit, 0, screenLabel(), output_active)); } @@ -435,7 +444,7 @@ string const & InsetRef::getName(int type) docstring InsetRef::getTOCString() const { - return tooltip_.empty() ? screen_label_ : tooltip_; + return tooltip_.empty() ? screenLabel() : tooltip_; } } // namespace lyx diff --git a/src/insets/InsetRef.h b/src/insets/InsetRef.h index 1af1790bf9..15f1225950 100644 --- a/src/insets/InsetRef.h +++ b/src/insets/InsetRef.h @@ -63,7 +63,7 @@ public: int docbook(odocstream &, OutputParams const &) const; /// docstring xhtml(XHTMLStream &, OutputParams const &) const; - /// + /// void toString(odocstream &) const; /// void forOutliner(docstring &, size_t const, bool const) const; @@ -88,13 +88,6 @@ public: static bool isCompatibleCommand(std::string const & s); //@} - //FIXME: private - /// \name Private functions inherited from InsetCommand class - //@{ - /// - docstring screenLabel() const { return screen_label_; } - //@} - protected: /// InsetRef(InsetRef const &); @@ -105,7 +98,13 @@ private: /// Inset * clone() const { return new InsetRef(*this); } //@} - + + /// \name Private functions inherited from InsetCommand class + //@{ + /// + docstring screenLabel() const; + //@} + /// \return the label with things that need to be escaped escaped docstring getEscapedLabel(OutputParams const &) const; /// \return the command for a formatted reference to ref @@ -118,6 +117,8 @@ private: /// mutable docstring screen_label_; /// + mutable bool broken_; + /// mutable docstring tooltip_; }; -- 2.39.2