2024-12-24 12:13:24 +01:00
|
|
|
#!/usr/bin/python3
|
|
|
|
|
|
|
|
from PyQt6.QtCore import Qt
|
2024-12-24 14:02:55 +01:00
|
|
|
from PyQt6.QtWidgets import QWidget, QDockWidget, QTabWidget, QPushButton, QVBoxLayout
|
2024-12-24 12:13:24 +01:00
|
|
|
from .file import FileSettings
|
|
|
|
|
|
|
|
|
|
|
|
class Settings(QDockWidget):
|
2025-01-25 15:14:20 +01:00
|
|
|
def __init__(self, app, parent=None):
|
2024-12-24 12:13:24 +01:00
|
|
|
super().__init__(parent)
|
|
|
|
|
2025-01-25 15:14:20 +01:00
|
|
|
self.app = app
|
|
|
|
|
2024-12-24 12:13:24 +01:00
|
|
|
self.setAllowedAreas(
|
|
|
|
Qt.DockWidgetArea.LeftDockWidgetArea |
|
|
|
|
Qt.DockWidgetArea.RightDockWidgetArea |
|
|
|
|
Qt.DockWidgetArea.BottomDockWidgetArea
|
|
|
|
)
|
|
|
|
|
|
|
|
self.setWindowTitle("Settings")
|
|
|
|
|
2024-12-24 14:02:55 +01:00
|
|
|
self.content = QWidget(self)
|
|
|
|
self.content_layout = QVBoxLayout()
|
|
|
|
self.content.setLayout(self.content_layout)
|
|
|
|
|
|
|
|
self.tabs = QTabWidget(self.content)
|
2024-12-24 12:13:24 +01:00
|
|
|
|
|
|
|
self.file_settings = FileSettings()
|
|
|
|
self.tabs.addTab(self.file_settings, "Files")
|
2024-12-24 14:02:55 +01:00
|
|
|
self.content_layout.addWidget(self.tabs)
|
|
|
|
|
2024-12-24 14:10:22 +01:00
|
|
|
self.save_button = QPushButton("&Save", self.content)
|
|
|
|
self.content_layout.addWidget(self.save_button)
|
2024-12-24 12:13:24 +01:00
|
|
|
|
2024-12-24 14:02:55 +01:00
|
|
|
self.setWidget(self.content)
|
2024-12-24 12:13:24 +01:00
|
|
|
|
2025-01-25 15:14:20 +01:00
|
|
|
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()
|
|
|
|
|