Skip to content

Commit f672ed8

Browse files
authored
Merge pull request #56 from tarman3/dropdown
Addon: Combine Refresh Cache, Python Dependencies and Open Folder
2 parents 14c5a56 + 1a23337 commit f672ed8

File tree

3 files changed

+159
-12
lines changed

3 files changed

+159
-12
lines changed

AddonManager.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -301,12 +301,12 @@ def launch(self) -> None:
301301
self.dialog.accepted.connect(self.accept)
302302
self.button_bar.update_all_addons.clicked.connect(self.update_all)
303303
self.button_bar.close.clicked.connect(self.dialog.reject)
304-
self.button_bar.refresh_local_cache.clicked.connect(self.on_button_update_cache_clicked)
305304
self.button_bar.check_for_updates.clicked.connect(
306305
lambda: self.force_check_updates(standalone=True)
307306
)
308-
self.button_bar.python_dependencies.clicked.connect(self.show_python_updates_dialog)
309-
self.button_bar.addons_folder.clicked.connect(self.open_addons_folder)
307+
self.button_bar.python_dependencies.triggered.connect(self.show_python_updates_dialog)
308+
self.button_bar.addons_folder.triggered.connect(self.open_addons_folder)
309+
self.button_bar.refresh_local_cache.triggered.connect(self.on_button_update_cache_clicked)
310310
self.button_bar.developer_tools.clicked.connect(self.show_developer_tools)
311311
self.composite_view.package_list.stop_loading.connect(self.stop_update)
312312
self.composite_view.package_list.setEnabled(False)

Resources/icons/gear.svg

Lines changed: 126 additions & 0 deletions
Loading

Widgets/addonmanager_widget_global_buttons.py

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import os
2929

3030
from addonmanager_freecad_interface import translate
31-
from PySideWrapper import QtGui, QtWidgets
31+
from PySideWrapper import QtCore, QtGui, QtWidgets
3232

3333

3434
class WidgetGlobalButtonBar(QtWidgets.QWidget):
@@ -51,18 +51,38 @@ def __init__(self, parent: QtWidgets.QWidget = None):
5151

5252
def _update_ui(self):
5353
self.horizontal_layout = QtWidgets.QHBoxLayout()
54-
self.refresh_local_cache = QtWidgets.QPushButton(self)
5554
self.update_all_addons = QtWidgets.QPushButton(self)
5655
self.check_for_updates = QtWidgets.QPushButton(self)
57-
self.python_dependencies = QtWidgets.QPushButton(self)
5856
self.developer_tools = QtWidgets.QPushButton(self)
59-
self.addons_folder = QtWidgets.QPushButton(self)
6057
self.close = QtWidgets.QPushButton(self)
61-
self.horizontal_layout.addWidget(self.refresh_local_cache)
58+
59+
self.gear_tools = QtWidgets.QToolButton()
60+
icon_path = os.path.join(os.path.dirname(__file__), "..", "Resources", "icons")
61+
self.gear_tools.setIcon(QtGui.QIcon(os.path.join(icon_path, "gear.svg")))
62+
self.gear_tools.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
63+
self.gear_tools.setPopupMode(QtWidgets.QToolButton.InstantPopup)
64+
self.gear_tools.setStyleSheet("QToolButton::menu-indicator { image: none; }")
65+
66+
if hasattr(QtGui, "QAction"):
67+
# Qt6
68+
self.addons_folder = QtGui.QAction()
69+
self.python_dependencies = QtGui.QAction()
70+
self.refresh_local_cache = QtGui.QAction()
71+
else:
72+
# Qt5
73+
self.addons_folder = QtWidgets.QAction()
74+
self.python_dependencies = QtWidgets.QAction()
75+
self.refresh_local_cache = QtWidgets.QAction()
76+
self.gear_menu = QtWidgets.QMenu(self.gear_tools)
77+
self.gear_menu.addAction(self.addons_folder)
78+
self.gear_menu.addAction(self.python_dependencies)
79+
self.gear_menu.addAction(self.refresh_local_cache)
80+
81+
self.gear_tools.setMenu(self.gear_menu)
82+
6283
self.horizontal_layout.addWidget(self.update_all_addons)
6384
self.horizontal_layout.addWidget(self.check_for_updates)
64-
self.horizontal_layout.addWidget(self.python_dependencies)
65-
self.horizontal_layout.addWidget(self.addons_folder)
85+
self.horizontal_layout.addWidget(self.gear_tools)
6686
self.horizontal_layout.addWidget(self.developer_tools)
6787
self.horizontal_layout.addStretch()
6888
self.horizontal_layout.addWidget(self.close)
@@ -77,13 +97,14 @@ def _set_icons(self):
7797
)
7898

7999
def retranslateUi(self, _):
80-
self.refresh_local_cache.setText(translate("AddonsInstaller", "Close"))
100+
self.refresh_local_cache.setText(translate("AddonsInstaller", "Refresh local cache"))
81101
self.update_all_addons.setText(translate("AddonsInstaller", "Update all addons"))
82102
self.check_for_updates.setText(translate("AddonsInstaller", "Check for updates"))
83-
self.python_dependencies.setText(translate("AddonsInstaller", "Python dependencies..."))
103+
self.python_dependencies.setText(translate("AddonsInstaller", "Open Python dependencies"))
84104
self.addons_folder.setText(translate("AddonsFolder", "Open Addons folder"))
85105
self.developer_tools.setText(translate("AddonsInstaller", "Developer tools..."))
86106
self.close.setText(translate("AddonsInstaller", "Close"))
107+
self.gear_tools.setText(translate("AddonsInstaller", "Gear tools ..."))
87108

88109
def set_number_of_available_updates(self, updates: int):
89110
if updates > 0:

0 commit comments

Comments
 (0)