Næste version
This commit is contained in:
@@ -20,6 +20,9 @@ SETTINGS_KEY_MAIL_PATH = "mail/custom_path"
|
||||
SETTINGS_KEY_AUTO_LOGIN = "online/auto_login"
|
||||
SETTINGS_KEY_USERNAME = "online/username"
|
||||
SETTINGS_KEY_PASSWORD = "online/password"
|
||||
SETTINGS_KEY_LANGUAGE = "appearance/language"
|
||||
SETTINGS_KEY_BETWEEN_SEC = "playback/between_seconds"
|
||||
SETTINGS_KEY_WORKSHOP_MIN = "playback/workshop_minutes"
|
||||
|
||||
|
||||
def load_settings() -> dict:
|
||||
@@ -34,6 +37,9 @@ def load_settings() -> dict:
|
||||
"auto_login": s.value(SETTINGS_KEY_AUTO_LOGIN, False, type=bool),
|
||||
"username": s.value(SETTINGS_KEY_USERNAME, ""),
|
||||
"password": s.value(SETTINGS_KEY_PASSWORD, ""),
|
||||
"language": s.value(SETTINGS_KEY_LANGUAGE, "da"),
|
||||
"between_seconds": s.value(SETTINGS_KEY_BETWEEN_SEC, 60, type=int),
|
||||
"workshop_minutes": s.value(SETTINGS_KEY_WORKSHOP_MIN, 10, type=int),
|
||||
}
|
||||
|
||||
|
||||
@@ -48,6 +54,9 @@ def save_settings(values: dict):
|
||||
s.setValue(SETTINGS_KEY_AUTO_LOGIN, values.get("auto_login", False))
|
||||
s.setValue(SETTINGS_KEY_USERNAME, values.get("username", ""))
|
||||
s.setValue(SETTINGS_KEY_PASSWORD, values.get("password", ""))
|
||||
s.setValue(SETTINGS_KEY_LANGUAGE, values.get("language", "da"))
|
||||
s.setValue(SETTINGS_KEY_BETWEEN_SEC, values.get("between_seconds", 60))
|
||||
s.setValue(SETTINGS_KEY_WORKSHOP_MIN,values.get("workshop_minutes", 10))
|
||||
|
||||
|
||||
class SettingsDialog(QDialog):
|
||||
@@ -70,6 +79,7 @@ class SettingsDialog(QDialog):
|
||||
tabs.addTab(self._build_playback_tab(), "▶ Afspilning")
|
||||
tabs.addTab(self._build_mail_tab(), "✉ Mail")
|
||||
tabs.addTab(self._build_online_tab(), "🌐 Online")
|
||||
tabs.addTab(self._build_language_tab(), "🌍 Sprog")
|
||||
layout.addWidget(tabs)
|
||||
|
||||
# Knapper
|
||||
@@ -142,6 +152,23 @@ class SettingsDialog(QDialog):
|
||||
note.setWordWrap(True)
|
||||
grp_layout.addRow(note)
|
||||
layout.addWidget(grp)
|
||||
|
||||
grp2 = QGroupBox("Danseliste-tider (ℹ info-vinduet)")
|
||||
grp2_layout = QFormLayout(grp2)
|
||||
|
||||
self._spin_between = QSpinBox()
|
||||
self._spin_between.setRange(0, 600)
|
||||
self._spin_between.setSuffix(" sekunder")
|
||||
self._spin_between.setFixedWidth(140)
|
||||
grp2_layout.addRow("Tid mellem musikstykker:", self._spin_between)
|
||||
|
||||
self._spin_workshop = QSpinBox()
|
||||
self._spin_workshop.setRange(0, 120)
|
||||
self._spin_workshop.setSuffix(" minutter")
|
||||
self._spin_workshop.setFixedWidth(140)
|
||||
grp2_layout.addRow("Tid per workshop:", self._spin_workshop)
|
||||
|
||||
layout.addWidget(grp2)
|
||||
layout.addStretch()
|
||||
return tab
|
||||
|
||||
@@ -230,6 +257,24 @@ class SettingsDialog(QDialog):
|
||||
layout.addStretch()
|
||||
return tab
|
||||
|
||||
def _build_language_tab(self) -> QWidget:
|
||||
tab = QWidget()
|
||||
layout = QVBoxLayout(tab)
|
||||
layout.setSpacing(12)
|
||||
grp = QGroupBox("Sprog")
|
||||
grp_layout = QFormLayout(grp)
|
||||
self._lang_combo = QComboBox()
|
||||
self._lang_combo.addItem("Dansk", "da")
|
||||
self._lang_combo.addItem("English", "en")
|
||||
grp_layout.addRow("Programsprog:", self._lang_combo)
|
||||
note = QLabel("Sproget anvendes næste gang programmet startes.")
|
||||
note.setObjectName("result_count")
|
||||
note.setWordWrap(True)
|
||||
grp_layout.addRow(note)
|
||||
layout.addWidget(grp)
|
||||
layout.addStretch()
|
||||
return tab
|
||||
|
||||
def _on_auto_login_changed(self, state: int):
|
||||
enabled = state == Qt.CheckState.Checked.value
|
||||
self._user_input.setEnabled(enabled)
|
||||
@@ -242,6 +287,15 @@ class SettingsDialog(QDialog):
|
||||
self._chk_dark.setChecked(v.get("dark_theme", True))
|
||||
self._spin_demo.setValue(v.get("demo_seconds", 10))
|
||||
self._spin_fade.setValue(v.get("demo_fade_seconds", 5))
|
||||
self._spin_between.setValue(v.get("between_seconds", 60))
|
||||
self._spin_workshop.setValue(v.get("workshop_minutes", 10))
|
||||
|
||||
# Sprog
|
||||
lang = v.get("language", "da")
|
||||
for i in range(self._lang_combo.count()):
|
||||
if self._lang_combo.itemData(i) == lang:
|
||||
self._lang_combo.setCurrentIndex(i)
|
||||
break
|
||||
|
||||
# Mail
|
||||
client = v.get("mail_client", "auto")
|
||||
@@ -267,11 +321,14 @@ class SettingsDialog(QDialog):
|
||||
"dark_theme": self._chk_dark.isChecked(),
|
||||
"demo_seconds": self._spin_demo.value(),
|
||||
"demo_fade_seconds": self._spin_fade.value(),
|
||||
"between_seconds": self._spin_between.value(),
|
||||
"workshop_minutes": self._spin_workshop.value(),
|
||||
"mail_client": self._mail_combo.currentData(),
|
||||
"mail_path": self._mail_path.text().strip(),
|
||||
"auto_login": self._chk_auto_login.isChecked(),
|
||||
"username": self._user_input.text().strip(),
|
||||
"password": self._pass_input.text(),
|
||||
"language": self._lang_combo.currentData(),
|
||||
}
|
||||
save_settings(values)
|
||||
self._values = values
|
||||
|
||||
Reference in New Issue
Block a user