Addon Manager: Use FreeCAD QUiLoader wrapper when available
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Copyright (c) 2022-2024 FreeCAD Project Association AISBL *
|
||||
# * Copyright (c) 2022-2025 FreeCAD Project Association AISBL *
|
||||
# * *
|
||||
# * This file is part of FreeCAD. *
|
||||
# * *
|
||||
@@ -38,15 +38,31 @@ import addonmanager_freecad_interface as fci
|
||||
|
||||
try:
|
||||
from PySide import QtCore, QtGui, QtWidgets
|
||||
from PySide.QtUiTools import QUiLoader
|
||||
except ImportError:
|
||||
try:
|
||||
from PySide6 import QtCore, QtGui, QtWidgets
|
||||
from PySide6.QtUiTools import QUiLoader
|
||||
except ImportError:
|
||||
from PySide2 import QtCore, QtGui, QtWidgets
|
||||
|
||||
# Make sure this can run inside and outside FreeCAD, and don't require that (when run inside FreeCAD) the user has the
|
||||
# python QtUiTools installed, because FreeCAD wraps it for us.
|
||||
try:
|
||||
import FreeCADGui
|
||||
|
||||
loadUi = FreeCADGui.PySideUic.loadUi
|
||||
except ImportError:
|
||||
try:
|
||||
from PySide6.QtUiTools import QUiLoader
|
||||
except ImportError:
|
||||
from PySide2.QtUiTools import QUiLoader
|
||||
|
||||
def loadUi(ui_file: str) -> QtWidgets.QWidget:
|
||||
q_ui_file = QtCore.QFile(ui_file)
|
||||
q_ui_file.open(QtCore.QFile.OpenModeFlag.ReadOnly)
|
||||
loader = QUiLoader()
|
||||
return loader.load(ui_file)
|
||||
|
||||
|
||||
try:
|
||||
from freecad.utils import get_python_exe
|
||||
except ImportError:
|
||||
@@ -210,12 +226,9 @@ class PythonPackageManager:
|
||||
optional: bool
|
||||
|
||||
def __init__(self, addons):
|
||||
ui_file = QtCore.QFile(
|
||||
self.dlg = loadUi(
|
||||
os.path.join(os.path.dirname(__file__), "PythonDependencyUpdateDialog.ui")
|
||||
)
|
||||
ui_file.open(QtCore.QFile.OpenModeFlag.ReadOnly)
|
||||
loader = QUiLoader()
|
||||
self.dlg = loader.load(ui_file)
|
||||
|
||||
self.addons = addons
|
||||
self.vendor_path = utils.get_pip_target_directory()
|
||||
|
||||
Reference in New Issue
Block a user