Skip to content

Commit 07eb299

Browse files
devvaannshabose
authored andcommitted
feat: toggle tab bar and working set from sidebar
1 parent ffddc25 commit 07eb299

File tree

4 files changed

+52
-1
lines changed

4 files changed

+52
-1
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: 3 additions & 0 deletions
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);

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: 40 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,30 @@ 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 isCurrentlyShown = PreferencesManager.get("showWorkingSet");
190+
PreferencesManager.set("showWorkingSet", !isCurrentlyShown);
191+
CommandManager.get(Commands.CMD_TOGGLE_SHOW_WORKING_SET).setChecked(isCurrentlyShown);
192+
}
193+
194+
/**
195+
* Handle Toggle File Tabs Command
196+
* @private
197+
*/
198+
function _handleToggleFileTabs() {
199+
const prefs = PreferencesManager.get("tabBar.options");
200+
const willBeShown = !prefs.showTabBar;
201+
PreferencesManager.set("tabBar.options", {
202+
showTabBar: willBeShown,
203+
numberOfTabs: prefs.numberOfTabs
204+
});
205+
CommandManager.get(Commands.CMD_TOGGLE_SHOW_FILE_TABS).setChecked(willBeShown);
206+
}
207+
182208
// Initialize items dependent on HTML DOM
183209
AppInit.htmlReady(function () {
184210
$sidebar = $("#sidebar");
@@ -246,6 +272,17 @@ define(function (require, exports, module) {
246272
// Tooltips
247273
$splitViewMenu.attr("title", Strings.GEAR_MENU_TOOLTIP);
248274

275+
_cmdToggleWorkingSet.setChecked(PreferencesManager.get("showWorkingSet"));
276+
_cmdToggleFileTabs.setChecked(PreferencesManager.get("tabBar.options").showTabBar);
277+
278+
// to listen for tab bar preference changes from the preferences file
279+
// because if user toggles the state of tab bar visibility either from the view menu or the preferences file
280+
// we need to update the checked state here too
281+
PreferencesManager.on("change", "tabBar.options", function () {
282+
const prefs = PreferencesManager.get("tabBar.options");
283+
_cmdToggleFileTabs.setChecked(prefs.showTabBar);
284+
});
285+
249286
// Define the preference to decide whether to show the working set or not
250287
PreferencesManager.definePreference("showWorkingSet", "boolean", true, {
251288
description: Strings.DESCRIPTION_SHOW_WORKING_SET
@@ -273,6 +310,8 @@ define(function (require, exports, module) {
273310
_cmdSplitNone = CommandManager.register(Strings.CMD_SPLITVIEW_NONE, Commands.CMD_SPLITVIEW_NONE, _handleSplitViewNone);
274311
_cmdSplitVertical = CommandManager.register(Strings.CMD_SPLITVIEW_VERTICAL, Commands.CMD_SPLITVIEW_VERTICAL, _handleSplitViewVertical);
275312
_cmdSplitHorizontal = CommandManager.register(Strings.CMD_SPLITVIEW_HORIZONTAL, Commands.CMD_SPLITVIEW_HORIZONTAL, _handleSplitViewHorizontal);
313+
_cmdToggleWorkingSet = CommandManager.register(Strings.CMD_TOGGLE_SHOW_WORKING_SET, Commands.CMD_TOGGLE_SHOW_WORKING_SET, _handleToggleWorkingSet);
314+
_cmdToggleFileTabs = CommandManager.register(Strings.CMD_TOGGLE_SHOW_FILE_TABS, Commands.CMD_TOGGLE_SHOW_FILE_TABS, _handleToggleFileTabs);
276315

277316
CommandManager.register(Strings.CMD_TOGGLE_SIDEBAR, Commands.VIEW_HIDE_SIDEBAR, toggle);
278317
CommandManager.register(Strings.CMD_SHOW_SIDEBAR, Commands.SHOW_SIDEBAR, show);

0 commit comments

Comments
 (0)