Added quit action

This commit is contained in:
Yannis 2023-11-21 13:31:07 +01:00
parent c4ad490276
commit d7c2523687

31
main.py
View file

@ -1,8 +1,7 @@
import time import time
import settings_manager import settings_manager
from alcasar import Alcasar, ConnectionResults, DisconnectResult from alcasar import Alcasar
from settings_manager import SettingsWindow
from tray_manager import TrayManager from tray_manager import TrayManager
from threading import Thread from threading import Thread
@ -21,13 +20,22 @@ class AlcasarMonitor:
self.settings_button = self.tray_manager.Menu.create_item("Settings", self.settings_button = self.tray_manager.Menu.create_item("Settings",
item_type=self.tray_manager.Menu.ItemType.BUTTON, item_type=self.tray_manager.Menu.ItemType.BUTTON,
callback=self.ask_credentials) 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.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.state = False
self.running = True
self.request_settings_open = False self.request_settings_open = False
self.just_disconnected = False self.just_disconnected = False
@ -38,6 +46,12 @@ class AlcasarMonitor:
def ask_credentials(self): def ask_credentials(self):
self.request_settings_open = True 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): def toggle_auto_connect(self):
new_value = self.tray_manager.Menu.get_status(self.auto_connect_check) new_value = self.tray_manager.Menu.get_status(self.auto_connect_check)
self.settings_manager.set("auto_connect", new_value) self.settings_manager.set("auto_connect", new_value)
@ -53,7 +67,7 @@ class AlcasarMonitor:
def loop(self): def loop(self):
last_state = None last_state = None
while True: while self.running:
state = self.state state = self.state
if state != last_state: if state != last_state:
if state: if state:
@ -80,11 +94,10 @@ class AlcasarMonitor:
self.settings_manager.set("password", credentials[1]) self.settings_manager.set("password", credentials[1])
def connection_state_loop(self): def connection_state_loop(self):
while True: while self.running:
self.state = self.alcasar.update_statut()[0] self.state = self.alcasar.update_statut()[0]
time.sleep(2) time.sleep(2)
if __name__ == '__main__': if __name__ == '__main__':
alcasar_monitor = AlcasarMonitor() alcasar_monitor = AlcasarMonitor()