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: