diff --git a/src/components/SettingDialog.vue b/src/components/SettingDialog.vue index 132c1cc187..f1153942cf 100644 --- a/src/components/SettingDialog.vue +++ b/src/components/SettingDialog.vue @@ -590,6 +590,28 @@ > + +
テキスト追加ボタンの表示
+
+ + + 右下にテキスト追加ボタンを表示します。 + + +
+ + + +
@@ -922,6 +944,40 @@ const changeShowTextLineNumber = (showTextLineNumber: boolean) => { }); }; +// エディタの+ボタン表示設定 +const showAddAudioItemButton = computed( + () => store.state.showAddAudioItemButton +); +const changeShowAddAudioItemButton = (showAddAudioItemButton: boolean) => { + store.dispatch("SET_SHOW_ADD_AUDIO_ITEM_BUTTON", { + showAddAudioItemButton, + }); + + // 設定をオフにする場合はヒントを表示 + if (!showAddAudioItemButton) { + $q.dialog({ + title: "エディタの+ボタンを非表示にする", + message: "テキスト欄は Shift + Enter で追加できます", + persistent: true, // ダイアログ外側押下時にユーザが設定ができたと思い込むことを防止する + ok: { + flat: true, + label: "OK", + textColor: "display", + }, + cancel: { + flat: true, + label: "キャンセル", + textColor: "display", + }, + }).onCancel(() => { + // キャンセルしたら設定を元に戻す + store.dispatch("SET_SHOW_ADD_AUDIO_ITEM_BUTTON", { + showAddAudioItemButton: true, + }); + }); + } +}; + const currentAudioOutputDeviceComputed = computed<{ key: string; label: string; diff --git a/src/store/setting.ts b/src/store/setting.ts index bc06aa7691..273c5fa1bc 100644 --- a/src/store/setting.ts +++ b/src/store/setting.ts @@ -42,6 +42,7 @@ export const settingStoreState: SettingStoreState = { }, editorFont: "default", showTextLineNumber: false, + showAddAudioItemButton: true, acceptRetrieveTelemetry: "Unconfirmed", experimentalSetting: { enablePreset: false, @@ -96,6 +97,12 @@ export const settingStore = createPartialStore({ ), }); + dispatch("SET_SHOW_ADD_AUDIO_ITEM_BUTTON", { + showAddAudioItemButton: await window.electron.getSetting( + "showAddAudioItemButton" + ), + }); + dispatch("SET_ACCEPT_RETRIEVE_TELEMETRY", { acceptRetrieveTelemetry: await window.electron.getSetting( "acceptRetrieveTelemetry" @@ -278,6 +285,21 @@ export const settingStore = createPartialStore({ }, }, + SET_SHOW_ADD_AUDIO_ITEM_BUTTON: { + mutation(state, { showAddAudioItemButton }) { + state.showAddAudioItemButton = showAddAudioItemButton; + }, + action({ commit }, { showAddAudioItemButton }) { + window.electron.setSetting( + "showAddAudioItemButton", + showAddAudioItemButton + ); + commit("SET_SHOW_ADD_AUDIO_ITEM_BUTTON", { + showAddAudioItemButton, + }); + }, + }, + SET_ACCEPT_RETRIEVE_TELEMETRY: { mutation(state, { acceptRetrieveTelemetry }) { state.acceptRetrieveTelemetry = acceptRetrieveTelemetry; diff --git a/src/store/type.ts b/src/store/type.ts index 6f8d130360..9360c3a5c7 100644 --- a/src/store/type.ts +++ b/src/store/type.ts @@ -1016,6 +1016,7 @@ export type SettingStoreState = { themeSetting: ThemeSetting; editorFont: EditorFontType; showTextLineNumber: boolean; + showAddAudioItemButton: boolean; acceptRetrieveTelemetry: AcceptRetrieveTelemetryStatus; experimentalSetting: ExperimentalSetting; splitTextWhenPaste: SplitTextWhenPasteType; @@ -1059,6 +1060,11 @@ export type SettingStoreTypes = { action(payload: { showTextLineNumber: boolean }): void; }; + SET_SHOW_ADD_AUDIO_ITEM_BUTTON: { + mutation: { showAddAudioItemButton: boolean }; + action(payload: { showAddAudioItemButton: boolean }): void; + }; + SET_ACCEPT_RETRIEVE_TELEMETRY: { mutation: { acceptRetrieveTelemetry: AcceptRetrieveTelemetryStatus }; action(payload: { diff --git a/src/type/preload.ts b/src/type/preload.ts index d735e67220..bff29f4265 100644 --- a/src/type/preload.ts +++ b/src/type/preload.ts @@ -572,6 +572,7 @@ export const electronStoreSchema = z currentTheme: z.string().default("Default"), editorFont: z.enum(["default", "os"]).default("default"), showTextLineNumber: z.boolean().default(false), + showAddAudioItemButton: z.boolean().default(true), experimentalSetting: experimentalSettingSchema.passthrough().default({}), acceptRetrieveTelemetry: z .enum(["Unconfirmed", "Accepted", "Refused"]) diff --git a/src/views/EditorHome.vue b/src/views/EditorHome.vue index 1a65d7b821..500e2fcd0d 100644 --- a/src/views/EditorHome.vue +++ b/src/views/EditorHome.vue @@ -106,7 +106,10 @@ /> -
+
{ activeCellElement.scrollIntoView(overflowTop || !overflowBottom); } }); + +const showAddAudioItemButton = computed(() => { + return store.state.showAddAudioItemButton; +});