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;