From 37793e7e135697800f2062cff18a53e207a82bcc Mon Sep 17 00:00:00 2001 From: Boopesh Mahendran Date: Wed, 23 May 2018 18:55:38 +0530 Subject: [PATCH] Fix Issue 14346 - Disable commands on File Change (#14352) * Disable menu items on file change * Refactor the enable/disable logic --- src/extensions/default/RemoteFileAdapter/main.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/extensions/default/RemoteFileAdapter/main.js b/src/extensions/default/RemoteFileAdapter/main.js index 022946bc414..143e7ff3c75 100644 --- a/src/extensions/default/RemoteFileAdapter/main.js +++ b/src/extensions/default/RemoteFileAdapter/main.js @@ -32,6 +32,7 @@ define(function (require, exports, module) { Commands = brackets.getModule("command/Commands"), ExtensionUtils = brackets.getModule("utils/ExtensionUtils"), WorkingSetView = brackets.getModule("project/WorkingSetView"), + MainViewManager = brackets.getModule("view/MainViewManager"), Menus = brackets.getModule("command/Menus"), RemoteFile = require("RemoteFile"); @@ -56,22 +57,20 @@ define(function (require, exports, module) { * Disable context menus which are not useful for remote file */ function _setMenuItemsVisible() { - var file = WorkingSetView.getContext(), - cMenuItems = [Commands.FILE_SAVE, Commands.FILE_RENAME, Commands.NAVIGATE_SHOW_IN_FILE_TREE, Commands.NAVIGATE_SHOW_IN_OS]; + var file = MainViewManager.getCurrentlyViewedFile(MainViewManager.ACTIVE_PANE), + cMenuItems = [Commands.FILE_SAVE, Commands.FILE_RENAME, Commands.NAVIGATE_SHOW_IN_FILE_TREE, Commands.NAVIGATE_SHOW_IN_OS], + enable = (file.constructor.name !== "RemoteFile"); - if (file.constructor.name === "RemoteFile") { + // Enable or disable commands based on whether the file is a remoteFile or not. cMenuItems.forEach(function (item) { - CommandManager.get(item).setEnabled(false); + CommandManager.get(item).setEnabled(enable); }); - } else { - //Explicitly enabling save, other commands are handled by DefaultMenus.js - CommandManager.get(Commands.FILE_SAVE).setEnabled(true); - } } AppInit.htmlReady(function () { Menus.getContextMenu(Menus.ContextMenuIds.WORKING_SET_CONTEXT_MENU).on("beforeContextMenuOpen", _setMenuItemsVisible); + MainViewManager.on("currentFileChange", _setMenuItemsVisible); var protocolAdapter = { priority: 0, // Default priority