From 2dd68338ed7470d8ae72c13a6f0200ba1a46feda Mon Sep 17 00:00:00 2001 From: AkiraFukushima Date: Wed, 1 Aug 2018 23:09:36 +0900 Subject: [PATCH 1/3] refs #461 Add toot visibility setting in preferences --- src/main/preferences.js | 3 +- .../components/Preferences/General.vue | 100 ++++++++++++------ src/renderer/store/Preferences/General.js | 20 +++- 3 files changed, 86 insertions(+), 37 deletions(-) diff --git a/src/main/preferences.js b/src/main/preferences.js index ac3482b0..3c0b1e1b 100644 --- a/src/main/preferences.js +++ b/src/main/preferences.js @@ -9,7 +9,8 @@ const Base = { }, theme: 'white', fontSize: 14, - displayNameStyle: 0 + displayNameStyle: 0, + tootVisibility: 0 }, state: { collapse: false diff --git a/src/renderer/components/Preferences/General.vue b/src/renderer/components/Preferences/General.vue index 98b6df1d..e7d8dc9b 100644 --- a/src/renderer/components/Preferences/General.vue +++ b/src/renderer/components/Preferences/General.vue @@ -34,6 +34,26 @@ +
+

Toot

+ + + + + + + +
Default Visibility: + + + + +
+

Sounds

@@ -82,6 +102,20 @@ export default { name: 'username', value: 2 } + ], + visibilities: [ + { + name: 'public', + value: 0 + }, + { + name: 'unlisted', + value: 1 + }, + { + name: 'private', + value: 2 + } ] } }, @@ -106,6 +140,14 @@ export default { this.$store.dispatch('Preferences/General/updateDisplayNameStyle', value) } }, + tootVisibility: { + get () { + return this.$store.state.Preferences.General.general.tootVisibility + }, + set (value) { + this.$store.dispatch('Preferences/General/updateTootVisibility', value) + } + }, sound_fav_rb: { get () { return this.$store.state.Preferences.General.general.sound.fav_rb @@ -146,52 +188,40 @@ export default { diff --git a/src/renderer/store/Preferences/General.js b/src/renderer/store/Preferences/General.js index fd3cd3b5..8aa33d33 100644 --- a/src/renderer/store/Preferences/General.js +++ b/src/renderer/store/Preferences/General.js @@ -10,7 +10,8 @@ const General = { }, theme: 'white', fontSize: 14, - displayNameStyle: 0 + displayNameStyle: 0, + tootVisibility: 0 }, loading: false }, @@ -94,6 +95,23 @@ const General = { commit('updateGeneral', conf.general) }) }, + updateTootVisibility ({ dispatch, commit, state }, value) { + const newGeneral = Object.assign({}, state.general, { + tootVisibility: value + }) + const config = { + general: newGeneral + } + ipcRenderer.send('save-preferences', config) + ipcRenderer.once('error-save-preferences', (event, err) => { + ipcRenderer.removeAllListeners('response-save-preferences') + }) + ipcRenderer.once('response-save-preferences', (event, conf) => { + ipcRenderer.removeAllListeners('error-save-preferences') + dispatch('App/loadPreferences', null, { root: true }) + commit('updateGeneral', conf.general) + }) + }, updateSound ({ commit, state }, sound) { commit('changeLoading', true) const newSound = Object.assign({}, state.general.sound, sound) From 8638bee417f88f3156da50461c16dbad004d8e9d Mon Sep 17 00:00:00 2001 From: AkiraFukushima Date: Wed, 1 Aug 2018 23:41:05 +0900 Subject: [PATCH 2/3] refs #461 Use constants for visibility --- src/constants/visibility.js | 18 +++++++++++ src/main/preferences.js | 3 +- .../components/Preferences/General.vue | 16 +++------- .../TimelineSpace/Modals/NewToot.vue | 11 +++---- src/renderer/store/Preferences/General.js | 3 +- .../store/TimelineSpace/Modals/NewToot.js | 30 +++++++++++++++---- 6 files changed, 56 insertions(+), 25 deletions(-) create mode 100644 src/constants/visibility.js diff --git a/src/constants/visibility.js b/src/constants/visibility.js new file mode 100644 index 00000000..a9adca12 --- /dev/null +++ b/src/constants/visibility.js @@ -0,0 +1,18 @@ +export default { + Public: { + name: 'public', + value: 0 + }, + Unlisted: { + name: 'unlisted', + value: 1 + }, + Private: { + name: 'private', + value: 2 + }, + Direct: { + name: 'direct', + value: 3 + } +} diff --git a/src/main/preferences.js b/src/main/preferences.js index 3c0b1e1b..2f8ceddf 100644 --- a/src/main/preferences.js +++ b/src/main/preferences.js @@ -1,5 +1,6 @@ import storage from 'electron-json-storage' import objectAssignDeep from 'object-assign-deep' +import Visibility from '../constants/visibility' const Base = { general: { @@ -10,7 +11,7 @@ const Base = { theme: 'white', fontSize: 14, displayNameStyle: 0, - tootVisibility: 0 + tootVisibility: Visibility.Public.value }, state: { collapse: false diff --git a/src/renderer/components/Preferences/General.vue b/src/renderer/components/Preferences/General.vue index e7d8dc9b..de571754 100644 --- a/src/renderer/components/Preferences/General.vue +++ b/src/renderer/components/Preferences/General.vue @@ -84,6 +84,7 @@