core.git: Branch 'libreoffice-7-6-7' - sc/qa sc/source

2024-05-07 Thread Andreas Heinisch (via logerrit)
 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

2024-05-07 Thread Andreas Heinisch (via logerrit)
 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.,