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 <andreas.heinisch@yahoo.de>
Tested-by: Jenkins
(cherry picked from commit 7e30434655754277bfa7ce7d8ec37b07181d2c92)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166838
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
(cherry picked from commit 30524d5998d38b7e216b721859c72fbfc56a5b5a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166890
diff --git a/sc/qa/uitest/pasteSpecial/tdf160765.py b/sc/qa/uitest/pasteSpecial/tdf160765.py
index 0b56be4..c0c26443 100755
--- 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 84292dc..378b10f 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)
!= InsertDeleteFlags::NONE);
mxBtnInsFormulas->set_active((InsertDeleteFlags::FORMULA & eFlags) == InsertDeleteFlags::FORMULA);
mxBtnInsAttrs->set_active((InsertDeleteFlags::ATTRIB & eFlags) == InsertDeleteFlags::ATTRIB);
mxBtnInsObjects->set_active((InsertDeleteFlags::OBJECTS & eFlags) == InsertDeleteFlags::OBJECTS);