diff --git a/src/app/panels/editor-panel.js b/src/app/panels/editor-panel.js index 206ef8ab80..fd0a50f15d 100644 --- a/src/app/panels/editor-panel.js +++ b/src/app/panels/editor-panel.js @@ -190,6 +190,11 @@ class EditorPanel { ` // INIT self._adjustLayout('top', self.data._layout.top.offset) + + document.addEventListener('keydown', (e) => { + if (e.altKey && e.keyCode === 84) self.tabProxy.switchNextTab() + }) + return self._view.el } registerCommand (name, command, opts) { diff --git a/src/app/panels/tab-proxy.js b/src/app/panels/tab-proxy.js index 23b6f76167..dc731092e3 100644 --- a/src/app/panels/tab-proxy.js +++ b/src/app/panels/tab-proxy.js @@ -10,7 +10,6 @@ export class TabProxy { this.fileManager = fileManager this.appManager = appManager this.editor = editor - this.entities = {} this.data = {} this._view = {} this._handlers = {} @@ -61,6 +60,7 @@ export class TabProxy { this.appManager.deactivateOne(name) } ) + this.switchTab(name) } }) @@ -69,6 +69,37 @@ export class TabProxy { }) } + switchTab (tabName) { + if (this._handlers[tabName]) { + this._handlers[tabName].switchTo() + this._view.filetabs.activateTab(tabName) + } + } + + switchNextTab () { + const active = this._view.filetabs.active + if (active && this._handlers[active]) { + const handlers = Object.keys(this._handlers) + let i = handlers.indexOf(active) + if (i >= 0) { + i = handlers[i + 1] ? i + 1 : 0 + this.switchTab(handlers[i]) + } + } + } + + switchPreviousTab () { + const active = this._view.filetabs.active + if (active && this._handlers[active]) { + const handlers = Object.keys(this._handlers) + let i = handlers.indexOf(active) + if (i >= 0) { + i = handlers[i - 1] ? i - 1 : handlers.length - 1 + this.switchTab(handlers[i]) + } + } + } + addTab (name, switchTo, close, kind) { var slash = name.split('/') let title = name.indexOf('/') !== -1 ? slash[slash.length - 1] : name