From 4cfc4d0d2e066a7261ab55fbf69ee43d8ba5fd5f Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Tue, 11 Jul 2023 07:11:58 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=81=E3=83=A3=E3=83=83=E3=83=88=E9=80=81?= =?UTF-8?q?=E4=BF=A1=E5=BE=8C=E3=80=81=E8=87=AA=E5=8B=95=E7=9A=84=E3=81=AB?= =?UTF-8?q?=E3=83=81=E3=83=A3=E3=83=83=E3=83=88=E3=83=9C=E3=83=83=E3=82=AF?= =?UTF-8?q?=E3=82=B9=E3=82=92=E7=A9=BA=E3=81=AB=E3=81=99=E3=82=8B=E6=A9=9F?= =?UTF-8?q?=E8=83=BD=E3=82=92=E5=BE=A9=E6=B4=BB=E3=80=82Config=E3=81=A7?= =?UTF-8?q?=E3=82=AA=E3=83=B3=E3=82=AA=E3=83=95=E5=88=87=E6=9B=BF=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E3=80=82=E3=81=BE=E3=81=9F=E3=80=81Config=E7=94=BB?= =?UTF-8?q?=E9=9D=A2=E3=81=AE=E3=82=BF=E3=83=96=E3=81=ABOthers=E3=82=BF?= =?UTF-8?q?=E3=83=96=E3=82=92=E8=BF=BD=E5=8A=A0=E3=80=82=EF=BC=88=E4=BB=8A?= =?UTF-8?q?=E5=9B=9E=E3=81=AE=E6=A9=9F=E8=83=BD=E3=81=AF=E6=97=A2=E5=AD=98?= =?UTF-8?q?=E3=81=AE=E3=81=A9=E3=81=AE=E3=82=BF=E3=83=96=E3=81=AB=E3=82=82?= =?UTF-8?q?=E5=BD=93=E3=81=A6=E3=81=AF=E3=81=BE=E3=82=89=E3=81=AA=E3=81=84?= =?UTF-8?q?=E3=81=A8=E5=88=A4=E6=96=AD=EF=BC=89=20=E3=81=9D=E3=82=8C?= =?UTF-8?q?=E3=81=AB=E4=BC=B4=E3=81=84README=E3=81=AE=E9=A0=85=E7=9B=AE?= =?UTF-8?q?=E3=82=82=E8=BF=BD=E5=8A=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ README.txt | 2 ++ VRCT.py | 8 +++++++- window_config.py | 31 +++++++++++++++++++++++++++++++ 4 files changed, 42 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0c880a05..7534c30d 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,8 @@ ptyhon VRCT.py - [message]がメッセージボックスに記入したメッセージに置換される - [translation]が翻訳されたメッセージに置換される - 初期フォーマット:`[message]([translation])` +- Others tab + - Auto clear chat box: チャット送信時にチャットボックスを空にする ## Author みしゃ(misyaguzi) diff --git a/README.txt b/README.txt index 97085db2..5a28b468 100644 --- a/README.txt +++ b/README.txt @@ -63,6 +63,8 @@ VRChatで使用されるChatBoxをOSC経由でメッセージを送信するツ      - [message]がメッセージボックスに記入したメッセージに置換される      - [translation]が翻訳されたメッセージに置換される      - 初期フォーマット:"[message]([translation])" +  - Othersタブ +    - Auto clear chat box: チャット送信時にチャットボックスを空にする  設定の初期化   - config.jsonを削除 diff --git a/VRCT.py b/VRCT.py index 13d9840e..2bd467ed 100644 --- a/VRCT.py +++ b/VRCT.py @@ -34,6 +34,7 @@ class App(customtkinter.CTk): self.APPEARANCE_THEME = "System" self.UI_SCALING = "100%" self.FONT_FAMILY = "Yu Gothic UI" + self.ENABLE_AUTO_CLEAR_CHATBOX = False ## Translation self.CHOICE_TRANSLATOR = languages.translators[0] self.INPUT_SOURCE_LANG = list(languages.translation_lang[self.CHOICE_TRANSLATOR].keys())[0] @@ -99,6 +100,9 @@ class App(customtkinter.CTk): if "FONT_FAMILY" in config.keys(): if config["FONT_FAMILY"] in list(tk.font.families()): self.FONT_FAMILY = config["FONT_FAMILY"] + if "ENABLE_AUTO_CLEAR_CHATBOX" in config.keys(): + if type(config["ENABLE_AUTO_CLEAR_CHATBOX"]) is bool: + self.ENABLE_AUTO_CLEAR_CHATBOX = config["ENABLE_AUTO_CLEAR_CHATBOX"] # translation if "CHOICE_TRANSLATOR" in config.keys(): @@ -189,6 +193,7 @@ class App(customtkinter.CTk): "APPEARANCE_THEME": self.APPEARANCE_THEME, "UI_SCALING": self.UI_SCALING, "FONT_FAMILY": self.FONT_FAMILY, + "ENABLE_AUTO_CLEAR_CHATBOX": self.ENABLE_AUTO_CLEAR_CHATBOX, "CHOICE_TRANSLATOR": self.CHOICE_TRANSLATOR, "INPUT_SOURCE_LANG": self.INPUT_SOURCE_LANG, "INPUT_TARGET_LANG": self.INPUT_TARGET_LANG, @@ -615,7 +620,8 @@ class App(customtkinter.CTk): utils.print_textbox(self.textbox_message_send_log, f"{chat_message}", "SEND") # delete message in entry message box - # self.entry_message_box.delete(0, customtkinter.END) + if self.ENABLE_AUTO_CLEAR_CHATBOX == True: + self.entry_message_box.delete(0, customtkinter.END) def entry_message_box_press_key_any(self, event): # send OSC typing diff --git a/window_config.py b/window_config.py index adbe90b9..c16cde0d 100644 --- a/window_config.py +++ b/window_config.py @@ -24,10 +24,12 @@ class ToplevelWindowConfig(customtkinter.CTkToplevel): self.tabview_config.add("Translation") self.tabview_config.add("Transcription") self.tabview_config.add("Parameter") + self.tabview_config.add("Others") self.tabview_config.tab("UI").grid_columnconfigure(1, weight=1) self.tabview_config.tab("Translation").grid_columnconfigure([1,2,3], weight=1) self.tabview_config.tab("Transcription").grid_columnconfigure(1, weight=1) self.tabview_config.tab("Parameter").grid_columnconfigure(1, weight=1) + self.tabview_config.tab("Others").grid_columnconfigure(1, weight=1) self.tabview_config._segmented_button.configure(font=customtkinter.CTkFont(family=self.parent.FONT_FAMILY)) self.tabview_config._segmented_button.grid(sticky="W") @@ -546,6 +548,30 @@ class ToplevelWindowConfig(customtkinter.CTkToplevel): self.entry_message_format.grid(row=row, column=1, columnspan=1, padx=padx, pady=pady, sticky="nsew") self.entry_message_format.bind("", self.entry_message_format_callback) + # tab Others + # checkbox auto clear chat box + row += 1 + self.label_checkbox_auto_clear_chatbox = customtkinter.CTkLabel( + self.tabview_config.tab("Others"), + text="Auto clear chat box", + fg_color="transparent", + font=customtkinter.CTkFont(family=self.parent.FONT_FAMILY) + ) + self.label_checkbox_auto_clear_chatbox.grid(row=row, column=0, columnspan=1, padx=padx, pady=pady, sticky="nsw") + self.checkbox_auto_clear_chatbox = customtkinter.CTkCheckBox( + self.tabview_config.tab("Others"), + text="", + onvalue=True, + offvalue=False, + command=self.checkbox_auto_clear_chatbox_callback, + font=customtkinter.CTkFont(family=self.parent.FONT_FAMILY) + ) + self.checkbox_auto_clear_chatbox.grid(row=row, column=1, columnspan=1, padx=padx, pady=pady, sticky="nsew") + if self.parent.ENABLE_AUTO_CLEAR_CHATBOX is True: + self.checkbox_auto_clear_chatbox.select() + else: + self.checkbox_auto_clear_chatbox.deselect() + self.protocol("WM_DELETE_WINDOW", self.delete_window) def slider_transparency_callback(self, value): @@ -659,6 +685,11 @@ class ToplevelWindowConfig(customtkinter.CTkToplevel): self.parent.FONT_FAMILY = choice utils.save_json(self.parent.PATH_CONFIG, "FONT_FAMILY", self.parent.FONT_FAMILY) + + def checkbox_auto_clear_chatbox_callback(self): + value = self.checkbox_auto_clear_chatbox.get() + self.parent.ENABLE_AUTO_CLEAR_CHATBOX = value + utils.save_json(self.parent.PATH_CONFIG, "ENABLE_AUTO_CLEAR_CHATBOX", self.parent.ENABLE_AUTO_CLEAR_CHATBOX) def optionmenu_translation_translator_callback(self, choice): if self.parent.translator.authentication(choice, self.parent.AUTH_KEYS[choice]) is False: