diff --git a/spec/renderer/integration/store/Preferences/General.spec.ts b/spec/renderer/integration/store/Preferences/General.spec.ts index 04ea2481..8bdc50f2 100644 --- a/spec/renderer/integration/store/Preferences/General.spec.ts +++ b/spec/renderer/integration/store/Preferences/General.spec.ts @@ -19,8 +19,7 @@ const state = (): GeneralState => { hideAllAttachments: false }, other: { - launch: false, - spellcheck: true + launch: false } }, loading: false diff --git a/spec/renderer/integration/store/Preferences/Language.spec.ts b/spec/renderer/integration/store/Preferences/Language.spec.ts index 35a42457..b24c2bfb 100644 --- a/spec/renderer/integration/store/Preferences/Language.spec.ts +++ b/spec/renderer/integration/store/Preferences/Language.spec.ts @@ -9,7 +9,10 @@ import { MyWindow } from '~/src/types/global' const state = (): LanguageState => { return { language: { - language: DefaultLanguage.en.key + language: DefaultLanguage.en.key, + spellchecker: { + enabled: true + } } } } @@ -42,7 +45,10 @@ describe('Preferences/Language', () => { ipcMain.handle('get-preferences', () => { return { language: { - language: DefaultLanguage.ja.key + language: DefaultLanguage.ja.key, + spellchecker: { + enabled: true + } } } }) diff --git a/spec/renderer/unit/store/Preferences/General.spec.ts b/spec/renderer/unit/store/Preferences/General.spec.ts index 4293a9f9..d4db7079 100644 --- a/spec/renderer/unit/store/Preferences/General.spec.ts +++ b/spec/renderer/unit/store/Preferences/General.spec.ts @@ -15,8 +15,7 @@ describe('Preferences/General', () => { hideAllAttachments: false }, other: { - launch: false, - spellcheck: true + launch: false } }, loading: false diff --git a/spec/renderer/unit/store/Preferences/Language.spec.ts b/spec/renderer/unit/store/Preferences/Language.spec.ts index 051f6182..8953857f 100644 --- a/spec/renderer/unit/store/Preferences/Language.spec.ts +++ b/spec/renderer/unit/store/Preferences/Language.spec.ts @@ -6,7 +6,10 @@ describe('Preferences/Language', () => { beforeEach(() => { state = { language: { - language: DefaultLanguage.en.key + language: DefaultLanguage.en.key, + spellchecker: { + enabled: true + } } } }) diff --git a/src/config/locales/en/translation.json b/src/config/locales/en/translation.json index fb4ec39f..b6ab09af 100644 --- a/src/config/locales/en/translation.json +++ b/src/config/locales/en/translation.json @@ -135,17 +135,7 @@ }, "other": { "title": "Other options", - "launch": "Launch app on login", - "spellcheck": { - "description": "Enable spellchecker", - "notice": "Requires relaunch", - "confirm": { - "title": "Confirm", - "message": "You have to restart this application. Continue?", - "ok": "Restart Now", - "cancel": "Cancel" - } - } + "launch": "Launch app on login" } }, "appearance": { @@ -239,13 +229,20 @@ }, "language": { "title": "Language", - "language_description": "Choose the language you would like to use with Whalebird.", "notice": "Requires relaunch", "confirm": { "title": "Confirm", "message": "You have to restart this application. Continue?", "ok": "Restart Now", "cancel": "Cancel" + }, + "language": { + "title": "Language", + "description": "Choose the language you would like to use with Whalebird." + }, + "spellchecker": { + "title": "Spellcheck", + "enabled": "Enable spellchecker" } } }, diff --git a/src/main/index.ts b/src/main/index.ts index ac3d67c7..0536112e 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -205,7 +205,7 @@ const getSpellChecker = async (): Promise => { try { const preferences = new Preferences(preferencesDBPath) const conf = await preferences.load() - return conf.general.other.spellcheck + return conf.language.spellchecker.enabled } catch (err) { return true } @@ -1021,6 +1021,18 @@ ipcMain.handle('change-language', async (_: IpcMainInvokeEvent, value: string) = return conf.language.language }) +ipcMain.handle('toggle-spellchecker', async (_: IpcMainInvokeEvent, value: boolean) => { + const preferences = new Preferences(preferencesDBPath) + const conf = await preferences.update({ + language: { + spellchecker: { + enabled: value + } + } + }) + return conf.language.spellchecker.enabled +}) + // hashtag ipcMain.handle('save-hashtag', async (_: IpcMainInvokeEvent, tag: string) => { const hashtags = new Hashtags(hashtagsDB) diff --git a/src/main/preferences.ts b/src/main/preferences.ts index d10b4ba3..a5d315ec 100644 --- a/src/main/preferences.ts +++ b/src/main/preferences.ts @@ -27,8 +27,7 @@ const timeline: Timeline = { } const other: Other = { - launch: false, - spellcheck: true + launch: false } const general: General = { @@ -55,7 +54,10 @@ const notify: Notify = { } const language: LanguageSet = { - language: Language.en.key + language: Language.en.key, + spellchecker: { + enabled: true + } } const notification: Notification = { diff --git a/src/renderer/components/Preferences/General.vue b/src/renderer/components/Preferences/General.vue index 824ec667..178bd653 100644 --- a/src/renderer/components/Preferences/General.vue +++ b/src/renderer/components/Preferences/General.vue @@ -29,10 +29,6 @@ - - -

{{ $t('preferences.general.other.spellcheck.notice') }}

-
@@ -109,20 +105,6 @@ export default { launch: value }) } - }, - other_spellcheck: { - get() { - return this.$store.state.Preferences.General.general.other.spellcheck - }, - set(value) { - this.$store - .dispatch('Preferences/General/updateOther', { - spellcheck: value - }) - .then(() => { - this.confirm() - }) - } } }, created() { @@ -132,23 +114,6 @@ export default { type: 'error' }) }) - }, - methods: { - confirm() { - this.$confirm( - this.$t('preferences.general.other.spellcheck.confirm.message'), - this.$t('preferences.general.other.spellcheck.confirm.title'), - { - confirmButtonText: this.$t('preferences.general.other.spellcheck.confirm.ok'), - cancelButtonText: this.$t('preferences.general.other.spellcheck.confirm.cancel'), - type: 'warning' - } - ) - .then(() => { - this.$store.dispatch('Preferences/General/relaunch') - }) - .catch(() => {}) - } } } diff --git a/src/renderer/components/Preferences/Language.vue b/src/renderer/components/Preferences/Language.vue index 95475fb9..45986c8d 100644 --- a/src/renderer/components/Preferences/Language.vue +++ b/src/renderer/components/Preferences/Language.vue @@ -2,13 +2,21 @@

{{ $t('preferences.language.title') }}

- +

{{ $t('preferences.language.language.title') }}

+

{{ $t('preferences.language.notice') }}

+ +

{{ $t('preferences.language.spellchecker.title') }}

+ + +

{{ $t('preferences.language.notice') }}

+
+
@@ -50,6 +58,16 @@ export default { this.confirm() }) } + }, + spellcheck: { + get() { + return this.$store.state.Preferences.Language.language.spellchecker.enabled + }, + set(value) { + this.$store.dispatch('Preferences/Language/toggleSpellchecker', value).then(() => { + this.confirm() + }) + } } }, created() { @@ -73,6 +91,10 @@ export default {