diff --git a/src/lufus/gui/dialogs.py b/src/lufus/gui/dialogs.py index 19d7bca..2b8cf89 100644 --- a/src/lufus/gui/dialogs.py +++ b/src/lufus/gui/dialogs.py @@ -211,6 +211,7 @@ def __init__(self, parent=None): lbl_lang = QLabel(self._T.get("settings_label_language", "Language")) lbl_lang.setStyleSheet("font-weight: normal;") self.combo_language = QComboBox() + self.combo_language.currentIndexChanged.connect(self._on_language_changed) languages = self._detect_languages() if languages: # populate with available languages @@ -233,6 +234,8 @@ def __init__(self, parent=None): self.combo_theme.addItems(builtin) self.combo_theme.addItems(custom) current_theme = getattr(states, "Theme", "Default") + self.combo_theme.currentIndexChanged.connect(self._on_theme_changed) + self.combo_theme.setCurrentIndex(states.theme_index) for i in range(self.combo_theme.count()): # select current theme if self.combo_theme.itemText(i) == current_theme: @@ -276,6 +279,12 @@ def _detect_themes(): custom = sorted(p.parent.name for p in user_themes_dir.glob("*/*_theme.json")) return builtin, custom + def _on_theme_changed(self): + states.theme_index = self.combo_theme.currentIndex() + + def _on_language_changed(self): + states.language_index = self.combo_language.currentIndex() + class WinTweaks(QDialog): def __init__(self, parent=None): diff --git a/src/lufus/state.py b/src/lufus/state.py index a6c3117..15a5e78 100644 --- a/src/lufus/state.py +++ b/src/lufus/state.py @@ -40,5 +40,9 @@ class AppState: win_local_acc: str = "default" win_privacy: int = 0 + # Settings persistence + theme_index: int = 0 + language_index: int = 0 + state = AppState()