From c2f869b3621ae8527fd2892df47017ab882d06fc Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Wed, 27 Jul 2016 14:39:22 -0700 Subject: [PATCH 1/3] Use dispatch('setTitle') and add dispatch('resetTitle') --- src/main/dialog.js | 2 +- src/renderer/controllers/playback-controller.js | 4 ++-- src/renderer/controllers/prefs-controller.js | 5 +++-- src/renderer/main.js | 1 + 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/dialog.js b/src/main/dialog.js index e82a446e..c2cc1dcc 100644 --- a/src/main/dialog.js +++ b/src/main/dialog.js @@ -118,5 +118,5 @@ function setTitle (title) { } function resetTitle () { - setTitle(config.APP_WINDOW_TITLE) + window.main.dispatch('resetTitle') } diff --git a/src/renderer/controllers/playback-controller.js b/src/renderer/controllers/playback-controller.js index 8a84cefa..188483ce 100644 --- a/src/renderer/controllers/playback-controller.js +++ b/src/renderer/controllers/playback-controller.js @@ -242,7 +242,7 @@ module.exports = class PlaybackController { } // otherwise, play the video - state.window.title = torrentSummary.files[state.playing.fileIndex].name + dispatch('setTitle', torrentSummary.files[state.playing.fileIndex].name) this.update() ipcRenderer.send('onPlayerOpen') @@ -274,7 +274,7 @@ module.exports = class PlaybackController { else console.error('Unknown state.playing.result', state.playing.result) // Reset the window contents back to the home screen - state.window.title = this.config.APP_WINDOW_TITLE + dispatch('resetTitle') state.playing = State.getDefaultPlayState() state.server = null diff --git a/src/renderer/controllers/prefs-controller.js b/src/renderer/controllers/prefs-controller.js index 66bc0093..cdd0c297 100644 --- a/src/renderer/controllers/prefs-controller.js +++ b/src/renderer/controllers/prefs-controller.js @@ -1,3 +1,4 @@ +const {dispatch} = require('../lib/dispatcher') const State = require('../lib/state') // Controls the Preferences screen @@ -14,14 +15,14 @@ module.exports = class PrefsController { url: 'preferences', onbeforeload: function (cb) { // initialize preferences - state.window.title = 'Preferences' + dispatch('setTitle', 'Preferences') state.unsaved = Object.assign(state.unsaved || {}, {prefs: state.saved.prefs || {}}) cb() }, onbeforeunload: (cb) => { // save state after preferences this.save() - state.window.title = this.config.APP_WINDOW_TITLE + dispatch('resetTitle') cb() } }) diff --git a/src/renderer/main.js b/src/renderer/main.js index f79cb007..011b0240 100644 --- a/src/renderer/main.js +++ b/src/renderer/main.js @@ -219,6 +219,7 @@ const dispatchHandlers = { 'setDimensions': setDimensions, 'toggleFullScreen': (setTo) => ipcRenderer.send('toggleFullScreen', setTo), 'setTitle': (title) => { state.window.title = title }, + 'resetTitle': () => { state.window.title = config.APP_WINDOW_TITLE }, // Everything else 'onOpen': onOpen, From 112600f5c33ee8147c62426cf045d014948e24a4 Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Wed, 27 Jul 2016 14:44:30 -0700 Subject: [PATCH 2/3] Set video title when opening VLC Fix #700 The title is set with the `--meta-title` flag to VLC. --- src/main/dialog.js | 1 - src/main/ipc.js | 4 ++-- src/renderer/controllers/media-controller.js | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/dialog.js b/src/main/dialog.js index c2cc1dcc..964af049 100644 --- a/src/main/dialog.js +++ b/src/main/dialog.js @@ -8,7 +8,6 @@ module.exports = { var electron = require('electron') -var config = require('../config') var log = require('./log') var windows = require('./windows') diff --git a/src/main/ipc.js b/src/main/ipc.js index 99b76a6a..eb4ba876 100644 --- a/src/main/ipc.js +++ b/src/main/ipc.js @@ -115,8 +115,8 @@ function init () { }) }) - ipc.on('vlcPlay', function (e, url) { - var args = ['--play-and-exit', '--video-on-top', '--no-video-title-show', '--quiet', url] + ipc.on('vlcPlay', function (e, url, title) { + var args = ['--play-and-exit', '--video-on-top', '--no-video-title-show', '--quiet', `--meta-title=${title}`, url] log('Running vlc ' + args.join(' ')) vlc.spawn(args, function (err, proc) { diff --git a/src/renderer/controllers/media-controller.js b/src/renderer/controllers/media-controller.js index 785b168b..1de07781 100644 --- a/src/renderer/controllers/media-controller.js +++ b/src/renderer/controllers/media-controller.js @@ -43,7 +43,7 @@ module.exports = class MediaController { } vlcPlay () { - ipcRenderer.send('vlcPlay', this.state.server.localURL) + ipcRenderer.send('vlcPlay', this.state.server.localURL, this.state.window.title) this.state.playing.location = 'vlc' } From c5ed5fabd8d30961bbf81f071cd5a396c8b16b4e Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Wed, 27 Jul 2016 15:51:19 -0700 Subject: [PATCH 3/3] Fix typo based on @mathiasvr's feedback --- src/main/dialog.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/dialog.js b/src/main/dialog.js index 964af049..b1ef94a8 100644 --- a/src/main/dialog.js +++ b/src/main/dialog.js @@ -117,5 +117,5 @@ function setTitle (title) { } function resetTitle () { - window.main.dispatch('resetTitle') + windows.main.dispatch('resetTitle') }