commit bec35f3fc50e33def89b721dffd2bae12a9e8750
Author: Pavel Sanda <[email protected]>
Date:   Wed Aug 26 23:36:49 2026 +0200

    Paragraph: generalize hasChangedInsets into hasInsets(changed_only)
    
    Add generic hasInsets, refactor hasChangedInsets for it.
    
    Assisted-by: Claude Fable 5
---
 src/Paragraph.cpp | 4 ++--
 src/Paragraph.h   | 7 ++++++-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index cbb8c98377..d4fe200d46 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -639,7 +639,7 @@ bool Paragraph::isChanged(pos_type start, pos_type end) 
const
 }
 
 // FIXME: Ideally the diverse isChanged() methods should account for that!
-bool Paragraph::hasChangedInsets(pos_type start, pos_type end) const
+bool Paragraph::hasInsets(pos_type start, pos_type end, bool changed_only) 
const
 {
        LASSERT(start >= 0 && start <= size(), return false);
        LASSERT(end > start && end <= size() + 1, return false);
@@ -649,7 +649,7 @@ bool Paragraph::hasChangedInsets(pos_type start, pos_type 
end) const
                        continue;
                if (icit.pos >= end)
                        break;
-               if (icit.inset && icit.inset->isChanged())
+               if (icit.inset && (!changed_only || icit.inset->isChanged()))
                        return true;
        }
        return false;
diff --git a/src/Paragraph.h b/src/Paragraph.h
index 83cb848243..4f3b2d23ab 100644
--- a/src/Paragraph.h
+++ b/src/Paragraph.h
@@ -283,8 +283,13 @@ public:
        /// is there a change within the given range (does not
        /// check contained paragraphs)
        bool isChanged(pos_type start, pos_type end) const;
+       /// Is there an inset in the range [start, end)? With \p changed_only,
+       /// count only insets that carry a tracked change.
+       bool hasInsets(pos_type start, pos_type end,
+               bool changed_only = false) const;
        /// Are there insets containing changes in the range?
-       bool hasChangedInsets(pos_type start, pos_type end) const;
+       bool hasChangedInsets(pos_type start, pos_type end) const
+               { return hasInsets(start, end, true); }
        /// is there an unchanged char at the given pos ?
        bool isChanged(pos_type pos) const;
        /// is there a change in the paragraph ?
-- 
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to