#!/usr/bin/python3 from PyQt6.QtCore import Qt from PyQt6.QtWidgets import QDockWidget from .ui.main_window import MainWindow class GUI: def __init__(self, app): self.app = app self.dropped = [] self.window = MainWindow(app) self.settings = self.window.settings self.track_control = self.window.track_control self.window.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.app.library.main_library_dock) self.app.library.main_library_dock.setFeatures( QDockWidget.DockWidgetFeature.DockWidgetMovable | QDockWidget.DockWidgetFeature.DockWidgetFloatable ) if self.app.settings.window_maximized: self.window.showMaximized() elif not self.app.settings.window_size is None: self.window.resize(*self.app.settings.window_size) self.connect() self.window.show() self.settings.update_all() def connect(self): self.window.closeEvent = self.on_exit def on_exit(self, event): self.app.library.on_exit(event) self.app.settings.window_size = (self.window.width(), self.window.height()) self.app.settings.window_maximized = self.window.isMaximized() self.app.settings.save(self.app.utils.settings_location) def on_settings_change(self, key, value): self.settings.update_settings(key, value) def on_track_change(self, previous_track, track): self.track_control.on_track_change(previous_track, track) for dock_id in self.app.player.current_playlist.views: view = self.app.player.current_playlist.views[dock_id] view.on_track_change(previous_track, track) def on_background_job_start(self, job: str): self.window.process_dock.job_started_signal.emit(job) def on_background_job_stop(self, job: str): self.window.process_dock.on_background_job_stop(job)