sw/qa/uitest/writer_dialogs/openDialogs.py | 3 - sw/qa/uitest/writer_tests7/tdf135938.py | 46 +++++++++++++++++++++++++++++ sw/source/ui/fldui/fldref.cxx | 8 +++-- 3 files changed, 52 insertions(+), 5 deletions(-)
New commits: commit c5d32e7a9a58e1643f1ef10bb24de40c58ab0edc Author: Andreas Heinisch <andreas.heini...@yahoo.de> AuthorDate: Wed Oct 5 17:09:14 2022 +0200 Commit: Michael Stahl <michael.st...@allotropia.de> CommitDate: Fri Oct 7 12:04:26 2022 +0200 tdf#135938 - Refresh cross-reference name after filter selection has changed Change-Id: I3e92adc10da089372637174f8551d531aea2fb13 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140985 Tested-by: Jenkins Reviewed-by: Andreas Heinisch <andreas.heini...@yahoo.de> (cherry picked from commit fe51aa0a8d796b456a3c6966c47afc98e4532cd0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141055 Reviewed-by: Michael Stahl <michael.st...@allotropia.de> diff --git a/sw/qa/uitest/writer_dialogs/openDialogs.py b/sw/qa/uitest/writer_dialogs/openDialogs.py index ed3585e2923d..896d2fd641c7 100644 --- a/sw/qa/uitest/writer_dialogs/openDialogs.py +++ b/sw/qa/uitest/writer_dialogs/openDialogs.py @@ -50,8 +50,7 @@ dialogs = [ # dialog opens but is not recognised by execute_dialog_through_command # {"command": ".uno:InsertBookmark", "closeButton": "close"}, # tested in sw/qa/uitest/writer_tests2/bookmark.py - # {"command": ".uno:InsertReferenceField", "closeButton": "close"}, - # dialog not closed + {"command": ".uno:InsertReferenceField", "closeButton": "cancel"}, # {"command": ".uno:InsertSymbol", "closeButton": "cancel"}, # tested in sw/qa/uitest/writer_tests3/specialCharacter.py # {"command": ".uno:InsertFootnoteDialog", "closeButton": "cancel"}, diff --git a/sw/qa/uitest/writer_tests7/tdf135938.py b/sw/qa/uitest/writer_tests7/tdf135938.py new file mode 100755 index 000000000000..013da93624da --- /dev/null +++ b/sw/qa/uitest/writer_tests7/tdf135938.py @@ -0,0 +1,46 @@ +# -*- 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 uitest.uihelper.common import get_state_as_dict +from libreoffice.uno.propertyvalue import mkPropertyValues + +class tdf135938(UITestCase): + + def test_tdf135938_cross_reference_update(self): + with self.ui_test.create_doc_in_start_center("writer"): + with self.ui_test.execute_modeless_dialog_through_command(".uno:InsertReferenceField", close_button="cancel") as xDialog: + # Select set reference type + xTreelistType = xDialog.getChild("type-ref") + xTreeEntry = xTreelistType.getChild('0') + self.assertEqual(get_state_as_dict(xTreeEntry)["Text"], "Set Reference") + xTreeEntry.executeAction("SELECT", tuple()) + + # Insert cross references + xName = xDialog.getChild("name-ref") + xName.executeAction("TYPE", mkPropertyValues({"TEXT": "ABC"})) + xInsert = xDialog.getChild("ok") + xInsert.executeAction("CLICK", tuple()) + xName.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"})) + xName.executeAction("TYPE", mkPropertyValues({"TEXT": "DEF"})) + xInsert.executeAction("CLICK", tuple()) + + # Select insert reference type + xTreeEntry = xTreelistType.getChild('1') + self.assertEqual(get_state_as_dict(xTreeEntry)["Text"], "Insert Reference") + xTreeEntry.executeAction("SELECT", tuple()) + + # Filter the cross references + xFilter = xDialog.getChild("filter") + xFilter.executeAction("TYPE", mkPropertyValues({"TEXT": "A"})) + # Without the fix in place, this test would have failed with + # AssertionError: 'ABC' != 'DEF', i.e., the text of the name field did not change + self.assertEqual(get_state_as_dict(xName)["Text"], "ABC") + +# vim: set shiftwidth=4 softtabstop=4 expandtab: diff --git a/sw/source/ui/fldui/fldref.cxx b/sw/source/ui/fldui/fldref.cxx index 1fbd69c9f10e..bae2557f173d 100644 --- a/sw/source/ui/fldui/fldref.cxx +++ b/sw/source/ui/fldui/fldref.cxx @@ -122,6 +122,8 @@ SwFieldRefPage::~SwFieldRefPage() IMPL_LINK_NOARG(SwFieldRefPage, ModifyHdl_Impl, weld::Entry&, void) { UpdateSubType(comphelper::string::strip(m_xFilterED->get_text(), ' ')); + // tdf#135938 - refresh cross-reference name after filter selection has changed + SubTypeHdl(); } // #i83479# @@ -377,9 +379,6 @@ IMPL_LINK_NOARG(SwFieldRefPage, TypeHdl, weld::TreeView&, void) sal_uInt16 nTypeId = m_xTypeLB->get_id(GetTypeSel()).toUInt32(); - // fill selection-ListBox - UpdateSubType(comphelper::string::strip(m_xFilterED->get_text(), ' ')); - bool bName = false; nFieldDlgFormatSel = 0; @@ -391,6 +390,9 @@ IMPL_LINK_NOARG(SwFieldRefPage, TypeHdl, weld::TreeView&, void) m_xFilterED->set_text(OUString()); } + // fill selection-ListBox + UpdateSubType(comphelper::string::strip(m_xFilterED->get_text(), ' ')); + switch (nTypeId) { case static_cast<sal_uInt16>(SwFieldTypesEnum::GetRef):