チャット送信後、自動的にチャットボックスを空にする機能を復活。Configでオンオフ切替可能。また、Config画面のタブにOthersタブを追加。(今回の機能は既存のどのタブにも当てはまらないと判断)

それに伴いREADMEの項目も追加。
This commit is contained in:
Sakamoto Shiina
2023-07-11 07:11:58 +09:00
parent cac3b2189a
commit 4cfc4d0d2e
4 changed files with 42 additions and 1 deletions

View File

@@ -94,6 +94,8 @@ ptyhon VRCT.py
- [message]がメッセージボックスに記入したメッセージに置換される
- [translation]が翻訳されたメッセージに置換される
- 初期フォーマット:`[message]([translation])`
- Others tab
- Auto clear chat box: チャット送信時にチャットボックスを空にする
## Author
みしゃ(misyaguzi)

View File

@@ -63,6 +63,8 @@ VRChatで使用されるChatBoxをOSC経由でメッセージを送信するツ
     - [message]がメッセージボックスに記入したメッセージに置換される
     - [translation]が翻訳されたメッセージに置換される
     - 初期フォーマット:"[message]([translation])"
  - Othersタブ
    - Auto clear chat box: チャット送信時にチャットボックスを空にする
 設定の初期化
  - config.jsonを削除

View File

@@ -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

View File

@@ -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("<Any-KeyRelease>", 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: