diff --git a/openpype/modules/base.py b/openpype/modules/base.py index 441a9731b7..9721c0a5d5 100644 --- a/openpype/modules/base.py +++ b/openpype/modules/base.py @@ -184,6 +184,8 @@ class ITrayAction(ITrayModule): necessary. """ + _admin_submenu = None + @property @abstractmethod def label(self): @@ -207,6 +209,16 @@ class ITrayAction(ITrayModule): def tray_exit(self): return + @staticmethod + def admin_submenu(tray_menu): + if ITrayAction._admin_submenu is None: + from Qt import QtWidgets + + admin_submenu = QtWidgets.QMenu("Admin", tray_menu) + admin_submenu.menuAction().setVisible(False) + ITrayAction._admin_submenu = admin_submenu + return ITrayAction._admin_submenu + class ITrayService(ITrayModule): # Module's property @@ -233,6 +245,7 @@ class ITrayService(ITrayModule): def services_submenu(tray_menu): if ITrayService._services_submenu is None: from Qt import QtWidgets + services_submenu = QtWidgets.QMenu("Services", tray_menu) services_submenu.menuAction().setVisible(False) ITrayService._services_submenu = services_submenu diff --git a/openpype/tools/tray/pype_tray.py b/openpype/tools/tray/pype_tray.py index 2c739e3e39..0272ba869b 100644 --- a/openpype/tools/tray/pype_tray.py +++ b/openpype/tools/tray/pype_tray.py @@ -15,7 +15,11 @@ from openpype.api import ( get_system_settings ) from openpype.lib import get_pype_execute_args -from openpype.modules import TrayModulesManager, ITrayService +from openpype.modules import ( + TrayModulesManager, + ITrayAction, + ITrayService +) from openpype import style from .pype_info_widget import PypeInfoWidget @@ -67,6 +71,9 @@ class TrayManager: self.modules_manager.initialize(self, self.tray_widget.menu) + admin_submenu = ITrayAction.admin_submenu(self.tray_widget.menu) + self.tray_widget.menu.addMenu(admin_submenu) + # Add services if they are services_submenu = ITrayService.services_submenu(self.tray_widget.menu) self.tray_widget.menu.addMenu(services_submenu)