[bugfix/refactor] weightタイプ変更処理中は、weightタイプ変更と翻訳機能オンオフwidgetをdisabledに。

理由: weightタイプ変更処理は非同期で、変更処理中に上記widgetを触れるとUIへの変更処理順が意図した順番と変わってしまうため。

その他リファクタリングあり。
This commit is contained in:
Sakamoto Shiina
2024-01-22 20:33:50 +09:00
parent 46aafa4a4d
commit edaca7edc2
7 changed files with 84 additions and 4 deletions

View File

@@ -10,37 +10,75 @@ def _changeConfigWindowWidgetsStatus(config_window, settings, view_variable, sta
if target_widget.desc_widget is not None:
target_widget.desc_widget.configure(text_color=settings.ctm.LABELS_TEXT_DISABLED_COLOR)
def normalLabelsWidgets(target_widget):
target_widget.label_widget.configure(text_color=settings.ctm.LABELS_TEXT_COLOR)
if target_widget.desc_widget is not None:
target_widget.desc_widget.configure(text_color=settings.ctm.LABELS_DESC_TEXT_COLOR)
def disableOptionmenuWidget(target_widget):
disableLabelsWidgets(target_widget)
target_widget.optionmenu_label_widget.configure(text_color=settings.ctm.LABELS_TEXT_DISABLED_COLOR)
target_widget.optionmenu_img_widget.configure(image=CTkImage(settings.image_file.ARROW_LEFT_DISABLED.rotate(90), size=settings.uism.SB__OPTIONMENU_IMG_SIZE))
target_widget.optionmenu_box.unbindFunction()
target_widget.optionmenu_box.configure(cursor="")
def normalOptionmenuWidget(target_widget):
target_widget.optionmenu_label_widget.configure(text_color=settings.ctm.LABELS_TEXT_COLOR)
target_widget.optionmenu_img_widget.configure(image=CTkImage(settings.image_file.ARROW_LEFT.rotate(90), size=settings.uism.SB__OPTIONMENU_IMG_SIZE))
target_widget.optionmenu_box.bindFunction()
target_widget.optionmenu_box.configure(cursor="hand2")
for target_name in target_names:
match target_name:
case "sb__optionmenu_mic_host":
if status == "disabled":
target_widget = config_window.sb__widgets["sb__optionmenu_mic_host"]
disableLabelsWidgets(target_widget)
disableOptionmenuWidget(target_widget)
case "sb__optionmenu_mic_device":
if status == "disabled":
target_widget = config_window.sb__widgets["sb__optionmenu_mic_device"]
disableLabelsWidgets(target_widget)
disableOptionmenuWidget(target_widget)
case "sb__optionmenu_appearance_theme":
if status == "disabled":
target_widget = config_window.sb__widgets["sb__optionmenu_appearance_theme"]
disableLabelsWidgets(target_widget)
disableOptionmenuWidget(target_widget)
case "sb__optionmenu_ctranslate2_weight_type":
target_widget = config_window.sb__widgets["sb__optionmenu_ctranslate2_weight_type"]
if status == "disabled":
disableOptionmenuWidget(target_widget)
elif status == "normal":
normalOptionmenuWidget(target_widget)
case "sb__switch_use_translation_feature":
target_widget = config_window.sb__widgets["sb__switch_use_translation_feature"]
if status == "disabled":
target_widget.switch_box.configure(
state="disabled",
fg_color=settings.ctm.SB__SWITCH_BOX_BG_DISABLED_COLOR,
progress_color=settings.ctm.SB__SWITCH_BOX_ACTIVE_BG_DISABLED_COLOR,
button_color=settings.ctm.SB__SWITCH_BOX_BUTTON_DISABLED_COLOR,
)
elif status == "normal":
target_widget.switch_box.configure(
state="normal",
fg_color=settings.ctm.SB__SWITCH_BOX_BG_COLOR,
progress_color=settings.ctm.SB__SWITCH_BOX_ACTIVE_BG_COLOR,
button_color=settings.ctm.SB__SWITCH_BOX_BUTTON_COLOR,
)
case "sb__checkbox_enable_send_received_message_to_vrc":
if status == "disabled":
target_widget = config_window.sb__widgets["sb__checkbox_enable_send_received_message_to_vrc"]
disableLabelsWidgets(target_widget)
config_window.sb__checkbox_enable_send_received_message_to_vrc.configure(
target_widget.checkbox.configure(
state="disabled",
border_color=settings.ctm.SB__CHECKBOX_BORDER_DISABLED_COLOR
)