From d3322090a18f55ff52856f06feb10a91b75e64ce Mon Sep 17 00:00:00 2001 From: Guillermo Rauch Date: Thu, 7 Jul 2016 06:31:03 -0700 Subject: [PATCH] add support for editing preferences with cmd+, (#52) --- app/hyperterm.js | 16 ++++++++++++++++ menu.js | 9 +++++++++ 2 files changed, 25 insertions(+) diff --git a/app/hyperterm.js b/app/hyperterm.js index 6c83ce16..5c8a409e 100644 --- a/app/hyperterm.js +++ b/app/hyperterm.js @@ -258,6 +258,7 @@ export default class HyperTerm extends Component { this.rpc.on('reset font size', this.resetFontSize); this.rpc.on('update available', this.onUpdateAvailable); + this.rpc.on('preferences', this.editPreferences.bind(this)); } clearCurrentTerm () { @@ -273,6 +274,21 @@ export default class HyperTerm extends Component { }); } + editPreferences () { + this.requestTab(); + const onsession = ({ uid: _uid }) => { + const ondata = ({ uid }) => { + if (uid !== _uid) return; + this.rpc.removeListener('data', ondata); + this.rpc.emit('data', { uid, data: '# Attempting to open ~/.hyperterm.js with your $EDITOR\n' + + '# If this doesn\'t work, open it manually with your favorite editor!\n' + + '$EDITOR ~/.hyperterm.js\n' }); + }; + this.rpc.on('data', ondata); + }; + this.rpc.once('new session', onsession); + } + moveTo (n) { if (this.state.sessions[n]) { this.setActive(n); diff --git a/menu.js b/menu.js index cc380eef..5d222767 100644 --- a/menu.js +++ b/menu.js @@ -15,6 +15,15 @@ module.exports = function createMenu ({ createWindow }) { { role: 'about' }, + { + label: 'Preferences...', + accelerator: 'Cmd+,', + click (item, focusedWindow) { + if (focusedWindow) { + focusedWindow.rpc.emit('preferences'); + } + } + }, { type: 'separator' },