def build(cls): """Construct the system tray""" cls.systray.setIcon(App.icon) cls.act_status.setText("00:00:00") cls.menu.addAction(cls.act_status) cls.menu.addAction(cls.act_time) cls.set_mode_stopped() cls.menu.addSeparator() cls.act_toggle.setIcon(QIcon.fromTheme('view-restore')) cls.act_toggle.setText("Show/Hide Window") cls.act_toggle.triggered.connect(cls.toggle_window) cls.menu.addAction(cls.act_toggle) cls.menu.addSeparator() cls.act_quit.setIcon(QIcon.fromTheme('application-exit')) cls.act_quit.setText("Quit Timecard") cls.act_quit.triggered.connect(cls.quit_app) cls.menu.addAction(cls.act_quit) cls.systray.setContextMenu(cls.menu) cls.systray.show() TimeDisplay.connect(on_tick=cls.update_time) TimeControls.connect(on_start=cls.set_mode_running, on_resume=cls.set_mode_running, on_pause=cls.set_mode_paused, on_stop=cls.set_mode_save, on_save=cls.set_mode_stopped, on_reset=cls.set_mode_stopped) App.connect(on_hide=cls.popup) return cls.systray
def run(): """Run the interface.""" build() return App.run()
def build(): """Construct the interface.""" # Build the actual interface. App.build() App.add_widget(TimeDisplay.build()) App.add_widget(Notes.build()) App.add_widget(TimeControls.build()) App.add_widget(Workspace.build()) App.add_widget(AppControls.build()) SysTray.build() # See if there's anything to recover from a damaged session. Backup.check_for_recall() # Start monitoring new timers. Backup.start_monitoring() # Initialize systems Focus.initialize() # Start the clock! Clock.start()
def yes(cls): """Quit the program.""" App.quit()
def quit_app(cls): App.quit()
def toggle_window(cls): App.toggle_window()
def build(): """Construct the interface.""" App.build() App.add_widget(TimeDisplay.build()) App.add_widget(Notes.build()) App.add_widget(TimeControls.build()) App.add_widget(Workspace.build()) App.add_widget(AppControls.build()) SysTray.build()