diff --git a/main/menu.js b/main/menu.js index 57f81c2b..0322ee6e 100644 --- a/main/menu.js +++ b/main/menu.js @@ -17,12 +17,24 @@ var dialog = require('./dialog') var shell = require('./shell') var windows = require('./windows') var thumbnail = require('./thumbnail') +var State = require('../renderer/lib/state') -var menu +var menu, state function init () { menu = electron.Menu.buildFromTemplate(getMenuTemplate()) 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 () { @@ -263,7 +275,8 @@ function getMenuTemplate () { label: 'Open in VLC', type: 'checkbox', click: () => windows.main.dispatch('toggleOpenInVlc', getMenuItem('Open in VLC')), - enabled: true + enabled: true, + checked: state && state.saved.openInVlc } ] }, diff --git a/renderer/main.js b/renderer/main.js index b928f4e0..337ef467 100644 --- a/renderer/main.js +++ b/renderer/main.js @@ -154,11 +154,11 @@ function updateElectron () { function toggleOpenInVlc (menuItem) { var flag = menuItem.checked console.log(`toggleOpenInVlc ${flag}`) - config.OPEN_IN_VLC = flag + state.saved.openInVlc = flag; } function getOpenInVlc () { - return config.OPEN_IN_VLC + return state.saved.openInVlc } // Events from the UI never modify state directly. Instead they call dispatch()