extra/freecad to 0.21.2-8

This commit is contained in:
Kevin Mihelich 2024-04-05 18:14:43 +00:00
parent 0cef019c9d
commit e45ebdfd84
4 changed files with 190 additions and 7 deletions

View file

@ -1,7 +1,7 @@
pkgbase = freecad
pkgdesc = Feature based parametric 3D CAD modeler
pkgver = 0.21.2
pkgrel = 7
pkgrel = 8
url = https://freecadweb.org/
arch = x86_64
license = LGPL
@ -19,7 +19,6 @@ pkgbase = freecad
makedepends = pdal
makedepends = postgresql-libs
makedepends = python-mpi4py
makedepends = python-shiboken2
makedepends = shiboken6
makedepends = swig
makedepends = utf8cpp
@ -53,8 +52,10 @@ pkgbase = freecad
source = git+https://github.com/freecad/freecad#tag=0.21.2
source = freecad-vtk9.3.patch
source = pyside6.patch
source = 62c3836c.patch
b2sums = SKIP
b2sums = f0b5a4648eb4befabb2339bae4e42044e436aa50ad1c2a25b243c965272a217b2c1c69c34d0d20bd01c573008de10f733b74857ffecac502b8558a7095e305e5
b2sums = 81f39b2180adb435d3a1cff58b566d106e04fe1099adb1530c9a905b696e73cd7ed55d8616db7e080bb6f6716e9d2f207c3b2e6f6e0618a97b41de499e23d3b0
b2sums = 34a9c80fd2413284a2e09c41e91ef5079edafde6177384bfe8cc28ab44c60a8a1dfbee00d99ede39841f9405d1bc1b2b0e7bd1abff3e6a9fc32d124b656c2a9e
b2sums = eb474708c3611293cfe3dfc287418b606f7735f6eb306f44f7394cd7e65256daddcee35984211982f25064e7ec81cc038d4eeb8d34af7399058ecfb6e8e99e9f
pkgname = 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

@ -18,7 +18,7 @@ highmem=1
pkgname=freecad
pkgver=0.21.2
pkgrel=7
pkgrel=8
pkgdesc='Feature based parametric 3D CAD modeler'
arch=(x86_64)
url='https://freecadweb.org/'
@ -29,19 +29,22 @@ depends=(boost-libs coin fmt glew jsoncpp libspnav med-openmpi netcdf
python-yaml qt6-svg qt6-tools qt6-webengine
xerces-c verdict)
makedepends=(boost cgns cmake eigen git libharu liblas ninja openvdb openvr
pdal postgresql-libs python-mpi4py python-shiboken2
pdal postgresql-libs python-mpi4py
shiboken6 swig utf8cpp nlohmann-json)
optdepends=('graphviz: dependency graph support'
'openscad: OpenSCAD support')
source=("git+https://github.com/$pkgname/$pkgname#tag=$pkgver"
freecad-vtk9.3.patch
pyside6.patch) # tag: 0.21.1
pyside6.patch
62c3836c.patch)
b2sums=('SKIP'
'f0b5a4648eb4befabb2339bae4e42044e436aa50ad1c2a25b243c965272a217b2c1c69c34d0d20bd01c573008de10f733b74857ffecac502b8558a7095e305e5'
'81f39b2180adb435d3a1cff58b566d106e04fe1099adb1530c9a905b696e73cd7ed55d8616db7e080bb6f6716e9d2f207c3b2e6f6e0618a97b41de499e23d3b0')
'34a9c80fd2413284a2e09c41e91ef5079edafde6177384bfe8cc28ab44c60a8a1dfbee00d99ede39841f9405d1bc1b2b0e7bd1abff3e6a9fc32d124b656c2a9e'
'eb474708c3611293cfe3dfc287418b606f7735f6eb306f44f7394cd7e65256daddcee35984211982f25064e7ec81cc038d4eeb8d34af7399058ecfb6e8e99e9f')
prepare() {
patch -d freecad -Np1 -i "$srcdir"/freecad-vtk9.3.patch
patch -d freecad -Np1 -i ../62c3836c.patch # Fix Qt6 issues in addons manager
patch -d freecad -Np1 -i ../pyside6.patch
}

View file

@ -11,3 +11,99 @@ index 0569c1fde9..f5e3d0931f 100644
endmacro(SetupShibokenAndPyside)
# Locate the include directory for a pip-installed package -- uses pip show to find the base pip
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)