From 0874ba7a03e6609ad0b3df189639f7090c11b75f Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Thu, 26 Aug 2021 22:20:25 +0100 Subject: [PATCH] Add core:show-last-hidden-tab and update keymap --- .../editor-client/src/js/keymap.json | 4 ++-- .../editor-client/src/js/ui/workspaces.js | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/keymap.json b/packages/node_modules/@node-red/editor-client/src/js/keymap.json index 61ae19e1a..398bbc8aa 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/keymap.json +++ b/packages/node_modules/@node-red/editor-client/src/js/keymap.json @@ -26,8 +26,8 @@ "ctrl-g v": "core:show-version-control-tab", "ctrl-shift-l": "core:show-event-log", "ctrl-shift-p":"core:show-action-list", - "ctrl-h": "core:hide-tab", - "ctrl-shift-h": "core:toggle-tabs" + "alt-w": "core:hide-tab", + "alt-shift-w": "core:show-last-hidden-tab" }, "red-ui-sidebar-node-config": { "backspace": "core:delete-config-selection", diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js index 0df6354a4..0ed3daf54 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js @@ -21,6 +21,7 @@ RED.workspaces = (function() { var workspaceIndex = 0; var viewStack = []; + var hideStack = []; var viewStackPos = 0; @@ -30,7 +31,6 @@ RED.workspaces = (function() { } viewStack.push(id); viewStackPos = viewStack.length; - // console.warn("addToViewStack",id,viewStack); } function addWorkspace(ws,skipHistoryEntry,targetIndex) { @@ -296,6 +296,8 @@ RED.workspaces = (function() { onremove: function(tab) { if (tab.type === "tab") { workspaceTabCount--; + } else { + hideStack.push(tab.id); } RED.menu.setDisabled("menu-item-workspace-delete",activeWorkspace === 0 || workspaceTabCount <= 1); if (workspaceTabCount === 0) { @@ -323,9 +325,14 @@ RED.workspaces = (function() { } }, onhide: function(tab) { + hideStack.push(tab.id); RED.events.emit("workspace:hide",{workspace: tab.id}) }, onshow: function(tab) { + var i = hideStack.indexOf(tab.id); + if (i > -1) { + hideStack.splice(i,1); + } RED.events.emit("workspace:show",{workspace: tab.id}) }, minimumActiveTabWidth: 150, @@ -413,7 +420,10 @@ RED.workspaces = (function() { } }) }) - + RED.actions.add("core:show-last-hidden-tab", function() { + var id = hideStack.pop(); + RED.workspaces.show(id); + }) RED.actions.add("core:list-flows",function() { RED.actions.invoke("core:search","type:tab "); @@ -545,6 +555,11 @@ RED.workspaces = (function() { null, workspace_tabs.activeIndex()+1 ); + var i = hideStack.indexOf(id); + if (i > -1) { + hideStack.splice(i,1); + } + } else { return; }