core.git: Branch 'libreoffice-7-6-7' - sc/qa sc/source
sc/qa/uitest/pasteSpecial/tdf160765.py | 34 + sc/source/ui/miscdlgs/inscodlg.cxx |4 ++- 2 files changed, 37 insertions(+), 1 deletion(-) New commits: commit d4cfeb2a69e40148ab080eae179e6278837fc754 Author: Andreas Heinisch AuthorDate: Fri Apr 26 20:29:53 2024 +0200 Commit: Christian Lohmaier CommitDate: Tue May 7 18:27:42 2024 +0200 tdf#160765 - Paste Special Dialog: Remember comments checkbox After the change of tdf#139858 the comments checkbox was not remembered anymore after closing the dialog. In order to fix this issue, additionally check not only the NOTE flag but also for the ADDNOTES one. Change-Id: I8b24d231313b57a05b7e527c0865686762e5a2b1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166762 Reviewed-by: Andreas Heinisch Tested-by: Jenkins (cherry picked from commit 7e30434655754277bfa7ce7d8ec37b07181d2c92) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166838 Reviewed-by: Xisco Fauli (cherry picked from commit 30524d5998d38b7e216b721859c72fbfc56a5b5a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166890 Signed-off-by: Xisco Fauli Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167231 Reviewed-by: Christian Lohmaier Tested-by: Christian Lohmaier diff --git a/sc/qa/uitest/pasteSpecial/tdf160765.py b/sc/qa/uitest/pasteSpecial/tdf160765.py index 0b56be4c2dfa..c0c264432ef4 100644 --- a/sc/qa/uitest/pasteSpecial/tdf160765.py +++ b/sc/qa/uitest/pasteSpecial/tdf160765.py @@ -13,8 +13,42 @@ from libreoffice.calc.document import get_cell_by_position from libreoffice.uno.propertyvalue import mkPropertyValues from uitest.uihelper.calc import enter_text_to_cell from libreoffice.calc.paste_special import reset_default_values +from uitest.uihelper.common import get_state_as_dict class tdf160765(UITestCase): +def test_tdf160765_paste_special_comments_checked(self): +with self.ui_test.create_doc_in_start_center("calc"): +xGridWin = self.xUITest.getTopFocusWindow().getChild("grid_window") + +# Insert a comment in cell A1 +xGridWin.executeAction("SELECT", mkPropertyValues({"CELL":"A1"})) +xArgs = mkPropertyValues({"Text": "Comment 1"}) +self.xUITest.executeCommandWithParameters(".uno:InsertAnnotation", xArgs) + +# Copy cell A1 to clipboard +xGridWin.executeAction("SELECT", mkPropertyValues({"CELL": "A1"})) +self.xUITest.executeCommand(".uno:Copy") + +# Paste data using special options (check only comments) +xGridWin.executeAction("SELECT", mkPropertyValues({"CELL": "A2"})) +with self.ui_test.execute_dialog_through_command(".uno:PasteSpecial") as xPasteSpecialDlg: +reset_default_values(self, xPasteSpecialDlg) +xDateTimeChkBox = xPasteSpecialDlg.getChild("datetime") +xDateTimeChkBox.executeAction("CLICK", tuple()) +xTextChkBox = xPasteSpecialDlg.getChild("text") +xTextChkBox.executeAction("CLICK", tuple()) +xNumbersChkBox = xPasteSpecialDlg.getChild("numbers") +xNumbersChkBox.executeAction("CLICK", tuple()) +xCommentsChkBox = xPasteSpecialDlg.getChild("comments") +xCommentsChkBox.executeAction("CLICK", tuple()) + +with self.ui_test.execute_dialog_through_command(".uno:PasteSpecial") as xPasteSpecialDlg: +xCommentsChkBox = xPasteSpecialDlg.getChild("comments") +# Without the fix in place, this test would have failed with +# AssertionError: 'true' != 'false' +# i.e., the comments checkbox was not remembered + self.assertEqual(get_state_as_dict(xCommentsChkBox)["Selected"], "true") + def test_tdf160765_undo_paste_comment(self): with self.ui_test.create_doc_in_start_center("calc") as document: xGridWin = self.xUITest.getTopFocusWindow().getChild("grid_window") diff --git a/sc/source/ui/miscdlgs/inscodlg.cxx b/sc/source/ui/miscdlgs/inscodlg.cxx index 84292dcd91c4..378b10f37fd0 100644 --- a/sc/source/ui/miscdlgs/inscodlg.cxx +++ b/sc/source/ui/miscdlgs/inscodlg.cxx @@ -231,7 +231,9 @@ void ScInsertContentsDlg::SetInsContentsCmdBits(const InsertDeleteFlags eFlags) mxBtnInsNumbers->set_active((InsertDeleteFlags::VALUE & eFlags) == InsertDeleteFlags::VALUE); mxBtnInsDateTime->set_active((InsertDeleteFlags::DATETIME & eFlags) == InsertDeleteFlags::DATETIME); mxBtnInsStrings->set_active((InsertDeleteFlags::STRING & eFlags) == InsertDeleteFlags::STRING); -mxBtnInsNotes->set_active((InsertDeleteFlags::NOTE & eFlags) == InsertDeleteFlags::NOTE); +// tdf#160765 - additionally check either NOTE or ADDNOTES +mxBtnInsNotes->set_active(((InsertDeleteFlags::NOTE | InsertDeleteFlags::ADDNOTES) & eFlags) +
core.git: Branch 'libreoffice-7-6-7' - sc/qa sc/source
sc/qa/uitest/pasteSpecial/tdf160765.py | 75 + sc/source/ui/view/viewfun3.cxx |3 - 2 files changed, 77 insertions(+), 1 deletion(-) New commits: commit e600195ae980f297b414ef69161de7b629f59346 Author: Andreas Heinisch AuthorDate: Mon Apr 22 20:06:50 2024 +0200 Commit: Christian Lohmaier CommitDate: Tue May 7 18:27:06 2024 +0200 tdf#160765 - Save content for undo when pasting notes even if no content was changed after pasting special. Otherwise, the undo functionality crashes due to undoing a cell with no content where the annotation indicator will remain (unod/redo of note captions are handled via drawing undo). Change-Id: I7007fce510d6e9896cbda11a1e14a61b5ccb34a9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166469 Tested-by: Jenkins Reviewed-by: Stéphane Guillou Reviewed-by: Andreas Heinisch (cherry picked from commit a1694b194c2b3e89250c5b79a69e7dd184b69976) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166524 Reviewed-by: Xisco Fauli (cherry picked from commit 4d744d94cc4ee114a7e5d5373b2b599baed31ee5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166846 Tested-by: Christian Lohmaier Reviewed-by: Christian Lohmaier diff --git a/sc/qa/uitest/pasteSpecial/tdf160765.py b/sc/qa/uitest/pasteSpecial/tdf160765.py new file mode 100644 index ..0b56be4c2dfa --- /dev/null +++ b/sc/qa/uitest/pasteSpecial/tdf160765.py @@ -0,0 +1,75 @@ +# -*- 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.calc.document import get_cell_by_position +from libreoffice.uno.propertyvalue import mkPropertyValues +from uitest.uihelper.calc import enter_text_to_cell +from libreoffice.calc.paste_special import reset_default_values + +class tdf160765(UITestCase): +def test_tdf160765_undo_paste_comment(self): +with self.ui_test.create_doc_in_start_center("calc") as document: +xGridWin = self.xUITest.getTopFocusWindow().getChild("grid_window") + +# Write text to cell A1 and B1 +enter_text_to_cell(xGridWin, "A1", "A1 sample text") +enter_text_to_cell(xGridWin, "B1", "B1 sample text") + +# Insert a comment in cell B1 +xArgs = mkPropertyValues({"Text": "Comment 1"}) +self.xUITest.executeCommandWithParameters(".uno:InsertAnnotation", xArgs) + +# Insert a comment in cell A2 +xGridWin.executeAction("SELECT", mkPropertyValues({"CELL":"A2"})) +xArgs = mkPropertyValues({"Text": "Comment 2"}) +self.xUITest.executeCommandWithParameters(".uno:InsertAnnotation", xArgs) + +# Copy cell A2 to clipboard +xGridWin.executeAction("SELECT", mkPropertyValues({"CELL": "A2"})) +self.xUITest.executeCommand(".uno:Copy") + +# Set cursor to cells and paste data using special options (check only comments) +targetCells = ["A1", "B1"] +for index, targetCell in enumerate(targetCells): +xGridWin.executeAction("SELECT", mkPropertyValues({"CELL": targetCell})) +with self.ui_test.execute_dialog_through_command(".uno:PasteSpecial") as xPasteSpecialDlg: +reset_default_values(self, xPasteSpecialDlg) +xDateTimeChkBox = xPasteSpecialDlg.getChild("datetime") +xDateTimeChkBox.executeAction("CLICK", tuple()) +xTextChkBox = xPasteSpecialDlg.getChild("text") +xTextChkBox.executeAction("CLICK", tuple()) +xNumbersChkBox = xPasteSpecialDlg.getChild("numbers") +xNumbersChkBox.executeAction("CLICK", tuple()) +xCommentsChkBox = xPasteSpecialDlg.getChild("comments") +xCommentsChkBox.executeAction("CLICK", tuple()) + +# Undo both inserted comments +self.xUITest.executeCommand(".uno:Undo") +# Without the fix in place, this test would have failed with +# AssertionError: 'Comment 1' != '' +# i.e., the cell does not contain any comment +self.assertEqual("Comment 1", get_cell_by_position(document, 0, 1, 0).Annotation.String) +self.xUITest.executeCommand(".uno:Undo") +self.assertEqual("", get_cell_by_position(document, 0, 0, 0).Annotation.String) + +# Redo both inserted comments +self.xUITest.executeCommand(".uno:Redo") +# Without the fix in place, this test would have failed with +# AssertionError: 'Comment 2' != '' +# i.e.,