diff --git a/wobuzz/gui.py b/wobuzz/gui.py index 6f019f3..bcac6e9 100644 --- a/wobuzz/gui.py +++ b/wobuzz/gui.py @@ -10,6 +10,7 @@ class GUI: self.app = app self.window = MainWindow() + self.settings = self.window.settings self.window.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.app.library.main_library_dock) @@ -28,6 +29,11 @@ class GUI: self.window.show() + self.settings.update_all() + def connect(self): self.window.closeEvent = self.app.utils.on_close + def on_settings_change(self, key, value): + self.settings.update_settings(key, value) + diff --git a/wobuzz/gui_communication/gui_communication.py b/wobuzz/gui_communication/gui_communication.py index 5ba88b2..910b627 100644 --- a/wobuzz/gui_communication/gui_communication.py +++ b/wobuzz/gui_communication/gui_communication.py @@ -2,7 +2,6 @@ from .menu_bar import MenuBar from .track_control import TrackControl -from .settings import Settings class GUICommunication: @@ -15,9 +14,6 @@ class GUICommunication: self.menu_bar = MenuBar(self.app) self.track_control = TrackControl(self.app) - self.settings = Settings(self.app) - - self.settings.update_all() def on_track_change(self, previous_track=None, track=None): self.track_control.on_track_change(previous_track, track) @@ -26,6 +22,3 @@ class GUICommunication: def on_playstate_update(self): self.track_control.on_playstate_update() - def on_settings_change(self, key, value): - self.settings.update_settings(key, value) - diff --git a/wobuzz/gui_communication/settings.py b/wobuzz/gui_communication/settings.py deleted file mode 100644 index 61f8975..0000000 --- a/wobuzz/gui_communication/settings.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/python3 - - -class Settings: - def __init__(self, app): - self.app = app - - self.settings = self.app.gui.window.settings - - self.connect() - - def connect(self): - self.settings.visibilityChanged.connect(self.update_all) - self.settings.save_button.pressed.connect(self.write_settings) - - def update_all(self, _=True): # ignore visible parameter passed by visibilityChanged event - self.settings.file_settings.library_path_input.setText(self.app.settings.library_path) - - def update_settings(self, key, value): - match key: - case "library_path": - self.settings.file_settings.library_path_input.setText(value) - - def write_settings(self): - self.app.settings.library_path = self.settings.file_settings.library_path_input.text() - diff --git a/wobuzz/main.py b/wobuzz/main.py index bb89353..e14c8a8 100644 --- a/wobuzz/main.py +++ b/wobuzz/main.py @@ -26,7 +26,7 @@ class Wobuzz: self.gui_communication = GUICommunication(self) def on_settings_change(self, key, value): - self.gui_communication.on_settings_change(key, value) + self.gui.on_settings_change(key, value) return True diff --git a/wobuzz/ui/settings/settings.py b/wobuzz/ui/settings/settings.py index 40d22bf..4b272cc 100644 --- a/wobuzz/ui/settings/settings.py +++ b/wobuzz/ui/settings/settings.py @@ -6,9 +6,11 @@ from .file import FileSettings class Settings(QDockWidget): - def __init__(self, parent=None): + def __init__(self, app, parent=None): super().__init__(parent) + self.app = app + self.setAllowedAreas( Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea | @@ -32,3 +34,17 @@ class Settings(QDockWidget): self.setWidget(self.content) + self.visibilityChanged.connect(self.update_all) + self.save_button.pressed.connect(self.write_settings) + + def update_all(self, _=True): # ignore visible parameter passed by visibilityChanged event + self.file_settings.library_path_input.setText(self.app.settings.library_path) + + def update_settings(self, key, value): + match key: + case "library_path": + self.file_settings.library_path_input.setText(value) + + def write_settings(self): + self.app.settings.library_path = self.file_settings.library_path_input.text() +