28
28
import os
29
29
30
30
from addonmanager_freecad_interface import translate
31
- from PySideWrapper import QtGui , QtWidgets
31
+ from PySideWrapper import QtCore , QtGui , QtWidgets
32
32
33
33
34
34
class WidgetGlobalButtonBar (QtWidgets .QWidget ):
@@ -51,18 +51,38 @@ def __init__(self, parent: QtWidgets.QWidget = None):
51
51
52
52
def _update_ui (self ):
53
53
self .horizontal_layout = QtWidgets .QHBoxLayout ()
54
- self .refresh_local_cache = QtWidgets .QPushButton (self )
55
54
self .update_all_addons = QtWidgets .QPushButton (self )
56
55
self .check_for_updates = QtWidgets .QPushButton (self )
57
- self .python_dependencies = QtWidgets .QPushButton (self )
58
56
self .developer_tools = QtWidgets .QPushButton (self )
59
- self .addons_folder = QtWidgets .QPushButton (self )
60
57
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
+
62
83
self .horizontal_layout .addWidget (self .update_all_addons )
63
84
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 )
66
86
self .horizontal_layout .addWidget (self .developer_tools )
67
87
self .horizontal_layout .addStretch ()
68
88
self .horizontal_layout .addWidget (self .close )
@@ -77,13 +97,14 @@ def _set_icons(self):
77
97
)
78
98
79
99
def retranslateUi (self , _ ):
80
- self .refresh_local_cache .setText (translate ("AddonsInstaller" , "Close " ))
100
+ self .refresh_local_cache .setText (translate ("AddonsInstaller" , "Refresh local cache " ))
81
101
self .update_all_addons .setText (translate ("AddonsInstaller" , "Update all addons" ))
82
102
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" ))
84
104
self .addons_folder .setText (translate ("AddonsFolder" , "Open Addons folder" ))
85
105
self .developer_tools .setText (translate ("AddonsInstaller" , "Developer tools..." ))
86
106
self .close .setText (translate ("AddonsInstaller" , "Close" ))
107
+ self .gear_tools .setText (translate ("AddonsInstaller" , "Gear tools ..." ))
87
108
88
109
def set_number_of_available_updates (self , updates : int ):
89
110
if updates > 0 :
0 commit comments