good
This commit is contained in:
parent
77f11f29bc
commit
7081d6bd54
9 changed files with 4274 additions and 1 deletions
|
|
@ -11,7 +11,7 @@
|
||||||
"slskd_url": "http://localhost:5030",
|
"slskd_url": "http://localhost:5030",
|
||||||
"api_key": "1234567891234567",
|
"api_key": "1234567891234567",
|
||||||
"download_path": "E:/Broque Projects/newMusic/downloads",
|
"download_path": "E:/Broque Projects/newMusic/downloads",
|
||||||
"transfer_path": "E:/Broque Projects/newMusic/Transfer/Transfer"
|
"transfer_path": "E:/Broque Projects/newMusic/Transfer"
|
||||||
},
|
},
|
||||||
"database": {
|
"database": {
|
||||||
"path": "database/artists.db"
|
"path": "database/artists.db"
|
||||||
|
|
|
||||||
4237
logs/app.log
4237
logs/app.log
File diff suppressed because it is too large
Load diff
18
main.py
18
main.py
|
|
@ -117,6 +117,9 @@ class MainWindow(QMainWindow):
|
||||||
|
|
||||||
# Connect media player signals between sidebar and downloads page
|
# Connect media player signals between sidebar and downloads page
|
||||||
self.setup_media_player_connections()
|
self.setup_media_player_connections()
|
||||||
|
|
||||||
|
# Connect settings change signals for live updates
|
||||||
|
self.setup_settings_connections()
|
||||||
|
|
||||||
def setup_status_monitoring(self):
|
def setup_status_monitoring(self):
|
||||||
# Start status monitoring thread
|
# Start status monitoring thread
|
||||||
|
|
@ -149,6 +152,21 @@ class MainWindow(QMainWindow):
|
||||||
|
|
||||||
logger.info("Media player connections established between sidebar and downloads page")
|
logger.info("Media player connections established between sidebar and downloads page")
|
||||||
|
|
||||||
|
def setup_settings_connections(self):
|
||||||
|
"""Connect settings change signals for live updates across pages"""
|
||||||
|
self.settings_page.settings_changed.connect(self.on_settings_changed)
|
||||||
|
logger.info("Settings change connections established")
|
||||||
|
|
||||||
|
def on_settings_changed(self, key: str, value: str):
|
||||||
|
"""Handle settings changes and broadcast to relevant pages"""
|
||||||
|
logger.info(f"Settings changed: {key} = {value}")
|
||||||
|
|
||||||
|
# Broadcast to all pages that need to know about path changes
|
||||||
|
if hasattr(self.downloads_page, 'on_paths_updated'):
|
||||||
|
self.downloads_page.on_paths_updated(key, value)
|
||||||
|
if hasattr(self.artists_page, 'on_paths_updated'):
|
||||||
|
self.artists_page.on_paths_updated(key, value)
|
||||||
|
|
||||||
def change_page(self, page_id: str):
|
def change_page(self, page_id: str):
|
||||||
page_map = {
|
page_map = {
|
||||||
"dashboard": 0,
|
"dashboard": 0,
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -3799,6 +3799,12 @@ class ArtistsPage(QWidget):
|
||||||
item.widget().deleteLater()
|
item.widget().deleteLater()
|
||||||
# Don't clear self.current_albums here - it's needed for Plex updates
|
# Don't clear self.current_albums here - it's needed for Plex updates
|
||||||
|
|
||||||
|
def on_paths_updated(self, key: str, value: str):
|
||||||
|
"""Handle settings path updates for immediate effect"""
|
||||||
|
# No action needed - paths are fetched dynamically via config_manager.get()
|
||||||
|
# This method exists for future extensibility if caching is added later
|
||||||
|
pass
|
||||||
|
|
||||||
def closeEvent(self, event):
|
def closeEvent(self, event):
|
||||||
"""Handle page close/cleanup"""
|
"""Handle page close/cleanup"""
|
||||||
self.stop_all_workers()
|
self.stop_all_workers()
|
||||||
|
|
|
||||||
|
|
@ -9807,6 +9807,12 @@ class DownloadsPage(QWidget):
|
||||||
except:
|
except:
|
||||||
pass # Ignore errors during destruction
|
pass # Ignore errors during destruction
|
||||||
|
|
||||||
|
def on_paths_updated(self, key: str, value: str):
|
||||||
|
"""Handle settings path updates for immediate effect"""
|
||||||
|
# No action needed - paths are fetched dynamically via config_manager.get()
|
||||||
|
# This method exists for future extensibility if caching is added later
|
||||||
|
pass
|
||||||
|
|
||||||
def create_controls_section(self):
|
def create_controls_section(self):
|
||||||
section = QWidget()
|
section = QWidget()
|
||||||
layout = QVBoxLayout(section)
|
layout = QVBoxLayout(section)
|
||||||
|
|
|
||||||
|
|
@ -162,6 +162,8 @@ class SettingsGroup(QGroupBox):
|
||||||
""")
|
""")
|
||||||
|
|
||||||
class SettingsPage(QWidget):
|
class SettingsPage(QWidget):
|
||||||
|
settings_changed = pyqtSignal(str, str) # Signal for when settings paths change
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self.config_manager = None
|
self.config_manager = None
|
||||||
|
|
@ -300,6 +302,10 @@ class SettingsPage(QWidget):
|
||||||
config_manager.set('soulseek.download_path', self.download_path_input.text())
|
config_manager.set('soulseek.download_path', self.download_path_input.text())
|
||||||
config_manager.set('soulseek.transfer_path', self.transfer_path_input.text())
|
config_manager.set('soulseek.transfer_path', self.transfer_path_input.text())
|
||||||
|
|
||||||
|
# Emit signals for path changes to update other pages immediately
|
||||||
|
self.settings_changed.emit('soulseek.download_path', self.download_path_input.text())
|
||||||
|
self.settings_changed.emit('soulseek.transfer_path', self.transfer_path_input.text())
|
||||||
|
|
||||||
# Show success message
|
# Show success message
|
||||||
QMessageBox.information(self, "Success", "Settings saved successfully!")
|
QMessageBox.information(self, "Success", "Settings saved successfully!")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue