HivdZddlZddlmZmZmZddlmZmZddl m Z ddl m Z ddl mZGdd eZdS) ze System Tray Icon for Python Scheduler Always visible in Windows taskbar with menu and notifications N)QSystemTrayIconQMenu QApplication)QIconQAction)QTimer)logger)SchedulerDatabasecbeZdZdZdeffd ZdZdZdZdZ de d e fd Z d Z d Z d ZxZS)SchedulerSystemTrayzSystem tray icon with menudbct|||_||_t j}|rV|||j j | d| |j |jt!|_|jj|j|jdt+jddS)NzFrank - Runningi'zSystem tray icon initialized)super__init__ parent_windowr rinstancesetIconstyle standardIconStandardPixmapSP_ComputerIcon setToolTip _create_menu activatedconnect _on_activatedr update_timertimeout _update_menustartr info)selfparentr app __class__s "C:\PYTHON\Frank\gui\system_tray.pyrzSchedulerSystemTray.__init__s    ##%%  _ LL11#))++2L2\]] ^ ^ ^ )***  t1222#HH !))$*;<<< &&& 233333cLt}td|_|jd||jtd|_|jj|j||jtd|_ |j j|j ||j | || dS)zCreate context menu Status: ReadyFzOpen DashboardzExit ApplicationN) rr status_action setEnabled addAction open_action triggeredr_show_dashboard exit_action _exit_appsetContextMenur)r"menus r&rz SchedulerSystemTray._create_menu+sww%_55 %%e,,, t)***##344 "**4+?@@@ t'(((##566 "**4>::: t'((( D!!! r'cX t|jtj}|dkr |jd|ddS|jddS#t$r"}tj d|Yd}~dSd}~wwxYw)zUpdate dynamic menu itemshostnamerzStatus: z job(s) runningr)z!Error updating system tray menu: N) lenr get_active_executionssocket gethostnamer*setText Exceptionr error)r" active_countes r&rz SchedulerSystemTray._update_menuCs Btw<dddddd}||dS)zGet status iconu✓u✗u▶u⏱u⛔) completedfailedrunningr cancelled?)get)r"rCiconss r&rIz$SchedulerSystemTray._get_status_icon}s5   yy%%%r'c\|tjjkr|dSdS)zHandle tray icon activationN)rActivationReason DoubleClickr/)r"reasons r&rz!SchedulerSystemTray._on_activateds4 _5A A A  " " " " " B Ar'c8|jdS)zShow main windowN)r show_window)r"s r&r/z#SchedulerSystemTray._show_dashboards &&(((((r'cXddlm}tjd|jdS)zExit applicationr)rz$Exiting application from system trayN)PyQt6.QtWidgetsrr r!quit)r"rs r&r1zSchedulerSystemTray._exit_apps<000000 :;;; r')__name__ __module__ __qualname____doc__r rrrrPrUstrrIrr/r1 __classcell__)r%s@r&r r s$$4#444444420 B B BBBB.BBB, &s &s & & & &### )))r'r )rkr9rfrrr PyQt6.QtGuirr PyQt6.QtCorerlogurur core.databaser r r'r&rss  @@@@@@@@@@&&&&&&&&++++++FFFFF/FFFFFr'