2iSrSSKrSSKJrJrJrJrJrJrJ r J r J r J r SSK JrJr SSKJrJr SSKJr SSKJr SSKJr SS KJr SS KJr SS KJr SS KJ r SS K!J"r" SSK#J$r$ SSK%J&r& "SS\5r'g)zn Main Window for Python Scheduler GUI PyQt6-based desktop application with dashboard, jobs, and history views N) QMainWindowQWidget QVBoxLayout QHBoxLayout QTabWidgetQLabel QPushButton QStatusBar QMessageBoxQSystemTrayIcon)QTimerQt)QIconQFont)logger)Database)SchedulerConfig)DashboardWidget) JobsWidget)SchedulesWidget) HistoryWidget) BackupWidget) SyncWidget)SchedulerSystemTrayc^^\rSrSrSrS\S\4U4SjjrSrS\ 4Sjr S r S r S r S rU=r$) MainWindowzMain application windowdbconfigc>[TU]5 XlX lUR S5 UR SS5 UR 5 [XR5UlURR5 URRSS5n[5Ul URRRUR5 URR!U5 ["R$"S5 g)Nz!Python Automation - Control Panelii zgui.refresh_interval_mszMain window initialized)super__init__rrsetWindowTitlesetMinimumSize _setup_uir tray_iconshowgetr refresh_timertimeoutconnect _refresh_datastartrinfo)selfrrrefresh_interval __class__s &c:\PYTHON\Scheduler\gui\main_window.pyr#MainWindow.__init__s   ?@ D#& -T77;  ;;??+DdK#X ""**4+=+=>   !12 -.c[5nURU5 [U5nURSSSS5 UR 5nUR U5 [ 5UlURR[ RR5 [URUR5UlURRURS5 [!URUR5UlURRUR"S5 [%URUR5UlURRUR&S5 [)URUR5UlURRUR*S5 [-URUR5UlURRUR.S5 [1URUR5UlURRUR2S5 UR5UR5 [75UlUR;UR85 UR8R=S5 g ) zSetup main UI components u📊 Dashboardu 📋 Jobsu ⏰ Schedulesu 💾 Backupu 📁 Syncu 📜 HistoryReadyN)rsetCentralWidgetrsetContentsMargins_create_header addLayoutrtabssetTabPosition TabPositionNorthrrrdashboard_widgetaddTabr jobs_widgetrschedules_widgetr backup_widgetr sync_widgetrhistory_widget addWidgetr status_bar setStatusBar showMessage)r0central_widget main_layout header_layouts r3r&MainWindow._setup_ui4s! n-".1 &&r2r26++- m,L    !7!7!=!=>!0 E ..0@A&dggt{{; ));7!0 E ..@*$''4;;? ++];&dggt{{; ));7,DGGT[[A ,,n=dii(%, $//* ##G,r5returncn[5n[S5n[5nURS5 UR S5 UR U5 UR U5 UR5 [S5nURRUR5 UR U5 U$)z%Create header with title and controlsu&🚀 Python Automation - Control PanelTu 🔄 Refresh) rrr setPointSizesetBoldsetFontrH addStretchr clickedr,r-)r0rN title_label title_font refresh_btns r3r;MainWindow._create_headeres# EF W #4 J' ,  "".1 ##D$6$67 ,r5cURR5n[US5(aUR5 [ UR R 55nUS:a URRSUS35 gURRS5 g![a#n[R"SU35 SnAgSnAff=f)zRefresh all widgets datarefreshru 🟢 Active: z job(s) runningu🟢 Ready - No jobs runningzError refreshing data: N) r= currentWidgethasattrr]lenrget_active_executionsrIrK Exceptionrerror)r0current_widget active_countes r3r-MainWindow._refresh_datazs 8!YY446N~y11&&(tww<<>?La++mL>,YZ++,JK 8 LL21#6 7 7 8sBB"B"" C,C  CcUR5 UR5 URRSS[R R S5 g)zHandle window close eventzPython Schedulerz$Application minimized to system trayr!N)ignorehider'rKr MessageIcon Information)r0events r3 closeEventMainWindow.closeEvents@    ""  2  ' ' 3 3   r5cdUR5 UR5 UR5 g)zShow and activate windowN)r(activateWindowraise_)r0s r3 show_windowMainWindow.show_windows    r5) rErrArrGrCr*rDrIrFr=r')__name__ __module__ __qualname____firstlineno____doc__rrr#r&rr;r-rnrs__static_attributes__ __classcell__)r2s@r3rrs?!/8/_/./-b *8(  r5r)(rysysPyQt6.QtWidgetsrrrrrrr r r r PyQt6.QtCorer r PyQt6.QtGuirrlogurur core.databaser core.configrgui.dashboard_widgetrgui.jobs_widgetrgui.schedules_widgetrgui.history_widgetrgui.backup_widgetrgui.sync_widgetrgui.system_trayrrr5r3rsR  $$"'0&0,*&/DDr5