refs #341 Save collapse status and read it after launched

This commit is contained in:
AkiraFukushima 2018-07-03 23:02:16 +09:00
parent 2240df3588
commit 7ca65e8922
4 changed files with 56 additions and 12 deletions

View File

@ -645,6 +645,27 @@ ipcMain.on('save-preferences', (event, data) => {
})
})
ipcMain.on('change-collapse', (event, value) => {
const preferences = new Preferences(preferencesDBPath)
preferences.update(
{
state: {
collapse: value
}
})
.catch((err) => {
log.error(err)
})
})
ipcMain.on('get-collapse', (event, _) => {
const preferences = new Preferences(preferencesDBPath)
preferences.load()
.then((conf) => {
event.sender.send('response-get-collapse', conf.state.collapse)
})
})
// hashtag
ipcMain.on('save-hashtag', (event, tag) => {
const hashtags = new Hashtags(hashtagsDB)

View File

@ -10,6 +10,9 @@ const Base = {
theme: 'white',
fontSize: 14,
displayNameStyle: 0
},
state: {
collapse: false
}
}
@ -47,4 +50,11 @@ export default class Preferences {
})
})
}
async update (obj) {
const current = await this.load()
const data = objectAssignDeep({}, current, obj)
const result = await this.save(data)
return result
}
}

View File

@ -18,10 +18,10 @@
<span>{{ account.domain }}</span>
</div>
<div class="collapse">
<el-button type="text" class="release-collapse" @click="collapse = false" v-if="collapse">
<el-button type="text" class="release-collapse" @click="releaseCollapse" v-if="collapse">
<i class="el-icon-arrow-right"></i>
</el-button>
<el-button type="text" class="do-collapse" @click="collapse = true" v-else>
<el-button type="text" class="do-collapse" @click="doCollapse" v-else>
<i class="el-icon-arrow-left"></i>
</el-button>
</div>
@ -96,16 +96,12 @@ export default {
unreadLocalTimeline: state => state.TimelineSpace.SideMenu.unreadLocalTimeline,
lists: state => state.TimelineSpace.SideMenu.lists,
themeColor: state => state.App.theme.side_menu_color,
overrideActivePath: state => state.TimelineSpace.SideMenu.overrideActivePath
}),
collapse: {
get () {
return this.$store.state.TimelineSpace.SideMenu.collapse
},
set (value) {
this.$store.commit('TimelineSpace/SideMenu/changeCollapse', value)
}
}
overrideActivePath: state => state.TimelineSpace.SideMenu.overrideActivePath,
collapse: state => state.TimelineSpace.SideMenu.collapse
})
},
created () {
this.$store.dispatch('TimelineSpace/SideMenu/readCollapse')
},
methods: {
activeRoute () {
@ -124,6 +120,12 @@ export default {
shell.openExternal(this.account.baseURL + '/settings/profile')
break
}
},
doCollapse () {
this.$store.dispatch('TimelineSpace/SideMenu/changeCollapse', true)
},
releaseCollapse () {
this.$store.dispatch('TimelineSpace/SideMenu/changeCollapse', false)
}
}
}

View File

@ -1,4 +1,5 @@
import Mastodon from 'megalodon'
import { ipcRenderer } from 'electron'
const SideMenu = {
namespaced: true,
@ -47,6 +48,16 @@ const SideMenu = {
commit('changeUnreadHomeTimeline', false)
commit('changeUnreadNotifications', false)
commit('changeUnreadLocalTimeline', false)
},
changeCollapse ({ commit }, value) {
commit('changeCollapse', value)
ipcRenderer.send('change-collapse', value)
},
readCollapse ({ commit }) {
ipcRenderer.send('get-collapse')
ipcRenderer.once('response-get-collapse', (event, value) => {
commit('changeCollapse', value)
})
}
}
}