From 1bd98c77698b416e3bb8dcd2104bd6ad3c673493 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Fri, 13 Oct 2023 19:56:30 +0900 Subject: [PATCH] =?UTF-8?q?[Update]=20Config=20Window:=20=E5=86=8D?= =?UTF-8?q?=E8=B5=B7=E5=8B=95=E3=81=8C=E5=BF=85=E8=A6=81=E3=81=AA=E5=A4=89?= =?UTF-8?q?=E6=9B=B4=E3=81=8C=E3=81=82=E3=82=8B=E5=A0=B4=E5=90=88=E3=81=AB?= =?UTF-8?q?=E3=80=81=E5=86=8D=E8=B5=B7=E5=8B=95=E3=83=9C=E3=82=BF=E3=83=B3?= =?UTF-8?q?=E3=82=92=E8=A1=A8=E7=A4=BA=E3=80=82=EF=BC=88=E7=8F=BE=E7=8A=B6?= =?UTF-8?q?=E3=80=81=E8=A8=AD=E5=AE=9A=E3=81=8C=E5=A4=89=E3=82=8F=E3=82=89?= =?UTF-8?q?=E3=81=AA=E3=81=8F=E3=81=A6=E3=82=82=E5=A4=89=E6=9B=B4=E3=81=97?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=A8=E3=81=99=E3=82=8B=E3=81=A8=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E3=81=95=E3=82=8C=E3=82=8B=E7=8A=B6=E6=85=8B=E3=81=A7?= =?UTF-8?q?=E3=81=AF=E3=81=82=E3=82=8B=E3=80=82=E4=BE=8B:=20UI=20size=2010?= =?UTF-8?q?0%=E3=81=8B=E3=82=89=E3=82=82=E3=81=86=E4=B8=80=E5=BA=A6100%?= =?UTF-8?q?=E3=82=92=E9=81=B8=E6=8A=9E=E3=81=97=E3=81=9F=E5=A0=B4=E5=90=88?= =?UTF-8?q?=E3=81=AA=E3=81=A9=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller.py | 6 ++- locales/en.yml | 1 + locales/ja.yml | 1 + view.py | 6 +++ .../_createRestartButton.py | 37 +++++++++++++++++++ .../createSettingBoxTopBar.py | 5 +++ .../main_window/createMainWindowWidgets.py | 16 -------- vrct_gui/ui_managers/ColorThemeManager.py | 7 ++++ vrct_gui/ui_managers/UiScalingManager.py | 4 ++ 9 files changed, 65 insertions(+), 18 deletions(-) create mode 100644 vrct_gui/config_window/widgets/createSettingBoxTopBar/_createRestartButton.py diff --git a/controller.py b/controller.py index 3164b0f7..d6205f82 100644 --- a/controller.py +++ b/controller.py @@ -11,8 +11,6 @@ def callbackUpdateSoftware(): model.updateSoftware() def callbackRestartSoftware(): - print("callbackRestartSoftware") - # model.updateSoftware(restart=True) model.reStartSoftware() # func transcription send message @@ -343,22 +341,26 @@ def callbackSetTransparency(value): def callbackSetAppearance(value): print("callbackSetAppearance", value) config.APPEARANCE_THEME = value + view.showRestartButton() def callbackSetUiScaling(value): print("callbackSetUiScaling", value) config.UI_SCALING = value new_scaling_float = int(value.replace("%", "")) / 100 print("callbackSetUiScaling_new_scaling_float", new_scaling_float) + view.showRestartButton() def callbackSetFontFamily(value): print("callbackSetFontFamily", value) config.FONT_FAMILY = value + view.showRestartButton() def callbackSetUiLanguage(value): print("callbackSetUiLanguage", value) value = get_key_by_value(selectable_languages, value) print("callbackSetUiLanguage__after_get_key_by_value", value) config.UI_LANGUAGE = value + view.showRestartButton() # Translation Tab def callbackSetDeeplAuthkey(value): diff --git a/locales/en.yml b/locales/en.yml index 126618bc..55a6f92d 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -28,6 +28,7 @@ config_window: config_title: Settings compact_mode: Compact Mode version: version %{version} + restart_message: Apply changes with a restart. side_menu_labels: appearance: Appearance translation: Translation diff --git a/locales/ja.yml b/locales/ja.yml index ef2b2e3d..24697ccc 100644 --- a/locales/ja.yml +++ b/locales/ja.yml @@ -29,6 +29,7 @@ config_window: config_title: 設定 compact_mode: コンパクトモード version: バージョン %{version} + restart_message: 再起動して変更を適用する。 side_menu_labels: appearance: デザイン translation: 翻訳 diff --git a/view.py b/view.py index 89af1564..8b7434b7 100644 --- a/view.py +++ b/view.py @@ -139,6 +139,7 @@ class View(): VAR_VERSION=StringVar(value=i18n.t("config_window.version", version=config.VERSION)), VAR_CONFIG_WINDOW_TITLE=StringVar(value=i18n.t("config_window.config_title")), VAR_CONFIG_WINDOW_COMPACT_MODE_LABEL=StringVar(value=i18n.t("config_window.compact_mode")), + VAR_CONFIG_WINDOW_RESTART_BUTTON_LABEL=StringVar(value=i18n.t("config_window.restart_message")), # Side Menu Labels @@ -710,6 +711,11 @@ class View(): # Config Window + def showRestartButton(self): + vrct_gui.config_window.restart_button_container.grid() + def hideRestartButton(self): + vrct_gui.config_window.restart_button_container.grid_remove() + def _updateActiveSettingBoxTabNo(self, active_setting_box_tab_attr_name:str): self.view_variable.ACTIVE_SETTING_BOX_TAB_ATTR_NAME = active_setting_box_tab_attr_name diff --git a/vrct_gui/config_window/widgets/createSettingBoxTopBar/_createRestartButton.py b/vrct_gui/config_window/widgets/createSettingBoxTopBar/_createRestartButton.py new file mode 100644 index 00000000..58e23b47 --- /dev/null +++ b/vrct_gui/config_window/widgets/createSettingBoxTopBar/_createRestartButton.py @@ -0,0 +1,37 @@ +from customtkinter import CTkFont, CTkFrame, CTkLabel +from utils import callFunctionIfCallable +from ....ui_utils import bindButtonFunctionAndColor + +def _createRestartButton(parent_widget, config_window, settings, view_variable, column_num): + + parent_widget.grid_columnconfigure(0, weight=1) + config_window.restart_button_container = CTkFrame(parent_widget, corner_radius=20, fg_color=settings.ctm.RESTART_BUTTON_BG_COLOR, width=0, height=0, cursor="hand2") + config_window.restart_button_container.grid(row=0, column=column_num, padx=settings.uism.RESTART_BUTTON_PADX, sticky="ew") + + + config_window.restart_button_container.grid_rowconfigure(0, weight=1) + config_window.restart_button_label = CTkLabel( + config_window.restart_button_container, + height=0, + textvariable=view_variable.VAR_CONFIG_WINDOW_RESTART_BUTTON_LABEL, + anchor="w", + font=CTkFont(family=settings.FONT_FAMILY, size=settings.uism.RESTART_BUTTON_LABEL_FONT_SIZE, weight="normal"), + text_color=settings.ctm.LABELS_TEXT_COLOR + ) + config_window.restart_button_label.grid(row=0, column=0, padx=20, pady=10) + + + + bindButtonFunctionAndColor( + target_widgets=[ + config_window.restart_button_container, + config_window.restart_button_label, + ], + enter_color=settings.ctm.RESTART_BUTTON_HOVERED_BG_COLOR, + leave_color=settings.ctm.RESTART_BUTTON_BG_COLOR, + clicked_color=settings.ctm.RESTART_BUTTON_CLICKED_BG_COLOR, + buttonReleasedFunction=lambda _e: callFunctionIfCallable(view_variable.CALLBACK_RESTART_SOFTWARE), + ) + + + config_window.restart_button_container.grid_remove() diff --git a/vrct_gui/config_window/widgets/createSettingBoxTopBar/createSettingBoxTopBar.py b/vrct_gui/config_window/widgets/createSettingBoxTopBar/createSettingBoxTopBar.py index cac83acb..5dad5207 100644 --- a/vrct_gui/config_window/widgets/createSettingBoxTopBar/createSettingBoxTopBar.py +++ b/vrct_gui/config_window/widgets/createSettingBoxTopBar/createSettingBoxTopBar.py @@ -1,6 +1,7 @@ from customtkinter import CTkFont, CTkFrame, CTkLabel from ._createSettingBoxTitle import _createSettingBoxTitle +from ._createRestartButton import _createRestartButton from ._createSettingBoxCompactModeButton import _createSettingBoxCompactModeButton from ....ui_utils import getLatestHeight, getLatestWidth @@ -22,6 +23,10 @@ def createSettingBoxTopBar(config_window, settings, view_variable): config_window.setting_box_top_bar.grid_columnconfigure(column_num, weight=1) column_num+=1 + # Restart Button(Tmp) + _createRestartButton(parent_widget=config_window.setting_box_top_bar, config_window=config_window, settings=settings, view_variable=view_variable, column_num=column_num) + column_num+=1 + _createSettingBoxCompactModeButton(parent_widget=config_window.setting_box_top_bar, config_window=config_window, settings=settings, view_variable=view_variable, column_num=column_num) column_num+=1 diff --git a/vrct_gui/main_window/createMainWindowWidgets.py b/vrct_gui/main_window/createMainWindowWidgets.py index 14b0eda3..c42ba7e5 100644 --- a/vrct_gui/main_window/createMainWindowWidgets.py +++ b/vrct_gui/main_window/createMainWindowWidgets.py @@ -43,22 +43,6 @@ def createMainWindowWidgets(vrct_gui, settings, view_variable): # Main Top Bar Container - Right Side # start from 3 main_topbar_column=3 - # Restart Button(Tmp) - vrct_gui.restart_button_container = createButtonWithImage( - parent_widget=vrct_gui.main_topbar_container, - button_fg_color=settings.ctm.HELP_AND_INFO_BUTTON_BG_COLOR, - button_enter_color=settings.ctm.HELP_AND_INFO_BUTTON_HOVERED_BG_COLOR, - button_clicked_color=settings.ctm.HELP_AND_INFO_BUTTON_CLICKED_BG_COLOR, - button_image_file=settings.image_file.VRCT_LOGO_MARK, - button_image_size=settings.uism.HELP_AND_INFO_BUTTON_SIZE, - button_ipadxy=settings.uism.HELP_AND_INFO_BUTTON_IPADXY, - button_command=lambda e: callFunctionIfCallable(view_variable.CALLBACK_RESTART_SOFTWARE), - corner_radius=settings.uism.HELP_AND_INFO_BUTTON_CORNER_RADIUS, - ) - vrct_gui.restart_button_container.grid(row=0, column=main_topbar_column, padx=settings.uism.HELP_AND_INFO_BUTTON_PADX, pady=settings.uism.TOP_BAR_BUTTON_PADY, sticky="e") - main_topbar_column+=1 - - # Update Available Button vrct_gui.update_available_container = CTkFrame( vrct_gui.main_topbar_container, diff --git a/vrct_gui/ui_managers/ColorThemeManager.py b/vrct_gui/ui_managers/ColorThemeManager.py index 0f46aa14..5af8f120 100644 --- a/vrct_gui/ui_managers/ColorThemeManager.py +++ b/vrct_gui/ui_managers/ColorThemeManager.py @@ -225,6 +225,13 @@ class ColorThemeManager(): # Top bar self.config_window.TOP_BAR_BG_COLOR = self.DARK_850_COLOR + + # Restart Button + self.config_window.RESTART_BUTTON_BG_COLOR = self.PRIMARY_600_COLOR + self.config_window.RESTART_BUTTON_HOVERED_BG_COLOR = self.PRIMARY_500_COLOR + self.config_window.RESTART_BUTTON_CLICKED_BG_COLOR = self.PRIMARY_700_COLOR + + # Compact Mode self.config_window.COMPACT_MODE_SWITCH_BOX_ACTIVE_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR diff --git a/vrct_gui/ui_managers/UiScalingManager.py b/vrct_gui/ui_managers/UiScalingManager.py index 1d73764f..cc21d35a 100644 --- a/vrct_gui/ui_managers/UiScalingManager.py +++ b/vrct_gui/ui_managers/UiScalingManager.py @@ -155,6 +155,10 @@ class UiScalingManager(): self.config_window.TOP_BAR_SIDE__CONFIG_TITLE_LEFT_PADX = int(self.config_window.TOP_BAR_SIDE__CONFIG_TITLE_FONT_SIZE + self._calculateUiSize(16)) self.config_window.TOP_BAR_SIDE__TITLE_PADX= self._calculateUiSize(30) + # Restart Button + self.config_window.RESTART_BUTTON_LABEL_FONT_SIZE = self._calculateUiSize(12) + self.config_window.RESTART_BUTTON_PADX = (0, self._calculateUiSize(20)) + # Compact Mode self.config_window.COMPACT_MODE_PADX = (0, self._calculateUiSize(20)) self.config_window.COMPACT_MODE_LABEL_FONT_SIZE = self._calculateUiSize(12)