diff --git a/main.py b/main.py index de938ea..3245732 100644 --- a/main.py +++ b/main.py @@ -1,8 +1,7 @@ import time import settings_manager -from alcasar import Alcasar, ConnectionResults, DisconnectResult -from settings_manager import SettingsWindow +from alcasar import Alcasar from tray_manager import TrayManager from threading import Thread @@ -21,13 +20,22 @@ class AlcasarMonitor: self.settings_button = self.tray_manager.Menu.create_item("Settings", item_type=self.tray_manager.Menu.ItemType.BUTTON, callback=self.ask_credentials) - self.auto_connect_check = self.tray_manager.Menu.create_item("Auto Connect", - item_type=self.tray_manager.Menu.ItemType.CHECK, - callback=self.toggle_auto_connect) - self.settings_window = settings_manager.SettingsWindow() + self.settings_manager = settings_manager.SettingsManager() + self.auto_connect_check = self.tray_manager.Menu.create_item("Auto Connect", + item_type=self.tray_manager.Menu.ItemType.CHECK, + callback=self.toggle_auto_connect, + checkdefault=self.settings_manager.get("auto_connect")) + + self.quit_button = self.tray_manager.Menu.create_item("Quit", + item_type=self.tray_manager.Menu.ItemType.BUTTON, + callback=self.quit) + + self.settings_window = settings_manager.SettingsWindow() + self.state = False + self.running = True self.request_settings_open = False self.just_disconnected = False @@ -38,6 +46,12 @@ class AlcasarMonitor: def ask_credentials(self): self.request_settings_open = True + def quit(self): + self.running = False + self.tray_manager.kill() + self.alcasar.disconnect() + print("Exit") + def toggle_auto_connect(self): new_value = self.tray_manager.Menu.get_status(self.auto_connect_check) self.settings_manager.set("auto_connect", new_value) @@ -53,7 +67,7 @@ class AlcasarMonitor: def loop(self): last_state = None - while True: + while self.running: state = self.state if state != last_state: if state: @@ -80,11 +94,10 @@ class AlcasarMonitor: self.settings_manager.set("password", credentials[1]) def connection_state_loop(self): - while True: + while self.running: self.state = self.alcasar.update_statut()[0] time.sleep(2) if __name__ == '__main__': alcasar_monitor = AlcasarMonitor() -