From d62a2bc24d63dd6a00d7ea5781e25ff545b55c3d Mon Sep 17 00:00:00 2001
From: AkiraFukushima
Date: Wed, 18 Apr 2018 23:35:35 +0900
Subject: [PATCH] refs #186 Save display name style setting
---
package-lock.json | 5 ++
package.json | 1 +
src/main/preferences.js | 7 +-
.../components/Preferences/General.vue | 84 +++++++++++++++++--
src/renderer/store/App.js | 2 +-
src/renderer/store/Preferences/General.js | 20 ++++-
6 files changed, 107 insertions(+), 12 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 32007b26..671fee4f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11039,6 +11039,11 @@
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
+ "object-assign-deep": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/object-assign-deep/-/object-assign-deep-0.4.0.tgz",
+ "integrity": "sha512-54Uvn3s+4A/cMWx9tlRez1qtc7pN7pbQ+Yi7mjLjcBpWLlP+XbSHiHbQW6CElDiV4OvuzqnMrBdkgxI1mT8V/Q=="
+ },
"object-component": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
diff --git a/package.json b/package.json
index c914c047..5e9388e0 100644
--- a/package.json
+++ b/package.json
@@ -92,6 +92,7 @@
"mastodon-api": "^1.3.0",
"moment": "^2.21.0",
"nedb": "^1.8.0",
+ "object-assign-deep": "^0.4.0",
"simplayer": "0.0.8",
"vue": "^2.3.3",
"vue-awesome": "^2.3.5",
diff --git a/src/main/preferences.js b/src/main/preferences.js
index 072c171b..69ea89db 100644
--- a/src/main/preferences.js
+++ b/src/main/preferences.js
@@ -1,5 +1,5 @@
-import empty from 'is-empty'
import storage from 'electron-json-storage'
+import objectAssignDeep from 'object-assign-deep'
const Base = {
general: {
@@ -8,7 +8,7 @@ const Base = {
toot: true
},
theme: 'white',
- displayName: 0
+ displayNameStyle: 0
}
}
@@ -21,8 +21,7 @@ export default class Preferences {
async load () {
try {
const preferences = await this.get()
- if (empty(preferences)) return Base
- return preferences
+ return objectAssignDeep({}, Base, preferences)
} catch (err) {
return Base
}
diff --git a/src/renderer/components/Preferences/General.vue b/src/renderer/components/Preferences/General.vue
index eda6ffaf..b56298a7 100644
--- a/src/renderer/components/Preferences/General.vue
+++ b/src/renderer/components/Preferences/General.vue
@@ -1,14 +1,36 @@
General
-
-
Theme color
-
White
-
Dark
+
+
Appearance
+
+
+
+ Theme color: |
+
+ White
+ Dark
+ |
+
+
+ Display name style: |
+
+
+
+
+
+ |
+
+
+
Sounds
-
+
Favourite, Reblog action sound: |
@@ -39,6 +61,24 @@ import { mapState } from 'vuex'
export default {
name: 'general',
+ data () {
+ return {
+ nameStyles: [
+ {
+ name: 'DisplayName and username',
+ value: 0
+ },
+ {
+ name: 'DisplayName',
+ value: 1
+ },
+ {
+ name: 'username',
+ value: 2
+ }
+ ]
+ }
+ },
computed: {
...mapState({
loading: state => state.Preferences.General.loading
@@ -51,6 +91,14 @@ export default {
this.$store.dispatch('Preferences/General/updateTheme', value)
}
},
+ displayNameStyle: {
+ get () {
+ return this.$store.state.Preferences.General.general.displayNameStyle
+ },
+ set (value) {
+ this.$store.dispatch('Preferences/General/updateDisplayNameStyle', value)
+ }
+ },
sound_fav_rb: {
get () {
return this.$store.state.Preferences.General.general.sound.fav_rb
@@ -86,8 +134,28 @@ export default {