Skip to content

Commit f2ad88c

Browse files
committed
feat: toggle tab bar and working set from sidebar
1 parent 72a34b2 commit f2ad88c

File tree

4 files changed

+54
-2
lines changed

4 files changed

+54
-2
lines changed

src/command/Commands.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,12 @@ define(function (require, exports, module) {
451451
/** Toggles automatic working set sorting */
452452
exports.CMD_WORKING_SORT_TOGGLE_AUTO = "cmd.sortWorkingSetToggleAuto"; // WorkingSetSort.js _handleToggleAutoSort()
453453

454+
/** Toggles working set visibility */
455+
exports.CMD_TOGGLE_SHOW_WORKING_SET = "cmd.toggleShowWorkingSet"; // SidebarView.js _handleToggleWorkingSet()
456+
457+
/** Toggles file tabs visibility */
458+
exports.CMD_TOGGLE_SHOW_FILE_TABS = "cmd.toggleShowFileTabs"; // SidebarView.js _handleToggleFileTabs()
459+
454460
/** Opens keyboard navigation UI overlay */
455461
exports.CMD_KEYBOARD_NAV_UI_OVERLAY = "cmd.keyboardNavUI"; // WorkingSetSort.js _handleToggleAutoSort()
456462

src/command/DefaultMenus.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,9 @@ define(function (require, exports, module) {
345345
splitview_menu.addMenuDivider();
346346
splitview_menu.addMenuItem(Commands.CMD_WORKING_SORT_TOGGLE_AUTO);
347347
splitview_menu.addMenuItem(Commands.FILE_SHOW_FOLDERS_FIRST);
348+
splitview_menu.addMenuDivider();
349+
splitview_menu.addMenuItem(Commands.CMD_TOGGLE_SHOW_WORKING_SET);
350+
splitview_menu.addMenuItem(Commands.CMD_TOGGLE_SHOW_FILE_TABS);
348351

349352
var project_cmenu = Menus.registerContextMenu(Menus.ContextMenuIds.PROJECT_MENU);
350353
project_cmenu.addMenuItem(Commands.FILE_NEW);
@@ -474,4 +477,4 @@ define(function (require, exports, module) {
474477
Menus.getContextMenu(Menus.ContextMenuIds.WORKING_SET_CONTEXT_MENU).on("beforeContextMenuOpen", _setMenuItemsVisible);
475478
Menus.getContextMenu(Menus.ContextMenuIds.PROJECT_MENU).on("beforeContextMenuOpen", _setMenuItemsVisible);
476479
});
477-
});
480+
});

src/nls/root/strings.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,9 @@ define({
328328
"SPLITVIEW_MENU_TOOLTIP": "Split the editor vertically or horizontally",
329329
"GEAR_MENU_TOOLTIP": "Configure Working Set",
330330

331+
"CMD_TOGGLE_SHOW_WORKING_SET": "Show Working Set",
332+
"CMD_TOGGLE_SHOW_FILE_TABS": "Show File Tab Bar",
333+
331334
"SPLITVIEW_INFO_TITLE": "Already Open",
332335
"SPLITVIEW_MULTIPANE_WARNING": "The file is already open in another pane. {APP_NAME} will soon support opening the same file in more than one pane. Until then, the file will be shown in the pane it's already open in.<br /><br />(You'll only see this message once.)",
333336

src/project/SidebarView.js

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@ define(function (require, exports, module) {
5959

6060
var _cmdSplitNone,
6161
_cmdSplitVertical,
62-
_cmdSplitHorizontal;
62+
_cmdSplitHorizontal,
63+
_cmdToggleWorkingSet,
64+
_cmdToggleFileTabs;
6365

6466
/**
6567
* @private
@@ -179,6 +181,31 @@ define(function (require, exports, module) {
179181
MainViewManager.setLayoutScheme(2, 1);
180182
}
181183

184+
/**
185+
* Handle Toggle Working Set Command
186+
* @private
187+
*/
188+
function _handleToggleWorkingSet() {
189+
const isCurrentlyHidden = PreferencesManager.get("hideWorkingSet");
190+
const willBeShown = isCurrentlyHidden;
191+
PreferencesManager.set("hideWorkingSet", !willBeShown);
192+
CommandManager.get(Commands.CMD_TOGGLE_SHOW_WORKING_SET).setChecked(willBeShown);
193+
}
194+
195+
/**
196+
* Handle Toggle File Tabs Command
197+
* @private
198+
*/
199+
function _handleToggleFileTabs() {
200+
const prefs = PreferencesManager.get("tabBar.options");
201+
const willBeShown = !prefs.showTabBar;
202+
PreferencesManager.set("tabBar.options", {
203+
showTabBar: willBeShown,
204+
numberOfTabs: prefs.numberOfTabs
205+
});
206+
CommandManager.get(Commands.CMD_TOGGLE_SHOW_FILE_TABS).setChecked(willBeShown);
207+
}
208+
182209
// Initialize items dependent on HTML DOM
183210
AppInit.htmlReady(function () {
184211
$sidebar = $("#sidebar");
@@ -246,6 +273,17 @@ define(function (require, exports, module) {
246273
// Tooltips
247274
$splitViewMenu.attr("title", Strings.GEAR_MENU_TOOLTIP);
248275

276+
_cmdToggleWorkingSet.setChecked(!PreferencesManager.get("hideWorkingSet"));
277+
_cmdToggleFileTabs.setChecked(PreferencesManager.get("tabBar.options").showTabBar);
278+
279+
// to listen for tab bar preference changes from the preferences file
280+
// because if user toggles the state of tab bar visibility either from the view menu or the preferences file
281+
// we need to update the checked state here too
282+
PreferencesManager.on("change", "tabBar.options", function () {
283+
const prefs = PreferencesManager.get("tabBar.options");
284+
_cmdToggleFileTabs.setChecked(prefs.showTabBar);
285+
});
286+
249287
// Define the preference to decide whether to hide the working set or not
250288
PreferencesManager.definePreference("hideWorkingSet", "boolean", false, {
251289
description: Strings.DESCRIPTION_HIDE_WORKING_SET
@@ -273,6 +311,8 @@ define(function (require, exports, module) {
273311
_cmdSplitNone = CommandManager.register(Strings.CMD_SPLITVIEW_NONE, Commands.CMD_SPLITVIEW_NONE, _handleSplitViewNone);
274312
_cmdSplitVertical = CommandManager.register(Strings.CMD_SPLITVIEW_VERTICAL, Commands.CMD_SPLITVIEW_VERTICAL, _handleSplitViewVertical);
275313
_cmdSplitHorizontal = CommandManager.register(Strings.CMD_SPLITVIEW_HORIZONTAL, Commands.CMD_SPLITVIEW_HORIZONTAL, _handleSplitViewHorizontal);
314+
_cmdToggleWorkingSet = CommandManager.register(Strings.CMD_TOGGLE_SHOW_WORKING_SET, Commands.CMD_TOGGLE_SHOW_WORKING_SET, _handleToggleWorkingSet);
315+
_cmdToggleFileTabs = CommandManager.register(Strings.CMD_TOGGLE_SHOW_FILE_TABS, Commands.CMD_TOGGLE_SHOW_FILE_TABS, _handleToggleFileTabs);
276316

277317
CommandManager.register(Strings.CMD_TOGGLE_SIDEBAR, Commands.VIEW_HIDE_SIDEBAR, toggle);
278318
CommandManager.register(Strings.CMD_SHOW_SIDEBAR, Commands.SHOW_SIDEBAR, show);

0 commit comments

Comments
 (0)