sw/qa/uitest/data/tdf128192.odt         |binary
 sw/qa/uitest/writer_tests4/tdf128192.py |   72 ++++++++++++++++++++++++++++++++
 sw/source/core/edit/autofmt.cxx         |    4 +
 3 files changed, 76 insertions(+)

New commits:
commit 1cff5c9db7e0d7cf7ae45b306deb963d95926d99
Author:     Baole Fang <baole.f...@gmail.com>
AuthorDate: Tue Apr 25 21:07:56 2023 -0400
Commit:     Andreas Heinisch <andreas.heini...@yahoo.de>
CommitDate: Thu May 4 08:44:47 2023 +0200

    tdf#128192: Fix Tools/AutoCorrect/Apply
    
    AutoCorrect() is applied in GET_ALL_INFO and HAS_FMTCOLL stage.
    Also, UITest is added by examining whether "Replace dashes" is performed.
    
    Change-Id: Idcb34ad03c4fe8df27ed126bf39ce23ab4f02846
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151008
    Tested-by: Jenkins
    Reviewed-by: Andreas Heinisch <andreas.heini...@yahoo.de>

diff --git a/sw/qa/uitest/data/tdf128192.odt b/sw/qa/uitest/data/tdf128192.odt
new file mode 100644
index 000000000000..9f5c471381b6
Binary files /dev/null and b/sw/qa/uitest/data/tdf128192.odt differ
diff --git a/sw/qa/uitest/writer_tests4/tdf128192.py 
b/sw/qa/uitest/writer_tests4/tdf128192.py
new file mode 100644
index 000000000000..3c5f72c3beef
--- /dev/null
+++ b/sw/qa/uitest/writer_tests4/tdf128192.py
@@ -0,0 +1,72 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+from uitest.framework import UITestCase
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.uihelper.common import get_state_as_dict, get_url_for_data_file
+
+#Bug 128192 - Fix Tools/AutoCorrect/Apply to apply for all styles
+
+class tdf128192(UITestCase):
+
+    def test_tdf128192(self):
+        with self.ui_test.load_file(get_url_for_data_file("tdf128192.odt")):
+            MainWindow = self.xUITest.getTopFocusWindow()
+            writer_edit = MainWindow.getChild("writer_edit")
+
+            # perform Tools/AutoCorrect/Apply on the whole document
+            self.xUITest.executeCommand(".uno:SelectAll")
+            self.xUITest.executeCommand(".uno:AutoFormatApply")
+
+            # test for each style whether "Replace dashes" works in AutoCorrect
+            writer_edit.executeAction("SELECT", mkPropertyValues({"END_POS": 
"9", "START_POS": "14"}))
+            self.assertEqual(get_state_as_dict(writer_edit)["SelectedText"], 
"A – B")
+
+            self.xUITest.executeCommand(".uno:GoUp")
+            writer_edit.executeAction("SELECT", mkPropertyValues({"END_POS": 
"19", "START_POS": "24"}))
+            self.assertEqual(get_state_as_dict(writer_edit)["SelectedText"], 
"A – B")
+
+            self.xUITest.executeCommand(".uno:GoUp")
+            writer_edit.executeAction("SELECT", mkPropertyValues({"END_POS": 
"12", "START_POS": "17"}))
+            self.assertEqual(get_state_as_dict(writer_edit)["SelectedText"], 
"A – B")
+
+            self.xUITest.executeCommand(".uno:GoUp")
+            writer_edit.executeAction("SELECT", mkPropertyValues({"END_POS": 
"11", "START_POS": "16"}))
+            self.assertEqual(get_state_as_dict(writer_edit)["SelectedText"], 
"A – B")
+
+            self.xUITest.executeCommand(".uno:GoUp")
+            writer_edit.executeAction("SELECT", mkPropertyValues({"END_POS": 
"11", "START_POS": "16"}))
+            self.assertEqual(get_state_as_dict(writer_edit)["SelectedText"], 
"A – B")
+
+            self.xUITest.executeCommand(".uno:GoUp")
+            writer_edit.executeAction("SELECT", mkPropertyValues({"END_POS": 
"11", "START_POS": "16"}))
+            self.assertEqual(get_state_as_dict(writer_edit)["SelectedText"], 
"A – B")
+
+            self.xUITest.executeCommand(".uno:GoUp")
+            writer_edit.executeAction("SELECT", mkPropertyValues({"END_POS": 
"11", "START_POS": "16"}))
+            self.assertEqual(get_state_as_dict(writer_edit)["SelectedText"], 
"A – B")
+
+            self.xUITest.executeCommand(".uno:GoUp")
+            writer_edit.executeAction("SELECT", mkPropertyValues({"END_POS": 
"16", "START_POS": "11"}))
+            self.assertEqual(get_state_as_dict(writer_edit)["SelectedText"], 
"A – B")
+
+            self.xUITest.executeCommand(".uno:GoUp")
+            writer_edit.executeAction("SELECT", mkPropertyValues({"END_POS": 
"25", "START_POS": "30"}))
+            self.assertEqual(get_state_as_dict(writer_edit)["SelectedText"], 
"A – B")
+
+            self.xUITest.executeCommand(".uno:GoUp")
+            writer_edit.executeAction("SELECT", mkPropertyValues({"END_POS": 
"10", "START_POS": "15"}))
+            self.assertEqual(get_state_as_dict(writer_edit)["SelectedText"], 
"A – B")
+
+            self.xUITest.executeCommand(".uno:GoUp")
+            writer_edit.executeAction("SELECT", mkPropertyValues({"END_POS": 
"7", "START_POS": "12"}))
+            self.assertEqual(get_state_as_dict(writer_edit)["SelectedText"], 
"A – B")
+
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sw/source/core/edit/autofmt.cxx b/sw/source/core/edit/autofmt.cxx
index b63f19b24fac..74c3518a0a24 100644
--- a/sw/source/core/edit/autofmt.cxx
+++ b/sw/source/core/edit/autofmt.cxx
@@ -2400,6 +2400,8 @@ SwAutoFormat::SwAutoFormat( SwEditShell* pEdShell, 
SvxSwAutoFormatFlags aFlags,
                     // delete all blanks at beginning/end and in between
                     //JP 29.04.98: first only "all in between"
                     DelMoreLinesBlanks();
+                    // auto correct paragraphs that fail to enter state 
HAS_FMTCOLL
+                    AutoCorrect();
                     break;
                 }
 
@@ -2682,6 +2684,8 @@ SwAutoFormat::SwAutoFormat( SwEditShell* pEdShell, 
SvxSwAutoFormatFlags aFlags,
                             BuildText();
                     }
                 }
+                // force auto correct
+                AutoCorrect();
             }
             break;
 

Reply via email to