AddonManager: Support selecting addon on start

This commit is contained in:
Pieter Hijma
2024-05-01 14:16:38 +02:00
committed by Chris Hennes
parent 9d2f72a34f
commit 0229715002
2 changed files with 14 additions and 1 deletions

View File

@@ -105,7 +105,7 @@ are downloaded instead.
INSTANCE = None
class CommandAddonManager:
class CommandAddonManager(QtCore.QObject):
"""The main Addon Manager class and FreeCAD command"""
workers = [
@@ -125,7 +125,11 @@ class CommandAddonManager:
lock = threading.Lock()
restart_required = False
finished = QtCore.Signal()
def __init__(self):
super().__init__()
QT_TRANSLATE_NOOP("QObject", "Addon Manager")
FreeCADGui.addPreferencePage(
AddonManagerOptions,
@@ -228,6 +232,7 @@ class CommandAddonManager:
# connect slots
self.dialog.rejected.connect(self.reject)
self.dialog.accepted.connect(self.accept)
self.button_bar.update_all_addons.clicked.connect(self.update_all)
self.button_bar.close.clicked.connect(self.dialog.reject)
self.button_bar.refresh_local_cache.clicked.connect(self.on_buttonUpdateCache_clicked)
@@ -285,6 +290,9 @@ class CommandAddonManager:
+ "\n"
)
def accept(self) -> None:
self.finished.emit()
def reject(self) -> None:
"""called when the window has been closed"""
@@ -356,6 +364,8 @@ class CommandAddonManager:
# restart FreeCAD after a delay to give time to this dialog to close
QtCore.QTimer.singleShot(1000, utils.restart_freecad)
self.finished.emit()
def startup(self) -> None:
"""Downloads the available packages listings and populates the table

View File

@@ -75,8 +75,11 @@ class PackageList(QtWidgets.QWidget):
pref = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Addons")
package_type = pref.GetInt("PackageTypeSelection", 1)
status = pref.GetInt("StatusSelection", 0)
search_string = pref.GetString("SearchString", "")
self.ui.view_bar.filter_selector.set_contents_filter(package_type)
self.ui.view_bar.filter_selector.set_status_filter(status)
if search_string:
self.ui.view_bar.search.filter_line_edit.setText(search_string)
self.item_filter.setPackageFilter(package_type)
self.item_filter.setStatusFilter(status)