freecad: backport some fixes

This commit is contained in:
مهدي شينون (Mehdi Chinoune)
2024-05-28 11:15:30 +01:00
parent 9e3183daec
commit 4f863704e2
4 changed files with 645 additions and 5 deletions

View File

@@ -0,0 +1,95 @@
diff --git a/src/Mod/AddonManager/package_details.py b/src/Mod/AddonManager/package_details.py
index c9d1ae311a..9c0e040ea5 100644
--- a/src/Mod/AddonManager/package_details.py
+++ b/src/Mod/AddonManager/package_details.py
@@ -26,7 +26,7 @@
import os
from typing import Optional
-from PySide import QtCore, QtGui, QtWidgets
+from PySide6 import QtCore, QtGui, QtWidgets
import addonmanager_freecad_interface as fci
@@ -51,14 +51,14 @@ translate = fci.translate
show_javascript_console_output = False
try:
- from PySide import QtWebEngineWidgets
+ from PySide6 import QtWebEngineCore, QtWebEngineWidgets
HAS_QTWEBENGINE = True
except ImportError:
fci.Console.PrintWarning(
translate(
"AddonsInstaller",
- "Addon Manager Warning: Could not import QtWebEngineWidgets -- README data will display as text-only",
+ "Addon Manager Warning: Could not import QtWebEngineCore -- README data will display as text-only",
)
+ "\n"
)
@@ -715,14 +714,14 @@ class PackageDetails(QtWidgets.QWidget):
if HAS_QTWEBENGINE:
- class RestrictedWebPage(QtWebEngineWidgets.QWebEnginePage):
+ class RestrictedWebPage(QtWebEngineCore.QWebEnginePage):
"""A class that follows links to FreeCAD wiki pages, but opens all other
clicked links in the system web browser"""
def __init__(self, parent):
super().__init__(parent)
self.settings().setAttribute(
- QtWebEngineWidgets.QWebEngineSettings.ErrorPageEnabled, False
+ QtWebEngineCore.QWebEngineSettings.ErrorPageEnabled, False
)
self.stored_url = None
@@ -731,7 +730,7 @@ if HAS_QTWEBENGINE:
navigation requests to the FreeCAD Wiki (for translation purposes) --
anything else will open in a new window.
"""
- if _type == QtWebEngineWidgets.QWebEnginePage.NavigationTypeLinkClicked:
+ if _type == QtWebEngineCore.QWebEnginePage.NavigationTypeLinkClicked:
# See if the link is to a FreeCAD Wiki page -- if so, follow it,
# otherwise ask the OS to open it
if (
@@ -754,11 +753,11 @@ if HAS_QTWEBENGINE:
global show_javascript_console_output
if show_javascript_console_output:
tag = translate("AddonsInstaller", "Page JavaScript reported")
- if level == QtWebEngineWidgets.QWebEnginePage.InfoMessageLevel:
+ if level == QtWebEngineCore.QWebEnginePage.InfoMessageLevel:
fci.Console.PrintMessage(f"{tag} {lineNumber}: {message}\n")
- elif level == QtWebEngineWidgets.QWebEnginePage.WarningMessageLevel:
+ elif level == QtWebEngineCore.QWebEnginePage.WarningMessageLevel:
fci.Console.PrintWarning(f"{tag} {lineNumber}: {message}\n")
- elif level == QtWebEngineWidgets.QWebEnginePage.ErrorMessageLevel:
+ elif level == QtWebEngineCore.QWebEnginePage.ErrorMessageLevel:
fci.Console.PrintError(f"{tag} {lineNumber}: {message}\n")
def _reload_stored_url(self):
diff --git a/src/Mod/AddonManager/AddonManager.py b/src/Mod/AddonManager/AddonManager.py
index cb8bb63d8a..7445173537 100644
--- a/src/Mod/AddonManager/AddonManager.py
+++ b/src/Mod/AddonManager/AddonManager.py
@@ -427,15 +427,15 @@ class CommandAddonManager:
"You must restart FreeCAD for changes to take effect.",
)
)
- m.setIcon(m.Warning)
- m.setStandardButtons(m.Ok | m.Cancel)
- m.setDefaultButton(m.Cancel)
+ m.setIcon(m.Icon.Warning)
+ m.setStandardButtons(m.StandardButton.Ok | m.StandardButton.Cancel)
+ m.setDefaultButton(m.StandardButton.Cancel)
okBtn = m.button(QtWidgets.QMessageBox.StandardButton.Ok)
cancelBtn = m.button(QtWidgets.QMessageBox.StandardButton.Cancel)
okBtn.setText(translate("AddonsInstaller", "Restart now"))
cancelBtn.setText(translate("AddonsInstaller", "Restart later"))
ret = m.exec_()
- if ret == m.Ok:
+ if ret == m.StandardButton.Ok:
# restart FreeCAD after a delay to give time to this dialog to close
QtCore.QTimer.singleShot(1000, utils.restart_freecad)

View File

@@ -0,0 +1,83 @@
From 62c3836c97a56db24e3ef567a31eba2d0893b945 Mon Sep 17 00:00:00 2001
From: Ladislav Michl <ladis@linux-mips.org>
Date: Tue, 23 Jan 2024 12:46:32 +0100
Subject: [PATCH] Addon Manager: Qt6 fixes
---
src/Mod/AddonManager/addonmanager_utilities.py | 4 ++--
src/Mod/AddonManager/change_branch.py | 2 +-
src/Mod/AddonManager/package_details.py | 7 +++----
src/Mod/AddonManager/package_list.py | 7 +++----
4 files changed, 9 insertions(+), 11 deletions(-)
diff --git a/src/Mod/AddonManager/addonmanager_utilities.py b/src/Mod/AddonManager/addonmanager_utilities.py
index 9ceabc2e9add..183a2047b086 100644
--- a/src/Mod/AddonManager/addonmanager_utilities.py
+++ b/src/Mod/AddonManager/addonmanager_utilities.py
@@ -36,7 +36,7 @@
from urllib.parse import urlparse
try:
- from PySide import QtCore, QtWidgets
+ from PySide import QtCore, QtGui, QtWidgets
except ImportError:
QtCore = None
QtWidgets = None
@@ -245,7 +245,7 @@ def get_readme_html_url(repo):
def is_darkmode() -> bool:
"""Heuristics to determine if we are in a darkmode stylesheet"""
pl = fci.FreeCADGui.getMainWindow().palette()
- return pl.color(pl.Background).lightness() < 128
+ return pl.color(QtGui.QPalette.Window).lightness() < 128
def warning_color_string() -> str:
diff --git a/src/Mod/AddonManager/change_branch.py b/src/Mod/AddonManager/change_branch.py
index 332795a22afc..ebe1819bc755 100644
--- a/src/Mod/AddonManager/change_branch.py
+++ b/src/Mod/AddonManager/change_branch.py
@@ -216,7 +216,7 @@ def data(self, index: QtCore.QModelIndex, role: int = QtCore.Qt.DisplayRole):
dd = self.display_data[row]
if column == 3 or column == 4:
if dd[column] is not None:
- qdate = QtCore.QDateTime.fromTime_t(dd[column])
+ qdate = QtCore.QDateTime.fromSecsSinceEpoch(dd[column])
return QtCore.QLocale().toString(qdate, QtCore.QLocale.ShortFormat)
elif column < len(dd):
return dd[column]
diff --git a/src/Mod/AddonManager/package_details.py b/src/Mod/AddonManager/package_details.py
index 93dfb8bee962..8310b5e90343 100644
--- a/src/Mod/AddonManager/package_details.py
+++ b/src/Mod/AddonManager/package_details.py
@@ -133,10 +133,9 @@ def display_repo_status(self, status):
date = ""
installed_version_string = "<h3>"
if repo.updated_timestamp:
- date = (
- QtCore.QDateTime.fromTime_t(repo.updated_timestamp)
- .date()
- .toString(QtCore.Qt.SystemLocaleShortDate)
+ date = QtCore.QLocale().toString(
+ QtCore.QDateTime.fromSecsSinceEpoch(int(round(repo.updated_timestamp, 0))),
+ QtCore.QLocale.ShortFormat,
)
if version and date:
installed_version_string += (
diff --git a/src/Mod/AddonManager/package_list.py b/src/Mod/AddonManager/package_list.py
index a9dd3dc59856..d26b4f5489c3 100644
--- a/src/Mod/AddonManager/package_list.py
+++ b/src/Mod/AddonManager/package_list.py
@@ -465,10 +465,9 @@ def get_expanded_update_string(repo: Addon) -> str:
installed_date_string = (
"<br/>" + translate("AddonsInstaller", "Installed on") + ": "
)
- installed_date_string += (
- QtCore.QDateTime.fromTime_t(repo.updated_timestamp)
- .date()
- .toString(QtCore.Qt.SystemLocaleShortDate)
+ installed_date_string += QtCore.QLocale().toString(
+ QtCore.QDateTime.fromSecsSinceEpoch(int(round(repo.updated_timestamp, 0))),
+ QtCore.QLocale.ShortFormat,
)
available_version_string = ""

View File

@@ -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

View File

@@ -4,7 +4,7 @@ _realname=freecad
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=0.21.2
pkgrel=5
pkgrel=6
pkgdesc="Free and Opensource multiplatform 3D parametric modeler (mingw-w64)"
arch=('any')
mingw_arch=('ucrt64' 'clang64' 'clangarm64')
@@ -20,7 +20,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-fmt"
"${MINGW_PACKAGE_PREFIX}-freetype"
"${MINGW_PACKAGE_PREFIX}-med"
"${MINGW_PACKAGE_PREFIX}-openmp"
"${MINGW_PACKAGE_PREFIX}-omp"
"${MINGW_PACKAGE_PREFIX}-opencascade"
"${MINGW_PACKAGE_PREFIX}-openscad"
"${MINGW_PACKAGE_PREFIX}-python"
@@ -49,14 +49,26 @@ source=("https://github.com/FreeCAD/FreeCAD/archive/${pkgver}/${_realname}-${pkg
"004-Fix-smesh-does-not-compile-with-boost-1.85.patch::https://github.com/FreeCAD/FreeCAD/commit/f555a25f.patch"
"005-fix-c++-20-deprecate-copy_option.patch::https://github.com/FreeCAD/FreeCAD/commit/aa54ba73.patch"
# https://github.com/FreeCAD/FreeCAD/commit/0100a998
"006-Gui-TypeInitStruct-for-Shiboken6-builds.patch")
"006-Gui-TypeInitStruct-for-Shiboken6-builds.patch"
"007-fix-import-pyside6.patch"
# https://github.com/FreeCAD/FreeCAD/commit/62c3836c
"008-Addon-Manager-Qt6-fixes.patch"
"009-fix-import-pyside6-2.patch::https://github.com/FreeCAD/FreeCAD/commit/ac9a88c2.patch"
"010-Fix-NaviCube-for-Qt6.patch::https://github.com/FreeCAD/FreeCAD/commit/ccaee189.patch"
"011-fixups-with-qt6-enums.patch"
)
sha256sums=('ceaf77cd12e8ad533d1535cc27ae4ca2a6e80778502dc9cdec906415d674b674'
'f452aca0557806f61ffb767e0c296305b9271788a76f675bf254aa7d464ea325'
'194db658ae660d7e10385a4ef9521b2dc6b4264b8b0aedca33eb955fdfda5890'
'dbd2cd683d0c6ce8c633ce406231e77baf4e6f27898cee55cc11d61178c16dd1'
'7d79a7ae9420c317766c1a57db475fb5daaa8ba2345fbb398e5857e26c28d4ee'
'e38bb73741039e5505c6784b7f468ae497a3e7095b18f96c8d4fb68e3f8d5224'
'15650328a24cb60600d1aa2a9e772f14f28bd0909927a202e21de7d12c2036c3')
'15650328a24cb60600d1aa2a9e772f14f28bd0909927a202e21de7d12c2036c3'
'6bc21acb796a0b87e13925e9f745e62ca182a15cdddca17e671bed48f561d383'
'cdbb8ca67af1951c2976e60a2311e2b9e58cb1e0ae69df59ceb0420145502f03'
'4d30deb3a1de642d170fb97ff348727e35b74128121b0ac90ea7c9e5f173ba14'
'3594834a08b6712d29c0d44a4bfafb05d561ce93283832c31324b917d17bf8dd'
'abe1839bfcde379fc01bad43958ad941d552b3c897dccabc3fae821f7287ea1d')
apply_patch_with_msg() {
for _patch in "$@"
@@ -73,7 +85,12 @@ prepare() {
002-fix-building-against-vtk9.3.patch \
004-Fix-smesh-does-not-compile-with-boost-1.85.patch \
005-fix-c++-20-deprecate-copy_option.patch \
006-Gui-TypeInitStruct-for-Shiboken6-builds.patch
006-Gui-TypeInitStruct-for-Shiboken6-builds.patch \
007-fix-import-pyside6.patch \
008-Addon-Manager-Qt6-fixes.patch \
009-fix-import-pyside6-2.patch \
010-Fix-NaviCube-for-Qt6.patch
# https://github.com/FreeCAD/FreeCAD/pull/11560
apply_patch_with_msg \
003-fix-building-with-gcc.patch