diff --git a/extra/freecad/.SRCINFO b/extra/freecad/.SRCINFO index 9ba242340..681d08df9 100644 --- a/extra/freecad/.SRCINFO +++ b/extra/freecad/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = freecad pkgdesc = Feature based parametric 3D CAD modeler pkgver = 0.21.2 - pkgrel = 17 + pkgrel = 19 url = https://freecadweb.org/ arch = x86_64 license = LGPL @@ -55,11 +55,13 @@ pkgbase = freecad source = 62c3836c.patch source = https://github.com/FreeCAD/FreeCAD/commit/6043c904.patch source = https://github.com/FreeCAD/FreeCAD/commit/ac9a88c2.patch + source = fixups-with-qt6-enums.patch b2sums = b20da85de907a41b14581583f9d69cab8fe79b1bdd50c24fc299c649ef0bfd7723c0b23aebc68ca5bbdee2da22c959004c7b595e19b542b1ec06a7275c0f5ea7 b2sums = f0b5a4648eb4befabb2339bae4e42044e436aa50ad1c2a25b243c965272a217b2c1c69c34d0d20bd01c573008de10f733b74857ffecac502b8558a7095e305e5 b2sums = eceb2d1b580fafaeec35de31fb3f4ec947ad32afe96734aa86d338364c97bbe5218506627957063c35ea2f360b7f7f916c9b7a1c0ef674c35d1f7972c070210e b2sums = eb474708c3611293cfe3dfc287418b606f7735f6eb306f44f7394cd7e65256daddcee35984211982f25064e7ec81cc038d4eeb8d34af7399058ecfb6e8e99e9f b2sums = de4b98c4b488045f9810dce124c271d6f4f629922e026f2d4f1efd6c9060b92309db41f8e0f6ebe5e7a27399911ac908cc8935c2501214326dbb1c4b739d46cc b2sums = 02284db1b17dc88d0522eb3a726076b9f1ded740fdab1a185e48534c3606c77e51a12690b02bf5e0d9d1f72d1d8389ba84a54cba274200e69b6b10a431bbfdfe + b2sums = 9cb72c3df3f1c8e49b4242b1e05f51c68e6df98891a0c485488433bb9eef1e814fe712761b62ef09cb37551643819a48cbf704df2121bf33401e410a05dce722 pkgname = freecad diff --git a/extra/freecad/PKGBUILD b/extra/freecad/PKGBUILD index 7494b9de7..8c05dd8a9 100644 --- a/extra/freecad/PKGBUILD +++ b/extra/freecad/PKGBUILD @@ -18,7 +18,7 @@ highmem=1 pkgname=freecad pkgver=0.21.2 -pkgrel=17 +pkgrel=19 pkgdesc='Feature based parametric 3D CAD modeler' arch=(x86_64) url='https://freecadweb.org/' @@ -38,13 +38,15 @@ source=("git+https://github.com/$pkgname/$pkgname#tag=$pkgver" pyside6.patch 62c3836c.patch https://github.com/FreeCAD/FreeCAD/commit/6043c904.patch - https://github.com/FreeCAD/FreeCAD/commit/ac9a88c2.patch) + https://github.com/FreeCAD/FreeCAD/commit/ac9a88c2.patch + fixups-with-qt6-enums.patch) b2sums=('b20da85de907a41b14581583f9d69cab8fe79b1bdd50c24fc299c649ef0bfd7723c0b23aebc68ca5bbdee2da22c959004c7b595e19b542b1ec06a7275c0f5ea7' 'f0b5a4648eb4befabb2339bae4e42044e436aa50ad1c2a25b243c965272a217b2c1c69c34d0d20bd01c573008de10f733b74857ffecac502b8558a7095e305e5' 'eceb2d1b580fafaeec35de31fb3f4ec947ad32afe96734aa86d338364c97bbe5218506627957063c35ea2f360b7f7f916c9b7a1c0ef674c35d1f7972c070210e' 'eb474708c3611293cfe3dfc287418b606f7735f6eb306f44f7394cd7e65256daddcee35984211982f25064e7ec81cc038d4eeb8d34af7399058ecfb6e8e99e9f' 'de4b98c4b488045f9810dce124c271d6f4f629922e026f2d4f1efd6c9060b92309db41f8e0f6ebe5e7a27399911ac908cc8935c2501214326dbb1c4b739d46cc' - '02284db1b17dc88d0522eb3a726076b9f1ded740fdab1a185e48534c3606c77e51a12690b02bf5e0d9d1f72d1d8389ba84a54cba274200e69b6b10a431bbfdfe') + '02284db1b17dc88d0522eb3a726076b9f1ded740fdab1a185e48534c3606c77e51a12690b02bf5e0d9d1f72d1d8389ba84a54cba274200e69b6b10a431bbfdfe' + '9cb72c3df3f1c8e49b4242b1e05f51c68e6df98891a0c485488433bb9eef1e814fe712761b62ef09cb37551643819a48cbf704df2121bf33401e410a05dce722') prepare() { patch -d freecad -Np1 -i "$srcdir"/freecad-vtk9.3.patch @@ -52,6 +54,7 @@ prepare() { patch -d freecad -Np1 -i ../pyside6.patch patch -d freecad -Np1 -i ../ac9a88c2.patch # Fix more pyside6 issues patch -d freecad -Np1 -i ../6043c904.patch # Fix build with Python 3.12 + patch -d freecad -Np1 -i ../fixups-with-qt6-enums.patch # Discard int conversions in WBs Python sources sed -e 's|Shiboken::Module::getTypes(requiredModule)|reinterpret_cast<PyTypeObject **>(Shiboken::Module::getTypes(requiredModule))|' \ -i freecad/src/Gui/PythonWrapper.cpp # Fix build with PySide 6.7 } diff --git a/extra/freecad/fixups-with-qt6-enums.patch b/extra/freecad/fixups-with-qt6-enums.patch new file mode 100644 index 000000000..ca2327be0 --- /dev/null +++ b/extra/freecad/fixups-with-qt6-enums.patch @@ -0,0 +1,445 @@ +diff --git a/src/Gui/PythonWrapper.cpp b/src/Gui/PythonWrapper.cpp +index 79bc20d47..0452966f7 100644 +--- a/src/Gui/PythonWrapper.cpp ++++ b/src/Gui/PythonWrapper.cpp +@@ -550,6 +550,36 @@ QObject* PythonWrapper::toQObject(const Py::Object& pyobject) + return nullptr; + } + ++qsizetype PythonWrapper::toEnum(PyObject* pyPtr) ++{ ++#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE) ++ return Shiboken::Enum::getValue(pyPtr); ++#else ++ return toEnum(Py::Object(pyPtr)); ++#endif ++} ++ ++qsizetype PythonWrapper::toEnum(const Py::Object& pyobject) ++{ ++#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE) ++ return toEnum(pyobject.ptr()); ++#else ++ try { ++ Py::Int ret; ++ if (pyobject.hasAttr(std::string("value"))) { ++ ret = pyobject.getAttr(std::string("value")); ++ } else { ++ ret = Py::Int(pyobject); ++ } ++ return (qsizetype)ret; ++ } ++ catch (Py::Exception&) { ++ Base::PyException e; // extract the Python error text ++ e.ReportException(); ++ } ++#endif ++} ++ + QGraphicsItem* PythonWrapper::toQGraphicsItem(PyObject* pyPtr) + { + #if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE) +diff --git a/src/Gui/PythonWrapper.h b/src/Gui/PythonWrapper.h +index c31f30e47..eada6607f 100644 +--- a/src/Gui/PythonWrapper.h ++++ b/src/Gui/PythonWrapper.h +@@ -52,6 +52,8 @@ public: + + bool toCString(const Py::Object&, std::string&); + QObject* toQObject(const Py::Object&); ++ qsizetype toEnum(PyObject* pyPtr); ++ qsizetype toEnum(const Py::Object& pyobject); + QGraphicsItem* toQGraphicsItem(PyObject* ptr); + QGraphicsItem* toQGraphicsItem(const Py::Object& pyObject); + QGraphicsObject* toQGraphicsObject(PyObject* pyPtr); +diff --git a/src/Gui/TaskView/TaskDialogPython.cpp b/src/Gui/TaskView/TaskDialogPython.cpp +index 795b7cf43..52476f7d8 100644 +--- a/src/Gui/TaskView/TaskDialogPython.cpp ++++ b/src/Gui/TaskView/TaskDialogPython.cpp +@@ -740,9 +740,10 @@ QDialogButtonBox::StandardButtons TaskDialogPython::getStandardButtons() const + if (dlg.hasAttr(std::string("getStandardButtons"))) { + Py::Callable method(dlg.getAttr(std::string("getStandardButtons"))); + Py::Tuple args; +- Py::Int ret(method.apply(args)); +- int value = (int)ret; +- return QDialogButtonBox::StandardButtons(value); ++ Gui::PythonWrapper wrap; ++ wrap.loadWidgetsModule(); ++ qsizetype value(wrap.toEnum(method.apply(args))); ++ return QDialogButtonBox::StandardButtons((int)value); + } + } + catch (Py::Exception&) { +diff --git a/src/Mod/Arch/ArchAxis.py b/src/Mod/Arch/ArchAxis.py +index ecda27a76..406f094f5 100644 +--- a/src/Mod/Arch/ArchAxis.py ++++ b/src/Mod/Arch/ArchAxis.py +@@ -723,7 +723,7 @@ class _AxisTaskPanel: + + def getStandardButtons(self): + +- return int(QtGui.QDialogButtonBox.Close) ++ return QtGui.QDialogButtonBox.Close + + def update(self): + +diff --git a/src/Mod/Arch/ArchAxisSystem.py b/src/Mod/Arch/ArchAxisSystem.py +index a896a98a5..241dcf36b 100644 +--- a/src/Mod/Arch/ArchAxisSystem.py ++++ b/src/Mod/Arch/ArchAxisSystem.py +@@ -313,7 +313,7 @@ class AxisSystemTaskPanel: + + def getStandardButtons(self): + +- return int(QtGui.QDialogButtonBox.Ok) ++ return QtGui.QDialogButtonBox.Ok + + def getIcon(self,obj): + +diff --git a/src/Mod/Arch/ArchCommands.py b/src/Mod/Arch/ArchCommands.py +index 114ab6034..143641784 100644 +--- a/src/Mod/Arch/ArchCommands.py ++++ b/src/Mod/Arch/ArchCommands.py +@@ -1023,7 +1023,7 @@ class SurveyTaskPanel: + return True + + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Close) ++ return QtGui.QDialogButtonBox.Close + + def reject(self): + if hasattr(FreeCAD,"SurveyObserver"): +diff --git a/src/Mod/Arch/ArchComponent.py b/src/Mod/Arch/ArchComponent.py +index 36bb3a4d3..3e33b5a45 100644 +--- a/src/Mod/Arch/ArchComponent.py ++++ b/src/Mod/Arch/ArchComponent.py +@@ -1660,7 +1660,7 @@ class SelectionTaskPanel: + + def getStandardButtons(self): + """Adds the cancel button.""" +- return int(QtGui.QDialogButtonBox.Cancel) ++ return QtGui.QDialogButtonBox.Cancel + + def reject(self): + """The method run when the user selects the cancel button.""" +@@ -1766,7 +1766,7 @@ class ComponentTaskPanel: + def getStandardButtons(self): + """Add the standard ok button.""" + +- return int(QtGui.QDialogButtonBox.Ok) ++ return QtGui.QDialogButtonBox.Ok + + def check(self,wid,col): + """This method is run as the callback when the user selects an item in the tree. +diff --git a/src/Mod/Arch/ArchCutPlane.py b/src/Mod/Arch/ArchCutPlane.py +index 3aa5e1ce0..ba103f38d 100644 +--- a/src/Mod/Arch/ArchCutPlane.py ++++ b/src/Mod/Arch/ArchCutPlane.py +@@ -168,7 +168,7 @@ class _CutPlaneTaskPanel: + return True + + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Ok|QtGui.QDialogButtonBox.Cancel) ++ return QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel + + def previewCutVolume(self, i): + cutVolume = ArchCommands.getCutVolume(self.plan,FreeCADGui.Selection.getSelectionEx()[0].Object.Shape) +diff --git a/src/Mod/Arch/ArchRoof.py b/src/Mod/Arch/ArchRoof.py +index 74ec30b5b..f9333d81a 100644 +--- a/src/Mod/Arch/ArchRoof.py ++++ b/src/Mod/Arch/ArchRoof.py +@@ -949,7 +949,7 @@ class _RoofTaskPanel: + return True + + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Close) ++ return QtGui.QDialogButtonBox.Close + + def update(self): + '''fills the treewidget''' +diff --git a/src/Mod/Arch/ArchSectionPlane.py b/src/Mod/Arch/ArchSectionPlane.py +index 8e6177dfc..bede32334 100644 +--- a/src/Mod/Arch/ArchSectionPlane.py ++++ b/src/Mod/Arch/ArchSectionPlane.py +@@ -1265,7 +1265,7 @@ class SectionPlaneTaskPanel: + return True + + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Ok) ++ return QtGui.QDialogButtonBox.Ok + + def getIcon(self,obj): + if hasattr(obj.ViewObject,"Proxy"): +diff --git a/src/Mod/Arch/ArchWindow.py b/src/Mod/Arch/ArchWindow.py +index c3cc10c60..b5e72ee2e 100644 +--- a/src/Mod/Arch/ArchWindow.py ++++ b/src/Mod/Arch/ArchWindow.py +@@ -1496,7 +1496,7 @@ class _ArchWindowTaskPanel: + + def getStandardButtons(self): + +- return int(QtGui.QDialogButtonBox.Close) ++ return QtGui.QDialogButtonBox.Close + + def check(self,wid,col): + +diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py +index b19101e9c..3bba18795 100644 +--- a/src/Mod/Draft/DraftGui.py ++++ b/src/Mod/Draft/DraftGui.py +@@ -217,7 +217,7 @@ class DraftTaskPanel: + else: + self.form = widget + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Close) ++ return QtGui.QDialogButtonBox.Close + def accept(self): + if hasattr(FreeCADGui,"draftToolBar"): + return FreeCADGui.draftToolBar.validatePoint() +@@ -1031,7 +1031,7 @@ class DraftToolBar: + self.form = [extra] + self.callback = callback + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Close) ++ return QtGui.QDialogButtonBox.Close + def reject(self): + if self.callback: + self.callback() +@@ -1766,7 +1766,7 @@ class FacebinderTaskPanel: + return True + + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Ok) ++ return QtGui.QDialogButtonBox.Ok + + def update(self): + """fills the treewidget""" +diff --git a/src/Mod/Draft/drafttaskpanels/task_selectplane.py b/src/Mod/Draft/drafttaskpanels/task_selectplane.py +index 7eba90f0e..a8ba3139d 100644 +--- a/src/Mod/Draft/drafttaskpanels/task_selectplane.py ++++ b/src/Mod/Draft/drafttaskpanels/task_selectplane.py +@@ -40,6 +40,7 @@ to be more similar to OrthoArray and the new tools. + ## \addtogroup drafttaskpanels + # @{ + import FreeCADGui as Gui ++from PySide import QtWidgets + + + class SelectPlaneTaskPanel: +@@ -50,6 +51,6 @@ class SelectPlaneTaskPanel: + + def getStandardButtons(self): + """Execute to set the standard buttons.""" +- return 2097152 # int(QtGui.QDialogButtonBox.Close) ++ return QtGui.QDialogButtonBox.Close + + ## @} +diff --git a/src/Mod/Fem/femsolver/solver_taskpanel.py b/src/Mod/Fem/femsolver/solver_taskpanel.py +index 90c622ad7..5d3817bef 100644 +--- a/src/Mod/Fem/femsolver/solver_taskpanel.py ++++ b/src/Mod/Fem/femsolver/solver_taskpanel.py +@@ -156,7 +156,7 @@ class ControlTaskPanel(QtCore.QObject): + femsolver.report.display(machine.report, _REPORT_TITLE, text) + + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Close) ++ return QtGui.QDialogButtonBox.Close + + def reject(self): + Gui.ActiveDocument.resetEdit() +diff --git a/src/Mod/Fem/femtaskpanels/task_mesh_gmsh.py b/src/Mod/Fem/femtaskpanels/task_mesh_gmsh.py +index 2aa2fbf24..770620c08 100644 +--- a/src/Mod/Fem/femtaskpanels/task_mesh_gmsh.py ++++ b/src/Mod/Fem/femtaskpanels/task_mesh_gmsh.py +@@ -106,9 +106,7 @@ class _TaskPanel: + self.update() + + def getStandardButtons(self): +- button_value = int( +- QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Apply | QtGui.QDialogButtonBox.Cancel +- ) ++ button_value = QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Apply | QtGui.QDialogButtonBox.Cancel + return button_value + # show a OK, a apply and a Cancel button + # def reject() is called on Cancel button +diff --git a/src/Mod/Fem/femtaskpanels/task_result_mechanical.py b/src/Mod/Fem/femtaskpanels/task_result_mechanical.py +index 266670a54..f0ec4e9d7 100644 +--- a/src/Mod/Fem/femtaskpanels/task_result_mechanical.py ++++ b/src/Mod/Fem/femtaskpanels/task_result_mechanical.py +@@ -265,7 +265,7 @@ class _TaskPanel: + self.result_widget.sb_displacement_factor_max.setValue(100.) # init non standard values + + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Close) ++ return QtGui.QDialogButtonBox.Close + + def get_result_stats(self, type_name): + return resulttools.get_stats(self.result_obj, type_name) +diff --git a/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py b/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py +index fd4607f94..a39eb47d7 100644 +--- a/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py ++++ b/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py +@@ -159,7 +159,7 @@ class _TaskPanel: + def getStandardButtons(self): + # only show a close button + # def accept() in no longer needed, since there is no OK button +- return int(QtGui.QDialogButtonBox.Close) ++ return QtGui.QDialogButtonBox.Close + + def reject(self): + FreeCADGui.ActiveDocument.resetEdit() +diff --git a/src/Mod/OpenSCAD/OpenSCADCommands.py b/src/Mod/OpenSCAD/OpenSCADCommands.py +index 3ee3737b5..10b45d5f0 100644 +--- a/src/Mod/OpenSCAD/OpenSCADCommands.py ++++ b/src/Mod/OpenSCAD/OpenSCADCommands.py +@@ -379,7 +379,7 @@ class AddSCADTask: + self.form.buttonrefresh.clicked.connect(self.refreshelement) + + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Close) ++ return QtGui.QDialogButtonBox.Close + + def isAllowedAlterSelection(self): + return True +@@ -492,7 +492,7 @@ class OpenSCADMeshBooleanTask: + self.form.buttonadd.clicked.connect(self.doboolean) + + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Close) ++ return QtGui.QDialogButtonBox.Close + + def isAllowedAlterSelection(self): + return False +diff --git a/src/Mod/Part/AttachmentEditor/TaskAttachmentEditor.py b/src/Mod/Part/AttachmentEditor/TaskAttachmentEditor.py +index bf79827a2..fb3607797 100644 +--- a/src/Mod/Part/AttachmentEditor/TaskAttachmentEditor.py ++++ b/src/Mod/Part/AttachmentEditor/TaskAttachmentEditor.py +@@ -306,7 +306,7 @@ class AttachmentEditorTaskPanel(FrozenClass): + + # task dialog handling + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Ok) | int(QtGui.QDialogButtonBox.Cancel)| int(QtGui.QDialogButtonBox.Apply) ++ return QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel | QtGui.QDialogButtonBox.Apply + + def clicked(self,button): + if button == QtGui.QDialogButtonBox.Apply: +diff --git a/src/Mod/PartDesign/InvoluteGearFeature.py b/src/Mod/PartDesign/InvoluteGearFeature.py +index bd91d495b..bca795851 100644 +--- a/src/Mod/PartDesign/InvoluteGearFeature.py ++++ b/src/Mod/PartDesign/InvoluteGearFeature.py +@@ -258,7 +258,7 @@ class _InvoluteGearTaskPanel: + self.form.doubleSpinBox_ProfileShift.setValue(self.obj.ProfileShiftCoefficient) + + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Ok) | int(QtGui.QDialogButtonBox.Cancel)| int(QtGui.QDialogButtonBox.Apply) ++ return QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel | QtGui.QDialogButtonBox.Apply + + def clicked(self,button): + if button == QtGui.QDialogButtonBox.Apply: +diff --git a/src/Mod/PartDesign/SprocketFeature.py b/src/Mod/PartDesign/SprocketFeature.py +index c63cbe0fe..53270b093 100644 +--- a/src/Mod/PartDesign/SprocketFeature.py ++++ b/src/Mod/PartDesign/SprocketFeature.py +@@ -253,7 +253,7 @@ class SprocketTaskPanel: + self.obj.Proxy.execute(self.obj) + + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Ok) | int(QtGui.QDialogButtonBox.Cancel)| int(QtGui.QDialogButtonBox.Apply) ++ return QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel | QtGui.QDialogButtonBox.Apply + + def clicked(self,button): + if button == QtGui.QDialogButtonBox.Apply: +diff --git a/src/Mod/PartDesign/WizardShaft/WizardShaft.py b/src/Mod/PartDesign/WizardShaft/WizardShaft.py +index 850da098c..096468d1e 100644 +--- a/src/Mod/PartDesign/WizardShaft/WizardShaft.py ++++ b/src/Mod/PartDesign/WizardShaft/WizardShaft.py +@@ -155,7 +155,7 @@ class TaskWizardShaft: + self.updateButton(row, col, flag) + + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Ok) ++ return QtGui.QDialogButtonBox.Ok + + def accept(self): + if self.table: +diff --git a/src/Mod/Path/Path/Dressup/Gui/Boundary.py b/src/Mod/Path/Path/Dressup/Gui/Boundary.py +index e27c0169e..9064a3de1 100644 +--- a/src/Mod/Path/Path/Dressup/Gui/Boundary.py ++++ b/src/Mod/Path/Path/Dressup/Gui/Boundary.py +@@ -59,11 +59,7 @@ class TaskPanel(object): + self.stockEdit = None + + def getStandardButtons(self): +- return int( +- QtGui.QDialogButtonBox.Ok +- | QtGui.QDialogButtonBox.Apply +- | QtGui.QDialogButtonBox.Cancel +- ) ++ return QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Apply | QtGui.QDialogButtonBox.Cancel + + def modifyStandardButtons(self, buttonBox): + self.buttonBox = buttonBox +diff --git a/src/Mod/Path/Path/Dressup/Gui/Tags.py b/src/Mod/Path/Path/Dressup/Gui/Tags.py +index b0c4d2aff..6b3a62a82 100644 +--- a/src/Mod/Path/Path/Dressup/Gui/Tags.py ++++ b/src/Mod/Path/Path/Dressup/Gui/Tags.py +@@ -75,11 +75,7 @@ class PathDressupTagTaskPanel: + self.editItem = None + + def getStandardButtons(self): +- return int( +- QtGui.QDialogButtonBox.Ok +- | QtGui.QDialogButtonBox.Apply +- | QtGui.QDialogButtonBox.Cancel +- ) ++ return QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Apply | QtGui.QDialogButtonBox.Cancel + + def clicked(self, button): + if button == QtGui.QDialogButtonBox.Apply: +diff --git a/src/Mod/Path/Path/Op/Gui/Base.py b/src/Mod/Path/Path/Op/Gui/Base.py +index 0de7699b4..3faec0533 100644 +--- a/src/Mod/Path/Path/Op/Gui/Base.py ++++ b/src/Mod/Path/Path/Op/Gui/Base.py +@@ -1274,11 +1274,7 @@ class TaskPanel(object): + + def getStandardButtons(self): + """getStandardButtons() ... returns the Buttons for the task panel.""" +- return int( +- QtGui.QDialogButtonBox.Ok +- | QtGui.QDialogButtonBox.Apply +- | QtGui.QDialogButtonBox.Cancel +- ) ++ return QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Apply | QtGui.QDialogButtonBox.Cancel + + def setupUi(self): + """setupUi() ... internal function to initialise all pages.""" +diff --git a/src/Mod/Path/PathPythonGui/simple_edit_panel.py b/src/Mod/Path/PathPythonGui/simple_edit_panel.py +index 0de9345bf..75d635f75 100644 +--- a/src/Mod/Path/PathPythonGui/simple_edit_panel.py ++++ b/src/Mod/Path/PathPythonGui/simple_edit_panel.py +@@ -88,11 +88,7 @@ class SimpleEditPanel: + ) + + def getStandardButtons(self): +- return int( +- QtGui.QDialogButtonBox.Ok +- | QtGui.QDialogButtonBox.Apply +- | QtGui.QDialogButtonBox.Cancel +- ) ++ return QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Apply | QtGui.QDialogButtonBox.Cancel + + def clicked(self, button): + # callback for standard buttons +diff --git a/src/Mod/TemplatePyMod/TaskPanel.py b/src/Mod/TemplatePyMod/TaskPanel.py +index ef07e9b24..cc8e301aa 100644 +--- a/src/Mod/TemplatePyMod/TaskPanel.py ++++ b/src/Mod/TemplatePyMod/TaskPanel.py +@@ -61,7 +61,7 @@ class TaskPanel: + return True + + def getStandardButtons(self): +- return int(QtGui.QDialogButtonBox.Ok) ++ return QtGui.QDialogButtonBox.Ok + + def helpRequested(self): + pass