Use the old-style sorts of label strings in the TOC.

There are several reasons to do it this way, among which is odd
behavior of the TOC filter if we put anything else there. This also
allows for filtering of the references themsevles in a natural way.

The change, I think, was really an unintended consequence of other
changes connected to showing formatted references in the work area.
This commit is contained in:
Richard Kimberly Heck 2024-08-05 18:11:24 -04:00
parent c4d5a01787
commit 1de4645286
2 changed files with 10 additions and 5 deletions

View File

@ -539,11 +539,14 @@ void InsetRef::updateBuffer(ParIterator const & it, UpdateType, bool const /*del
// put cross-reference value into tooltip
tooltip_ = displayString(ref, cmd);
}
toc_string_ = label;
// Note: This could be changed later, in addToToc, if we are using
// fomatted references in the work area.
screen_label_ = label;
// If use_formatted_ref is active, this will be overwritten in addToToc.
// (We can't do it now because it might be a forward-reference
// and so the reference might not be in the label cache yet.
// This also can be overwritten in addToToc. (We can't do it now
// because it might be a forward-reference and so the reference might
// not be in the label cache yet.)
broken_ = false;
setBroken(broken_);
}
@ -661,7 +664,7 @@ docstring InsetRef::getTOCString() const
broken_ = !buffer().activeLabel(label) && active_;
else
broken_ = active_;
return tooltip_.empty() ? screenLabel() : tooltip_;
return (broken_ ? _("BROKEN: ") : docstring()) + toc_string_;
}
} // namespace lyx

View File

@ -127,6 +127,8 @@ private:
///
mutable docstring screen_label_;
///
mutable docstring toc_string_;
///
mutable bool broken_;
///
mutable bool active_;