2024-12-20 18:02:59 +01:00
|
|
|
#!/usr/bin/python3
|
|
|
|
|
|
|
|
import sys
|
|
|
|
from PyQt6.QtWidgets import QApplication
|
2024-12-23 17:12:21 +01:00
|
|
|
from wobbl_tools.data_file import load_dataclass_json
|
2024-12-29 19:23:53 +01:00
|
|
|
from .settings import Settings
|
|
|
|
from .utils import Utils
|
2025-01-25 14:05:10 +01:00
|
|
|
from .player import Player
|
2024-12-29 19:23:53 +01:00
|
|
|
from .library.library import Library
|
|
|
|
from .gui import GUI
|
2024-12-20 18:02:59 +01:00
|
|
|
|
|
|
|
|
|
|
|
class Wobuzz:
|
|
|
|
def __init__(self):
|
2024-12-21 16:07:27 +01:00
|
|
|
self.qt_app = QApplication([])
|
2024-12-20 18:02:59 +01:00
|
|
|
|
2024-12-21 20:50:09 +01:00
|
|
|
self.utils = Utils(self)
|
2024-12-24 12:13:24 +01:00
|
|
|
|
|
|
|
self.settings = load_dataclass_json(Settings, self.utils.settings_location, self, True, True)
|
|
|
|
self.settings.set_attribute_change_event(self.on_settings_change)
|
|
|
|
|
2024-12-28 20:41:18 +01:00
|
|
|
self.library = Library(self)
|
2025-02-03 17:53:35 +01:00
|
|
|
self.player = Player(self)
|
2024-12-21 16:07:27 +01:00
|
|
|
self.gui = GUI(self)
|
2025-01-25 16:02:03 +01:00
|
|
|
|
2025-02-20 17:44:09 +01:00
|
|
|
self.late_init()
|
|
|
|
|
|
|
|
def late_init(self):
|
|
|
|
self.gui.track_control.track_progress_slider.late_init()
|
2025-01-25 20:45:43 +01:00
|
|
|
self.library.load()
|
2024-12-20 18:02:59 +01:00
|
|
|
|
2024-12-24 12:13:24 +01:00
|
|
|
def on_settings_change(self, key, value):
|
2025-01-25 15:14:20 +01:00
|
|
|
self.gui.on_settings_change(key, value)
|
2024-12-24 12:13:24 +01:00
|
|
|
|
|
|
|
return True
|
|
|
|
|
2024-12-20 18:02:59 +01:00
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
wobuzz = Wobuzz()
|
2025-02-04 13:14:15 +01:00
|
|
|
wobuzz.post_init()
|
2025-02-04 14:43:08 +01:00
|
|
|
wobuzz.library.load_playlist_views()
|
|
|
|
|
2024-12-20 18:02:59 +01:00
|
|
|
sys.exit(wobuzz.qt_app.exec())
|