persisting and reloading "Open in VLC" menu item state.
This commit is contained in:
17
main/menu.js
17
main/menu.js
@@ -17,12 +17,24 @@ var dialog = require('./dialog')
|
|||||||
var shell = require('./shell')
|
var shell = require('./shell')
|
||||||
var windows = require('./windows')
|
var windows = require('./windows')
|
||||||
var thumbnail = require('./thumbnail')
|
var thumbnail = require('./thumbnail')
|
||||||
|
var State = require('../renderer/lib/state')
|
||||||
|
|
||||||
var menu
|
var menu, state
|
||||||
|
|
||||||
function init () {
|
function init () {
|
||||||
menu = electron.Menu.buildFromTemplate(getMenuTemplate())
|
menu = electron.Menu.buildFromTemplate(getMenuTemplate())
|
||||||
electron.Menu.setApplicationMenu(menu)
|
electron.Menu.setApplicationMenu(menu)
|
||||||
|
|
||||||
|
State.load(onState)
|
||||||
|
}
|
||||||
|
|
||||||
|
function onState (err, _state) {
|
||||||
|
if (err) return onError(err)
|
||||||
|
state = _state
|
||||||
|
|
||||||
|
// Refresh menu
|
||||||
|
menu = electron.Menu.buildFromTemplate(getMenuTemplate())
|
||||||
|
electron.Menu.setApplicationMenu(menu)
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPlayerClose () {
|
function onPlayerClose () {
|
||||||
@@ -263,7 +275,8 @@ function getMenuTemplate () {
|
|||||||
label: 'Open in VLC',
|
label: 'Open in VLC',
|
||||||
type: 'checkbox',
|
type: 'checkbox',
|
||||||
click: () => windows.main.dispatch('toggleOpenInVlc', getMenuItem('Open in VLC')),
|
click: () => windows.main.dispatch('toggleOpenInVlc', getMenuItem('Open in VLC')),
|
||||||
enabled: true
|
enabled: true,
|
||||||
|
checked: state && state.saved.openInVlc
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -154,11 +154,11 @@ function updateElectron () {
|
|||||||
function toggleOpenInVlc (menuItem) {
|
function toggleOpenInVlc (menuItem) {
|
||||||
var flag = menuItem.checked
|
var flag = menuItem.checked
|
||||||
console.log(`toggleOpenInVlc ${flag}`)
|
console.log(`toggleOpenInVlc ${flag}`)
|
||||||
config.OPEN_IN_VLC = flag
|
state.saved.openInVlc = flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getOpenInVlc () {
|
function getOpenInVlc () {
|
||||||
return config.OPEN_IN_VLC
|
return state.saved.openInVlc
|
||||||
}
|
}
|
||||||
|
|
||||||
// Events from the UI never modify state directly. Instead they call dispatch()
|
// Events from the UI never modify state directly. Instead they call dispatch()
|
||||||
|
|||||||
Reference in New Issue
Block a user