From 24644f7fd4b108e0fbb599f501c9208f8af0f7c8 Mon Sep 17 00:00:00 2001 From: mesonium Date: Wed, 3 Jul 2024 19:38:06 +0200 Subject: [PATCH] Hide settings if model is not available --- stt_voice_messages/gtk/config_dialog.py | 41 ++++++++++--------------- stt_voice_messages/gtk/config_dialog.ui | 3 +- 2 files changed, 17 insertions(+), 27 deletions(-) diff --git a/stt_voice_messages/gtk/config_dialog.py b/stt_voice_messages/gtk/config_dialog.py index d49335f..e9c7188 100644 --- a/stt_voice_messages/gtk/config_dialog.py +++ b/stt_voice_messages/gtk/config_dialog.py @@ -184,6 +184,21 @@ class STTVoiceMessagesConfigDialog(Gtk.ApplicationWindow): self._ui = get_builder(str(ui_path.resolve() / 'config_dialog.ui')) self._prefs: dict[str, PreferenceBox] = {} + prefs: list[tuple[str, type[PreferenceBox]]] = [ + ('stt_behaviour', self.STTBehaviour), + ('models', self.Models), + ] + + if 'model_openaiwhisper' in config.available_models: + prefs.append(('openaiwhisper_general', self.OpenAIWhisperGeneral)) + else: + self._ui.stack.remove(getattr(self._ui, 'openai-whisper')) + + if 'model_faster-whisper' in config.available_models: + prefs.append(('fasterwhisper_general', self.FasterWhisperGeneral)) + else: + self._ui.stack.remove(getattr(self._ui, 'faster-whisper')) + side_bar_switcher = SideBarSwitcher() side_bar_switcher.set_stack(self._ui.stack) self._ui.grid.attach(side_bar_switcher, 0, 0, 1, 1) @@ -191,24 +206,8 @@ class STTVoiceMessagesConfigDialog(Gtk.ApplicationWindow): self.config = config self.plugin = self.config.plugin - - prefs: list[tuple[str, type[PreferenceBox]]] = [ - ('stt_behaviour', self.STTBehaviour), - ('models', self.Models), - ] - - # TODO: Refactor this - if 'model_openaiwhisper' in config.available_models: - prefs.append(('openaiwhisper_general', self.OpenAIWhisperGeneral)) - else: - self._disable_pref('openai-whisper-viewport') # does not work yet - - if 'model_faster-whisper' in config.available_models: - prefs.append(('fasterwhisper_general', self.FasterWhisperGeneral)) - else: - self._disable_pref('faster-whisper') # does not work yet - self._add_prefs(prefs) + self.show_all() def _add_prefs(self, prefs: list[tuple[str, type[PreferenceBox]]]): @@ -219,14 +218,6 @@ class STTVoiceMessagesConfigDialog(Gtk.ApplicationWindow): pref_box.add(pref) self._prefs[ui_name] = pref - def _disable_pref(self, pref: str): - # TODO: Not scrolling to setting does not work! - pref_box = getattr(self._ui, pref) - log.debug('Disable Settings Page for %s', pref_box) - adj = Gtk.Adjustment(0, 0, 0) - pref_box.set_focus_hadjustment(adj) - pref_box.set_focus_vadjustment(adj) - ############################################################################ # General Settings diff --git a/stt_voice_messages/gtk/config_dialog.ui b/stt_voice_messages/gtk/config_dialog.ui index 026d1e2..6aec4bf 100644 --- a/stt_voice_messages/gtk/config_dialog.ui +++ b/stt_voice_messages/gtk/config_dialog.ui @@ -128,7 +128,6 @@ - openai-whisper True True never @@ -216,7 +215,7 @@ openai-whisper - openAI Whisper + OpenAI Whisper 1