dev/null                                    |binary
 sw/qa/uitest/writer_tests/trackedChanges.py |   17 -----------------
 sw/source/uibase/misc/redlndlg.cxx          |   22 ++++++++++++++++++++--
 3 files changed, 20 insertions(+), 19 deletions(-)

New commits:
commit d1bb1f2f2c682ae0bac555b9e30bd0d19e624274
Author:     Xisco Fauli <[email protected]>
AuthorDate: Tue Jan 20 14:54:00 2026 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Tue Jan 20 15:42:02 2026 +0100

    Revert "tdf#168737 sw interdependent redlines, reject all: fix ignored 
format redlines"
    
    This reverts commit ebaab7c8aa64102ec7f507501dc421925f5927fb.
    
    Reason for revert: This is causing 
https://ci.libreoffice.org/job/gerrit_linux_clang_dbgutil to fail in 
libreoffice-25-8 branch with
    ======================================================================
    FAIL: test_reject_all_deletes_all_redlines 
(trackedChanges.trackedchanges.test_reject_all_deletes_all_redlines)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File 
"/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/sw/qa/uitest/writer_tests/trackedChanges.py",
 line 626, in test_reject_all_deletes_all_redlines
        self.assertEqual(document.Redlines.Count, 0)
    AssertionError: 1 != 0
    
    Change-Id: I844a23a2fb6e30fc34c964edd37d1e47a3ae3f50
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197669
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sw/qa/uitest/data/reject-all-overlap.docx 
b/sw/qa/uitest/data/reject-all-overlap.docx
deleted file mode 100644
index 6263df4e0f6f..000000000000
Binary files a/sw/qa/uitest/data/reject-all-overlap.docx and /dev/null differ
diff --git a/sw/qa/uitest/writer_tests/trackedChanges.py 
b/sw/qa/uitest/writer_tests/trackedChanges.py
index b8c2634ff571..1e21a3a703ff 100644
--- a/sw/qa/uitest/writer_tests/trackedChanges.py
+++ b/sw/qa/uitest/writer_tests/trackedChanges.py
@@ -608,23 +608,6 @@ class trackedchanges(UITestCase):
 
                 self.assertEqual(0, len(changesList.getChildren()))
 
-    def test_reject_all_deletes_all_redlines(self):
-        # Given a document with overlapping changes:
-        with 
self.ui_test.load_file(get_url_for_data_file("reject-all-overlap.docx")) as 
document:
-            xWriterDoc = self.xUITest.getTopFocusWindow()
-            xWriterEdit = xWriterDoc.getChild("writer_edit")
-
-            # When rejecting all changes using the manage changes dialog:
-            with 
self.ui_test.execute_modeless_dialog_through_command(".uno:AcceptTrackedChanges",
 close_button="close") as xTrackDlg:
-                xAccBtn = xTrackDlg.getChild("rejectall")
-                xAccBtn.executeAction("CLICK", tuple())
-
-            # Then make sure all changes are rejected:
-            # Without the accompanying fix in place, this failed with:
-            # AssertionError: 1 != 0
-            # i.e. a change was not rejected.
-            self.assertEqual(document.Redlines.Count, 0)
-
     def test_tdf155847_multiple_tracked_columns_crash(self):
         with 
self.ui_test.load_file(get_url_for_data_file("TC-table-del-add.docx")) as 
document:
 
diff --git a/sw/source/uibase/misc/redlndlg.cxx 
b/sw/source/uibase/misc/redlndlg.cxx
index c05cb37b5c9c..49fa45217c43 100644
--- a/sw/source/uibase/misc/redlndlg.cxx
+++ b/sw/source/uibase/misc/redlndlg.cxx
@@ -1100,7 +1100,7 @@ void SwRedlineAcceptDlg::CallAcceptReject( bool bSelect, 
bool bAccept )
 
     weld::TreeView& rTreeView = m_pTable->GetWidget();
 
-    auto lambda = [bSelect, &rTreeView, &nPos, &aRedlines](weld::TreeIter& 
rEntry) {
+    auto lambda = [this, pSh, bSelect, bAccept, &rTreeView, &nPos, 
&aRedlines](weld::TreeIter& rEntry) {
         if (!rTreeView.get_iter_depth(rEntry))
         {
             if (bSelect && nPos == -1)
@@ -1108,7 +1108,25 @@ void SwRedlineAcceptDlg::CallAcceptReject( bool bSelect, 
bool bAccept )
 
             RedlinData *pData = 
weld::fromId<RedlinData*>(rTreeView.get_id(rEntry));
 
-            if (!pData->bDisabled)
+            bool bIsNotFormatted = true;
+
+            // first remove only changes with insertion/deletion, if they exist
+            // (format-only changes haven't had real rejection yet, only an
+            // approximation: clear direct formatting, so try to warn
+            // with the extended button label "Reject All/Clear formatting")
+            if ( !bSelect && !bAccept && !m_bOnlyFormatedRedlines )
+            {
+                SwRedlineTable::size_type nPosition = GetRedlinePos(rEntry);
+                if (nPosition != SwRedlineTable::npos)
+                {
+                    const SwRangeRedline& rRedln = pSh->GetRedline(nPosition);
+
+                    if (RedlineType::Format == rRedln.GetType())
+                        bIsNotFormatted = false;
+                }
+            }
+
+            if (!pData->bDisabled && bIsNotFormatted)
                 aRedlines.emplace_back(rTreeView.make_iterator(&rEntry));
         }
         return false;

Reply via email to