mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 05:14:40 +01:00
modules can add doubleclick callbacks for tray
This commit is contained in:
parent
5bc34f18da
commit
0bf9624c79
1 changed files with 30 additions and 1 deletions
|
|
@ -172,6 +172,10 @@ class ITrayModule:
|
|||
if self._tray_manager:
|
||||
self._tray_manager.show_tray_message(title, message, icon, msecs)
|
||||
|
||||
def add_doubleclick_callback(self, callback):
|
||||
if hasattr(self.manager, "add_doubleclick_callback"):
|
||||
self.manager.add_doubleclick_callback(self, callback)
|
||||
|
||||
|
||||
class ITrayAction(ITrayModule):
|
||||
"""Implementation of Tray action.
|
||||
|
|
@ -184,6 +188,9 @@ class ITrayAction(ITrayModule):
|
|||
necessary.
|
||||
"""
|
||||
|
||||
admin_action = False
|
||||
_admin_submenu = None
|
||||
|
||||
@property
|
||||
@abstractmethod
|
||||
def label(self):
|
||||
|
|
@ -677,7 +684,7 @@ class TrayModulesManager(ModulesManager):
|
|||
)
|
||||
|
||||
def __init__(self):
|
||||
self.log = PypeLogger().get_logger(self.__class__.__name__)
|
||||
self.log = PypeLogger.get_logger(self.__class__.__name__)
|
||||
|
||||
self.modules = []
|
||||
self.modules_by_id = {}
|
||||
|
|
@ -685,6 +692,28 @@ class TrayModulesManager(ModulesManager):
|
|||
self._report = {}
|
||||
self.tray_manager = None
|
||||
|
||||
self.doubleclick_callbacks = {}
|
||||
self.doubleclick_callback = None
|
||||
|
||||
def add_doubleclick_callback(self, module, callback):
|
||||
"""Register doubleclick callbacks on tray icon.
|
||||
|
||||
Currently there is no way how to determine which is launched. Name of
|
||||
callback can be defined with `doubleclick_callback` attribute.
|
||||
|
||||
Missing feature how to define default callback.
|
||||
"""
|
||||
callback_name = "_".join([module.name, callback.__name__])
|
||||
if callback_name not in self.doubleclick_callbacks:
|
||||
self.doubleclick_callbacks[callback_name] = callback
|
||||
if self.doubleclick_callback is None:
|
||||
self.doubleclick_callback = callback_name
|
||||
return
|
||||
|
||||
self.log.warning((
|
||||
"Callback with name \"{}\" is already registered."
|
||||
).format(callback_name))
|
||||
|
||||
def initialize(self, tray_manager, tray_menu):
|
||||
self.tray_manager = tray_manager
|
||||
self.initialize_modules()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue