From 00adb450864a68458250c9dda18c7775b162f973 Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Sun, 3 May 2020 15:16:38 -0700 Subject: [PATCH] Add launch browser toggle to system tray --- plexpy/macos.py | 13 ++++++++++--- plexpy/windows.py | 32 +++++++++++++++++++++++--------- 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/plexpy/macos.py b/plexpy/macos.py index 302da2df..55a46beb 100644 --- a/plexpy/macos.py +++ b/plexpy/macos.py @@ -45,14 +45,16 @@ class MacOSSystemTray(object): rumps.MenuItem('Open Tautulli', callback=self.tray_open), None, rumps.MenuItem('Start Tautulli at Login', callback=self.tray_startup), + rumps.MenuItem('Open Browser when Tautulli Starts', callback=self.tray_browser), None, rumps.MenuItem('Check for Updates', callback=self.tray_check_update), rumps.MenuItem('Restart', callback=self.tray_restart), rumps.MenuItem('Quit', callback=self.tray_quit) ] if not plexpy.FROZEN: - self.menu.insert(5, rumps.MenuItem('Update', callback=self.tray_update)) + self.menu.insert(6, rumps.MenuItem('Update', callback=self.tray_update)) self.menu[2].state = plexpy.CONFIG.LAUNCH_STARTUP + self.menu[3].state = plexpy.CONFIG.LAUNCH_BROWSER self.tray_icon = rumps.App(common.PRODUCT, icon=self.icon, menu=self.menu, quit_button=None) @@ -77,6 +79,10 @@ class MacOSSystemTray(object): plexpy.CONFIG.LAUNCH_STARTUP = not plexpy.CONFIG.LAUNCH_STARTUP set_startup() + def tray_browser(self, tray_icon): + plexpy.CONFIG.LAUNCH_BROWSER = not plexpy.CONFIG.LAUNCH_BROWSER + set_startup() + def tray_check_update(self, tray_icon): versioncheck.check_update() @@ -97,13 +103,14 @@ class MacOSSystemTray(object): self.icon = os.path.join(self.image_dir, 'logo-circle.ico') self.update(icon=self.icon) - def change_tray_startup_icon(self): + def change_tray_icons(self): self.tray_icon.menu['Start Tautulli at Login'].state = plexpy.CONFIG.LAUNCH_STARTUP + self.tray_icon.menu['Open Browser when Tautulli Starts'].state = plexpy.CONFIG.LAUNCH_BROWSER def set_startup(): if plexpy.MAC_SYS_TRAY_ICON: - plexpy.MAC_SYS_TRAY_ICON.change_tray_startup_icon() + plexpy.MAC_SYS_TRAY_ICON.change_tray_icons() if plexpy.INSTALL_TYPE == 'macos': if plexpy.CONFIG.LAUNCH_STARTUP: diff --git a/plexpy/windows.py b/plexpy/windows.py index d56e0ffa..0c93afed 100644 --- a/plexpy/windows.py +++ b/plexpy/windows.py @@ -52,20 +52,25 @@ class WindowsSystemTray(object): self.hover_text = common.PRODUCT if plexpy.CONFIG.LAUNCH_STARTUP: - start_icon = os.path.join(self.image_dir, 'check-solid.ico') + launch_start_icon = os.path.join(self.image_dir, 'check-solid.ico') else: - start_icon = None + launch_start_icon = None + if plexpy.CONFIG.LAUNCH_BROWSER: + launch_browser_icon = os.path.join(self.image_dir, 'check-solid.ico') + else: + launch_browser_icon = None self.menu = [ ['Open Tautulli', None, self.tray_open, 'default'], ['', None, 'separator', None], - ['Start Tautulli at Login', start_icon, self.tray_startup, None], + ['Start Tautulli at Login', launch_start_icon, self.tray_startup, None], + ['Open Browser when Tautulli Starts', launch_browser_icon, self.tray_browser, None], ['', None, 'separator', None], ['Check for Updates', None, self.tray_check_update, None], ['Restart', None, self.tray_restart, None] ] if not plexpy.FROZEN: - self.menu.insert(5, ['Update', None, self.tray_update, None]) + self.menu.insert(6, ['Update', None, self.tray_update, None]) self.tray_icon = SysTrayIcon(self.icon, self.hover_text, self.menu, on_quit=self.tray_quit) @@ -89,6 +94,10 @@ class WindowsSystemTray(object): plexpy.CONFIG.LAUNCH_STARTUP = not plexpy.CONFIG.LAUNCH_STARTUP set_startup() + def tray_browser(self, tray_icon): + plexpy.CONFIG.LAUNCH_BROWSER = not plexpy.CONFIG.LAUNCH_BROWSER + set_startup() + def tray_check_update(self, tray_icon): versioncheck.check_update() @@ -114,18 +123,23 @@ class WindowsSystemTray(object): self.hover_text = common.PRODUCT + ' - No Update Available' self.update(icon=self.icon, hover_text=self.hover_text) - def change_tray_startup_icon(self): + def change_tray_icons(self): if plexpy.CONFIG.LAUNCH_STARTUP: - start_icon = os.path.join(self.image_dir, 'check-solid.ico') + launch_start_icon = os.path.join(self.image_dir, 'check-solid.ico') else: - start_icon = None - self.menu[2][1] = start_icon + launch_start_icon = None + if plexpy.CONFIG.LAUNCH_BROWSER: + launch_browser_icon = os.path.join(self.image_dir, 'check-solid.ico') + else: + launch_browser_icon = None + self.menu[2][1] = launch_start_icon + self.menu[3][1] = launch_browser_icon self.update(menu_options=self.menu) def set_startup(): if plexpy.WIN_SYS_TRAY_ICON: - plexpy.WIN_SYS_TRAY_ICON.change_tray_startup_icon() + plexpy.WIN_SYS_TRAY_ICON.change_tray_icons() startup_reg_path = "Software\\Microsoft\\Windows\\CurrentVersion\\Run"