39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
const { dispatch } = require('../lib/dispatcher')
|
|
const { ipcRenderer } = require('electron')
|
|
|
|
// Controls the Preferences screen
|
|
module.exports = class PrefsController {
|
|
constructor (state, config) {
|
|
this.state = state
|
|
this.config = config
|
|
}
|
|
|
|
// Goes to the Preferences screen
|
|
show () {
|
|
const state = this.state
|
|
state.location.go({
|
|
url: 'preferences',
|
|
setup(cb) {
|
|
// initialize preferences
|
|
state.window.title = 'Preferences'
|
|
ipcRenderer.send('setAllowNav', false)
|
|
cb()
|
|
},
|
|
destroy: () => {
|
|
ipcRenderer.send('setAllowNav', true)
|
|
}
|
|
})
|
|
}
|
|
|
|
// Updates a single property in the saved prefs
|
|
// For example: updatePreferences('isFileHandler', true)
|
|
update (property, value) {
|
|
if (property === 'isFileHandler') ipcRenderer.send('setDefaultFileHandler', value)
|
|
else if (property === 'startup') ipcRenderer.send('setStartup', value)
|
|
|
|
this.state.saved.prefs[property] = value
|
|
dispatch('stateSaveImmediate')
|
|
dispatch('checkDownloadPath')
|
|
}
|
|
}
|