From 0efd82b04997fb4fcf381d27ba7c36675fc62658 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Tue, 26 Sep 2023 15:48:47 +0900 Subject: [PATCH] =?UTF-8?q?[Update/bugfix/Refactor]=20Main=20Window:=20Sid?= =?UTF-8?q?ebar=20Compact=20Mode=20=E6=9C=89=E5=8A=B9=E7=84=A1=E5=8A=B9?= =?UTF-8?q?=E5=80=A4=E3=81=8Cjson=E3=81=AB=E4=BF=9D=E5=AD=98=E3=81=95?= =?UTF-8?q?=E3=82=8C=E3=81=A6=E3=81=84=E3=81=AA=E3=81=8B=E3=81=A3=E3=81=9F?= =?UTF-8?q?=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3=E3=80=81=E8=B5=B7=E5=8B=95?= =?UTF-8?q?=E6=99=82=E3=82=82=E4=BF=9D=E6=8C=81=E3=81=95=E3=82=8C=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=80=82=20=E3=82=B3=E3=83=B3?= =?UTF-8?q?=E3=83=91=E3=82=AF=E3=83=88=E3=83=A2=E3=83=BC=E3=83=89=E6=9C=89?= =?UTF-8?q?=E5=8A=B9=E7=84=A1=E5=8A=B9=E9=96=A2=E6=95=B0=E5=88=86=E3=81=91?= =?UTF-8?q?=E3=80=82=20main.py=E3=81=A7=E5=8F=97=E3=81=91=E5=8F=96?= =?UTF-8?q?=E3=82=8Bmain=20window=E7=B3=BB=20callback=E9=96=A2=E6=95=B0?= =?UTF-8?q?=E3=81=AEkey=E3=82=92=E3=81=BE=E3=81=A8=E3=82=81=E3=81=9F?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.py | 12 ++++ main.py | 18 +++-- view.py | 65 +++++++++---------- .../widgets/create_minimize_sidebar_button.py | 4 +- vrct_gui/vrct_gui.py | 22 +++---- 5 files changed, 69 insertions(+), 52 deletions(-) diff --git a/config.py b/config.py index 5aa121e6..bf6f3a6b 100644 --- a/config.py +++ b/config.py @@ -181,6 +181,17 @@ class Config: self._SELECTED_TAB_TARGET_LANGUAGES = value saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value) + @property + @json_serializable('IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE') + def IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE(self): + return self._IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE + + @IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE.setter + def IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE(self, value): + if type(value) is bool: + self._IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = value + saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value) + ## Config Window @property @json_serializable('TRANSPARENCY') @@ -542,6 +553,7 @@ class Config: "2":"English\n(United States)", "3":"English\n(United States)", } + self._IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = False ## Config Window self._TRANSPARENCY = 100 diff --git a/main.py b/main.py index 5c2aa257..f09db07d 100644 --- a/main.py +++ b/main.py @@ -270,6 +270,14 @@ def callbackToggleForeground(is_turned_on): view.printToTextbox_disableForeground() view.foregroundOff() +def callbackEnableMainWindowSidebarCompactMode(): + config.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = True + view.enableMainWindowSidebarCompactMode() + +def callbackDisableMainWindowSidebarCompactMode(): + config.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = False + view.disableMainWindowSidebarCompactMode() + # Config Window def callbackOpenConfigWindow(): view.setMainWindowAllWidgetsStatusToDisabled() @@ -610,22 +618,20 @@ view.register( "callback_close_config_window": callbackCloseConfigWindow, }, - sidebar_features_registers={ + main_window_registers={ + "callback_enable_main_window_sidebar_compact_mode": callbackEnableMainWindowSidebarCompactMode, + "callback_disable_main_window_sidebar_compact_mode": callbackDisableMainWindowSidebarCompactMode, + "callback_toggle_translation": callbackToggleTranslation, "callback_toggle_transcription_send": callbackToggleTranscriptionSend, "callback_toggle_transcription_receive": callbackToggleTranscriptionReceive, "callback_toggle_foreground": callbackToggleForeground, - }, - language_presets_registers={ "callback_your_language": setYourLanguageAndCountry, "callback_target_language": setTargetLanguageAndCountry, "values": model.getListLanguageAndCountry(), "callback_selected_language_preset_tab": callbackSelectedLanguagePresetTab, - }, - - entry_message_box_registers={ "bind_Return": messageBoxPressKeyEnter, "bind_Any_KeyPress": messageBoxPressKeyAny, }, diff --git a/view.py b/view.py index 2f47a7fd..94b4e286 100644 --- a/view.py +++ b/view.py @@ -68,7 +68,7 @@ class View(): # Main Window # Sidebar # Sidebar Compact Mode - IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE=False, + IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE=config.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE, CALLBACK_TOGGLE_MAIN_WINDOW_SIDEBAR_COMPACT_MODE=None, # Sidebar Features @@ -307,9 +307,7 @@ class View(): def register( self, window_action_registers=None, - sidebar_features_registers=None, - language_presets_registers=None, - entry_message_box_registers=None, + main_window_registers=None, config_window_registers=None ): @@ -321,39 +319,35 @@ class View(): - self.view_variable.CALLBACK_TOGGLE_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = self._toggleMainWindowSidebarCompactMode - if sidebar_features_registers is not None: - self.view_variable.CALLBACK_TOGGLE_TRANSLATION = sidebar_features_registers.get("callback_toggle_translation", None) - self.view_variable.CALLBACK_TOGGLE_TRANSCRIPTION_SEND = sidebar_features_registers.get("callback_toggle_transcription_send", None) - self.view_variable.CALLBACK_TOGGLE_TRANSCRIPTION_RECEIVE = sidebar_features_registers.get("callback_toggle_transcription_receive", None) - self.view_variable.CALLBACK_TOGGLE_FOREGROUND = sidebar_features_registers.get("callback_toggle_foreground", None) + if main_window_registers is not None: + self.view_variable.CALLBACK_ENABLE_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = main_window_registers.get("callback_enable_main_window_sidebar_compact_mode", None) + self.view_variable.CALLBACK_DISABLE_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = main_window_registers.get("callback_disable_main_window_sidebar_compact_mode", None) - if language_presets_registers is not None: - self.view_variable.CALLBACK_SELECTED_YOUR_LANGUAGE = language_presets_registers.get("callback_your_language", None) - self.view_variable.CALLBACK_SELECTED_TARGET_LANGUAGE = language_presets_registers.get("callback_target_language", None) - language_presets_registers.get("values", None) and self.updateList_selectableLanguages(language_presets_registers["values"]) - self.view_variable.CALLBACK_SELECTED_LANGUAGE_PRESET_TAB = language_presets_registers.get("callback_selected_language_preset_tab", None) + self.view_variable.CALLBACK_TOGGLE_TRANSLATION = main_window_registers.get("callback_toggle_translation", None) + self.view_variable.CALLBACK_TOGGLE_TRANSCRIPTION_SEND = main_window_registers.get("callback_toggle_transcription_send", None) + self.view_variable.CALLBACK_TOGGLE_TRANSCRIPTION_RECEIVE = main_window_registers.get("callback_toggle_transcription_receive", None) + self.view_variable.CALLBACK_TOGGLE_FOREGROUND = main_window_registers.get("callback_toggle_foreground", None) + + self.view_variable.CALLBACK_SELECTED_YOUR_LANGUAGE = main_window_registers.get("callback_your_language", None) + self.view_variable.CALLBACK_SELECTED_TARGET_LANGUAGE = main_window_registers.get("callback_target_language", None) + main_window_registers.get("values", None) and self.updateList_selectableLanguages(main_window_registers["values"]) + + self.view_variable.CALLBACK_SELECTED_LANGUAGE_PRESET_TAB = main_window_registers.get("callback_selected_language_preset_tab", None) + + + entry_message_box = getattr(vrct_gui, "entry_message_box") + entry_message_box.bind("", main_window_registers.get("bind_Return")) + entry_message_box.bind("", main_window_registers.get("bind_Any_KeyPress")) + + + entry_message_box.bind("", self._foregroundOffForcefully) + entry_message_box.bind("", self._foregroundOnForcefully) self.updateGuiVariableByPresetTabNo(config.SELECTED_TAB_NO) vrct_gui.setDefaultActiveLanguagePresetTab(tab_no=config.SELECTED_TAB_NO) - - - self.view_variable.CALLBACK_OPEN_SELECTABLE_YOUR_LANGUAGE_WINDOW = self.openSelectableLanguagesWindow_YourLanguage - self.view_variable.CALLBACK_OPEN_SELECTABLE_TARGET_LANGUAGE_WINDOW = self.openSelectableLanguagesWindow_TargetLanguage - - entry_message_box = getattr(vrct_gui, "entry_message_box") - if entry_message_box_registers is not None: - entry_message_box.bind("", entry_message_box_registers.get("bind_Return")) - entry_message_box.bind("", entry_message_box_registers.get("bind_Any_KeyPress")) - - - entry_message_box.bind("", self._foregroundOffForcefully) - entry_message_box.bind("", self._foregroundOnForcefully) - - # Config Window self.view_variable.CALLBACK_SELECTED_SETTING_BOX_TAB=self._updateActiveSettingBoxTabNo @@ -470,13 +464,18 @@ class View(): vrct_gui.attributes("-topmost", False) - def _toggleMainWindowSidebarCompactMode(self, is_turned_on): - self.view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = is_turned_on - vrct_gui.recreateMainWindowSidebar() + def enableMainWindowSidebarCompactMode(self): + self.view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = True + vrct_gui.enableMainWindowSidebarCompactMode() + + def disableMainWindowSidebarCompactMode(self): + self.view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = False + vrct_gui.disableMainWindowSidebarCompactMode() def openSelectableLanguagesWindow_YourLanguage(self, _e): self.view_variable.VAR_TITLE_LABEL_SELECTABLE_LANGUAGE.set(i18n.t("selectable_language_window.title_your_language")) vrct_gui.openSelectableLanguagesWindow("your_language") + def openSelectableLanguagesWindow_TargetLanguage(self, _e): self.view_variable.VAR_TITLE_LABEL_SELECTABLE_LANGUAGE.set(i18n.t("selectable_language_window.title_target_language")) vrct_gui.openSelectableLanguagesWindow("target_language") diff --git a/vrct_gui/main_window/widgets/create_minimize_sidebar_button.py b/vrct_gui/main_window/widgets/create_minimize_sidebar_button.py index c5025b76..de15cc89 100644 --- a/vrct_gui/main_window/widgets/create_minimize_sidebar_button.py +++ b/vrct_gui/main_window/widgets/create_minimize_sidebar_button.py @@ -8,10 +8,10 @@ from utils import callFunctionIfCallable def createMinimizeSidebarButton(settings, main_window, view_variable): def enableCompactMode(e): - callFunctionIfCallable(view_variable.CALLBACK_TOGGLE_MAIN_WINDOW_SIDEBAR_COMPACT_MODE, True) + callFunctionIfCallable(view_variable.CALLBACK_ENABLE_MAIN_WINDOW_SIDEBAR_COMPACT_MODE) def disableCompactMode(e): - callFunctionIfCallable(view_variable.CALLBACK_TOGGLE_MAIN_WINDOW_SIDEBAR_COMPACT_MODE, False) + callFunctionIfCallable(view_variable.CALLBACK_DISABLE_MAIN_WINDOW_SIDEBAR_COMPACT_MODE) diff --git a/vrct_gui/vrct_gui.py b/vrct_gui/vrct_gui.py index 68898a37..4913c64b 100644 --- a/vrct_gui/vrct_gui.py +++ b/vrct_gui/vrct_gui.py @@ -147,17 +147,17 @@ class VRCT_GUI(CTk): active_text_color=self.settings.main.ctm.SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR ) - def recreateMainWindowSidebar(self): - if self._view_variable.IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE: - self.sidebar_bg_container.grid_remove() - self.sidebar_compact_mode_bg_container.grid() - self.minimize_sidebar_button_container__for_closing.grid_remove() - self.minimize_sidebar_button_container__for_opening.grid() - else: - self.sidebar_compact_mode_bg_container.grid_remove() - self.sidebar_bg_container.grid() - self.minimize_sidebar_button_container__for_opening.grid_remove() - self.minimize_sidebar_button_container__for_closing.grid() + def enableMainWindowSidebarCompactMode(self): + self.sidebar_bg_container.grid_remove() + self.sidebar_compact_mode_bg_container.grid() + self.minimize_sidebar_button_container__for_closing.grid_remove() + self.minimize_sidebar_button_container__for_opening.grid() + + def disableMainWindowSidebarCompactMode(self): + self.sidebar_compact_mode_bg_container.grid_remove() + self.sidebar_bg_container.grid() + self.minimize_sidebar_button_container__for_opening.grid_remove() + self.minimize_sidebar_button_container__for_closing.grid() vrct_gui = VRCT_GUI() \ No newline at end of file