Added option to load playlists on start to the settings.

This commit is contained in:
The Wobbler 2025-02-20 17:44:09 +01:00
parent 5dc91f6605
commit 65564deb82
7 changed files with 20 additions and 6 deletions

View file

@ -20,7 +20,6 @@ def main():
from .main import Wobuzz from .main import Wobuzz
app = Wobuzz() app = Wobuzz()
app.post_init()
if arguments.playlist: if arguments.playlist:
playlist = Playlist(app, "Temporary Playlist", arguments.playlist) playlist = Playlist(app, "Temporary Playlist", arguments.playlist)

View file

@ -59,6 +59,10 @@ class Library:
if playlist.path == self.app.settings.latest_playlist: # start with latest playlist opened if playlist.path == self.app.settings.latest_playlist: # start with latest playlist opened
playlist_tabs.setCurrentIndex(playlist_tabs.count() - 1) playlist_tabs.setCurrentIndex(playlist_tabs.count() - 1)
if self.app.settings.load_on_start:
for playlist in self.playlists:
playlist.load()
def on_exit(self, event): def on_exit(self, event):
for playlist in self.playlists: for playlist in self.playlists:
if playlist.loaded: # only save loaded playlists, unloaded are empty if playlist.loaded: # only save loaded playlists, unloaded are empty

View file

@ -23,8 +23,10 @@ class Wobuzz:
self.player = Player(self) self.player = Player(self)
self.gui = GUI(self) self.gui = GUI(self)
def post_init(self): self.late_init()
self.gui.track_control.track_progress_slider.post_init()
def late_init(self):
self.gui.track_control.track_progress_slider.late_init()
self.library.load() self.library.load()
def on_settings_change(self, key, value): def on_settings_change(self, key, value):

View file

@ -8,6 +8,7 @@ class Settings:
window_size: tuple[int, int]=None window_size: tuple[int, int]=None
window_maximized: bool=False window_maximized: bool=False
library_path: str="~/.wobuzz" library_path: str="~/.wobuzz"
clear_track_cache: bool=True, clear_track_cache: bool=True
latest_playlist: str=None latest_playlist: str=None
load_on_start: bool=True

View file

@ -10,5 +10,8 @@ class BehaviourSettings(QWidget):
self.layout = QFormLayout(self) self.layout = QFormLayout(self)
self.setLayout(self.layout) self.setLayout(self.layout)
self.load_on_start = QCheckBox(self)
self.layout.addRow("Load playlists on start", self.load_on_start)
self.clear_track_cache = QCheckBox(self) self.clear_track_cache = QCheckBox(self)
self.layout.addRow("Clear track cache immediately when finished", self.clear_track_cache) self.layout.addRow("Clear track cache immediately when finished", self.clear_track_cache)

View file

@ -44,6 +44,7 @@ class Settings(QDockWidget):
def update_all(self, _=True): # ignore visible parameter passed by visibilityChanged event def update_all(self, _=True): # ignore visible parameter passed by visibilityChanged event
self.file_settings.library_path_input.setText(self.app.settings.library_path) self.file_settings.library_path_input.setText(self.app.settings.library_path)
self.behavior_settings.clear_track_cache.setChecked(self.app.settings.clear_track_cache) self.behavior_settings.clear_track_cache.setChecked(self.app.settings.clear_track_cache)
self.behavior_settings.load_on_start.setChecked(self.app.settings.load_on_start)
def update_settings(self, key, value): def update_settings(self, key, value):
match key: match key:
@ -53,7 +54,11 @@ class Settings(QDockWidget):
case "clear_track_cache": case "clear_track_cache":
self.behavior_settings.clear_track_cache.setDown(value) self.behavior_settings.clear_track_cache.setDown(value)
case "load_on_start":
self.behavior_settings.load_on_start.setChecked(value)
def write_settings(self): def write_settings(self):
self.app.settings.library_path = self.file_settings.library_path_input.text() self.app.settings.library_path = self.file_settings.library_path_input.text()
self.app.settings.clear_track_cache = self.behavior_settings.clear_track_cache.isChecked() self.app.settings.clear_track_cache = self.behavior_settings.clear_track_cache.isChecked()
self.app.settings.load_on_start = self.behavior_settings.load_on_start.isChecked()

View file

@ -29,7 +29,7 @@ class TrackProgressSlider(QSlider):
self.sliderPressed.connect(self.on_press) self.sliderPressed.connect(self.on_press)
self.sliderReleased.connect(self.on_release) self.sliderReleased.connect(self.on_release)
def post_init(self): def late_init(self):
self.track_control = self.app.gui.track_control self.track_control = self.app.gui.track_control
def mousePressEvent(self, event: QMouseEvent): def mousePressEvent(self, event: QMouseEvent):