mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
added launcher and browser actions to tray
This commit is contained in:
parent
ccd185495a
commit
c400628787
1 changed files with 43 additions and 2 deletions
|
|
@ -23,6 +23,7 @@ from ayon_core.addon import (
|
|||
ITrayAction,
|
||||
ITrayService,
|
||||
)
|
||||
from ayon_core.pipeline import install_ayon_plugins
|
||||
from ayon_core.tools.utils import (
|
||||
WrappedCallbackItem,
|
||||
get_ayon_qt_app,
|
||||
|
|
@ -32,6 +33,8 @@ from ayon_core.tools.tray.lib import (
|
|||
remove_tray_server_url,
|
||||
TrayIsRunningError,
|
||||
)
|
||||
from ayon_core.tools.launcher.ui import LauncherWindow
|
||||
from ayon_core.tools.loader.ui import LoaderWindow
|
||||
|
||||
from .addons_manager import TrayAddonsManager
|
||||
from .host_console_listener import HostListener
|
||||
|
|
@ -82,6 +85,9 @@ class TrayManager:
|
|||
|
||||
self._outdated_dialog = None
|
||||
|
||||
self._launcher_window = None
|
||||
self._browser_window = None
|
||||
|
||||
self._update_check_timer = update_check_timer
|
||||
self._update_check_interval = update_check_interval
|
||||
self._main_thread_timer = main_thread_timer
|
||||
|
|
@ -109,12 +115,15 @@ class TrayManager:
|
|||
@property
|
||||
def doubleclick_callback(self):
|
||||
"""Double-click callback for Tray icon."""
|
||||
return self._addons_manager.get_doubleclick_callback()
|
||||
callback = self._addons_manager.get_doubleclick_callback()
|
||||
if callback is None:
|
||||
callback = self._show_launcher_window
|
||||
return callback
|
||||
|
||||
def execute_doubleclick(self):
|
||||
"""Execute double click callback in main thread."""
|
||||
callback = self.doubleclick_callback
|
||||
if callback:
|
||||
if callback is not None:
|
||||
self.execute_in_main_thread(callback)
|
||||
|
||||
def show_tray_message(self, title, message, icon=None, msecs=None):
|
||||
|
|
@ -144,8 +153,22 @@ class TrayManager:
|
|||
return
|
||||
|
||||
tray_menu = self.tray_widget.menu
|
||||
|
||||
self._addons_manager.initialize(tray_menu)
|
||||
|
||||
# Add default actions under addon actions
|
||||
launcher_action = QtWidgets.QAction(
|
||||
"Launcher", tray_menu
|
||||
)
|
||||
launcher_action.triggered.connect(self._show_launcher_window)
|
||||
tray_menu.addAction(launcher_action)
|
||||
|
||||
browser_action = QtWidgets.QAction(
|
||||
"Browser", tray_menu
|
||||
)
|
||||
browser_action.triggered.connect(self._show_browser_window)
|
||||
tray_menu.addAction(browser_action)
|
||||
|
||||
self._addons_manager.add_route(
|
||||
"GET", "/tray", self._web_get_tray_info
|
||||
)
|
||||
|
|
@ -522,6 +545,24 @@ class TrayManager:
|
|||
self._info_widget.raise_()
|
||||
self._info_widget.activateWindow()
|
||||
|
||||
def _show_launcher_window(self):
|
||||
if self._launcher_window is None:
|
||||
self._launcher_window = LauncherWindow()
|
||||
|
||||
self._launcher_window.show()
|
||||
self._launcher_window.raise_()
|
||||
self._launcher_window.activateWindow()
|
||||
|
||||
def _show_browser_window(self):
|
||||
if self._browser_window is None:
|
||||
self._browser_window = LoaderWindow()
|
||||
self._browser_window.setWindowTitle("AYON Browser")
|
||||
install_ayon_plugins()
|
||||
|
||||
self._browser_window.show()
|
||||
self._browser_window.raise_()
|
||||
self._browser_window.activateWindow()
|
||||
|
||||
|
||||
class SystemTrayIcon(QtWidgets.QSystemTrayIcon):
|
||||
"""Tray widget.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue