From b321bb1aed0e554feef628602eb833e26ad0efb0 Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Sun, 29 Dec 2019 09:45:06 +0100 Subject: [PATCH] Indicate change of content in label of collapsed collapsible Fixes #8645 --- src/insets/InsetCollapsible.cpp | 14 +++++++++++--- src/insets/InsetText.cpp | 7 +++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/insets/InsetCollapsible.cpp b/src/insets/InsetCollapsible.cpp index 755bb6c30b..fab5d34864 100644 --- a/src/insets/InsetCollapsible.cpp +++ b/src/insets/InsetCollapsible.cpp @@ -445,9 +445,13 @@ docstring const InsetCollapsible::getNewLabel(docstring const & l) const pos_type const n = min(max_length, p_siz); pos_type i = 0; pos_type j = 0; + bool changed_content = false; for (; i < n && j < p_siz; ++j) { - if (paragraphs().begin()->isDeleted(j)) - continue; + if (paragraphs().begin()->isChanged(j)) { + changed_content = true; + if (paragraphs().begin()->isDeleted(j)) + continue; + } if (paragraphs().begin()->isInset(j)) { if (!paragraphs().begin()->getInset(j)->isChar()) continue; @@ -459,7 +463,11 @@ docstring const InsetCollapsible::getNewLabel(docstring const & l) const if (paragraphs().size() > 1 || (i > 0 && j < p_siz)) { label << "..."; } - docstring const lbl = label.str(); + docstring lbl; + // indicate changed content in label (#8645) + if (changed_content) + lbl = char_type(0x270E);// ✎ U+270E LOWER RIGHT PENCIL + lbl += label.str(); return lbl.empty() ? l : lbl; } diff --git a/src/insets/InsetText.cpp b/src/insets/InsetText.cpp index 2126fb15b2..c37c1c26d5 100644 --- a/src/insets/InsetText.cpp +++ b/src/insets/InsetText.cpp @@ -1077,6 +1077,7 @@ docstring InsetText::toolTipText(docstring prefix, size_t const len) const ParagraphList::const_iterator end = paragraphs().end(); ParagraphList::const_iterator it = beg; bool ref_printed = false; + bool changed_content = false; for (; it != end; ++it) { if (it != beg) @@ -1084,12 +1085,14 @@ docstring InsetText::toolTipText(docstring prefix, size_t const len) const if ((*it).isRTL(buffer().params())) oss << "
"; writePlaintextParagraph(buffer(), *it, oss, rp, ref_printed, len); - if ((*it).isRTL(buffer().params())) - oss << "
"; + if ((*it).isChanged(0, (*it).size())) + changed_content = true; if (oss.tellp() >= 0 && size_t(oss.tellp()) > len) break; } docstring str = oss.str(); + if (changed_content) + str += from_ascii("\n\n") + _("[contains tracked changes]"); support::truncateWithEllipsis(str, len); return str; } -- 2.39.2