From ed75cead6ca1aefc982711540700dc74584e460a Mon Sep 17 00:00:00 2001 From: Chris Hennes Date: Tue, 29 Mar 2022 13:25:44 -0500 Subject: [PATCH] Spreadsheet: PR6497 move return statement to new line --- src/Mod/Spreadsheet/App/PropertySheet.cpp | 3 +- src/Mod/Spreadsheet/App/genregexps.cpp | 4 +- src/Mod/Spreadsheet/TestSpreadsheetGui.py | 78 +++++++++++++++++++++++ 3 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 src/Mod/Spreadsheet/TestSpreadsheetGui.py diff --git a/src/Mod/Spreadsheet/App/PropertySheet.cpp b/src/Mod/Spreadsheet/App/PropertySheet.cpp index ee5924457f..f570a98fcb 100644 --- a/src/Mod/Spreadsheet/App/PropertySheet.cpp +++ b/src/Mod/Spreadsheet/App/PropertySheet.cpp @@ -574,7 +574,8 @@ void PropertySheet::setAlignment(CellAddress address, int _alignment) { Cell * cell = nonNullCellAt(address); assert(cell != nullptr); - if (cell->address != address) return; //Reject alignment change for merged cell except top-left one + if (cell->address != address) //Reject alignment change for merged cell except top-left one + return; cell->setAlignment(_alignment); } diff --git a/src/Mod/Spreadsheet/App/genregexps.cpp b/src/Mod/Spreadsheet/App/genregexps.cpp index 7b40890556..995abf02c4 100644 --- a/src/Mod/Spreadsheet/App/genregexps.cpp +++ b/src/Mod/Spreadsheet/App/genregexps.cpp @@ -7,7 +7,9 @@ int genUtf8(int c, unsigned char * b) { - if (c<0x80) { *b++=c, *b++ = '\0'; return 1; } + if (c<0x80) { *b++=c, *b++ = '\0'; + return 1; + } else if (c<0x800) { *b++=192+c/64, *b++=128+c%64, *b++ = '\0'; return 2; } else if (c-0xd800u < 0x800) goto error; else if (c<0x10000) { *b++=224+c/4096, *b++=128+c/64%64, *b++=128+c%64, *b++ = '\0'; return 3; } diff --git a/src/Mod/Spreadsheet/TestSpreadsheetGui.py b/src/Mod/Spreadsheet/TestSpreadsheetGui.py new file mode 100644 index 0000000000..d3d5d835d1 --- /dev/null +++ b/src/Mod/Spreadsheet/TestSpreadsheetGui.py @@ -0,0 +1,78 @@ +# *************************************************************************** +# * Copyright (c) 2021 Chris Hennes * +# * * +# * This program is free software; you can redistribute it and/or modify * +# * it under the terms of the GNU General Public License (GPL) * +# * as published by the Free Software Foundation; either version 2 of * +# * the License, or (at your option) any later version. * +# * for detail see the LICENCE text file. * +# * * +# * FreeCAD is distributed in the hope that it will be useful, * +# * but WITHOUT ANY WARRANTY; without even the implied warranty of * +# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# * GNU Library General Public License for more details. * +# * * +# * You should have received a copy of the GNU Library General Public * +# * License along with FreeCAD; if not, write to the Free Software * +# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +# * USA * +# ***************************************************************************/ + +import unittest +import FreeCAD + +from PySide import QtCore, QtGui +import FreeCADGui + +# ---------------------------------------------------------------------------------- +# define the functions to test the FreeCAD Spreadsheet GUI +# ---------------------------------------------------------------------------------- + + +class SpreadsheetGuiCases(unittest.TestCase): + def setUp(self): + self.doc = FreeCAD.newDocument() + self.sheet = self.doc.addObject("Spreadsheet::Sheet", "Spreadsheet") + self.view_provider = self.sheet.ViewObject + + def getTableView(self): + return self.view_provider.getView() + + def tearDown(self): + pass + #FreeCAD.closeDocument(self.doc.Name) + + def injectSimpleData(self): + """A utility function to initialize a blank sheet with some known data""" + self.sheet.clearAll() + self.sheet.set("A1", "1") + self.sheet.set("A2", "2") + self.sheet.set("A3", "3") + self.sheet.set("A4", "4") + self.sheet.set("B1", "5") + self.sheet.set("B2", "6") + self.sheet.set("B3", "7") + self.sheet.set("B4", "8") + self.sheet.set("C1", "9") + self.sheet.set("C2", "10") + self.sheet.set("C3", "11") + self.sheet.set("C4", "12") + self.sheet.set("D1", "13") + self.sheet.set("D2", "14") + self.sheet.set("D3", "15") + self.sheet.set("D4", "16") + self.doc.recompute() + + def testCopySingleCell(self): + self.injectSimpleData() + self.view_provider.doubleClicked() + view = self.getTableView() + view.select("A1", QtCore.QItemSelectionModel.SelectCurrent) + view.setCurrentIndex("A1") + FreeCAD.Gui.runCommand("Std_Copy", 0) + view.select("E5", QtCore.QItemSelectionModel.SelectCurrent) + view.setCurrentIndex("E5") + FreeCAD.Gui.runCommand("Std_Paste", 0) + self.doc.recompute() + self.assertEqual(self.sheet.get("A1"), self.sheet.get("E5")) +