Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(151)

Unified Diff: ui/file_manager/file_manager/foreground/js/file_manager.js

Issue 243013009: Show drive-related settings on gear menu only when Ctrl key is pressed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and improve variable names. Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | ui/file_manager/file_manager/foreground/js/file_manager_commands.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/file_manager/file_manager/foreground/js/file_manager.js
diff --git a/ui/file_manager/file_manager/foreground/js/file_manager.js b/ui/file_manager/file_manager/foreground/js/file_manager.js
index b7d5b91c59ac4f7fff7a2c5999df378526452728..428f018e1d4bb52f043f5214929bac40fc30526b 100644
--- a/ui/file_manager/file_manager/foreground/js/file_manager.js
+++ b/ui/file_manager/file_manager/foreground/js/file_manager.js
@@ -33,6 +33,28 @@ function FileManager() {
this.pressingTab_ = false;
/**
+ * True while a user is pressing <Ctrl>.
+ *
+ * TODO(fukino): This key is used only for controlling gear menu, so it
+ * shoudl be moved to GearMenu class. crbug.com/366032.
+ *
+ * @type {boolean}
+ * @private
+ */
+ this.pressingCtrl_ = false;
+
+ /**
+ * True if shown gear menu is in secret mode.
+ *
+ * TODO(fukino): The state of gear menu should be moved to GearMenu class.
+ * crbug.com/366032.
+ *
+ * @type {boolean}
+ * @private
+ */
+ this.isSecretGearMenuShown_ = false;
+
+ /**
* SelectionHandler.
* @type {SelectionHandler}
* @private
@@ -438,8 +460,7 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
this.gearButton_ = this.dialogDom_.querySelector('#gear-button');
this.gearButton_.addEventListener('menushow',
- this.refreshRemainingSpace_.bind(this,
- false /* Without loading caption. */));
+ this.onShowGearMenu_.bind(this));
chrome.fileBrowserPrivate.onDesktopChanged.addListener(function() {
this.updateVisitDesktopMenus_();
this.ui_.updateProfileBadge();
@@ -501,6 +522,19 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
window.close();
};
+ FileManager.prototype.onShowGearMenu_ = function() {
+ this.refreshRemainingSpace_(false); /* Without loading caption. */
+
+ // If the menu is opened while CTRL key pressed, secret menu itemscan be
+ // shown.
+ this.isSecretGearMenuShown_ = this.pressingCtrl_;
+
+ // Update view of drive-related settings.
+ this.commandHandler.updateAvailability();
+ this.document_.getElementById('drive-separator').hidden =
+ !this.shouldShowDriveSettings();
+ };
+
/**
* One-time initialization of commands.
* @private
@@ -810,13 +844,10 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
this.dialogContainer_ = this.dialogDom_.querySelector('.dialog-container');
- this.syncButton = this.dialogDom_.querySelector('#drive-sync-settings');
- this.syncButton.addEventListener('click', this.onDrivePrefClick_.bind(
- this, 'cellularDisabled', false /* not inverted */));
-
- this.hostedButton = this.dialogDom_.querySelector('#drive-hosted-settings');
- this.hostedButton.addEventListener('click', this.onDrivePrefClick_.bind(
- this, 'hostedFilesDisabled', true /* inverted */));
+ this.syncButton = this.dialogDom_.querySelector(
+ '#gear-menu-drive-sync-settings');
+ this.hostedButton = this.dialogDom_.querySelector(
+ '#gear-menu-drive-hosted-settings');
this.detailViewButton_ =
this.dialogDom_.querySelector('#detail-view');
@@ -1703,6 +1734,15 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
};
/**
+ * Check if the drive-related setting items should be shown on currently
+ * displayed gear menu.
+ * @return {boolean} True if those setting items should be shown.
+ */
+ FileManager.prototype.shouldShowDriveSettings = function() {
+ return this.isOnDrive() && this.isSecretGearMenuShown_;
+ };
+
+ /**
* Overrides default handling for clicks on hyperlinks.
* In a packaged apps links with targer='_blank' open in a new tab by
* default, other links do not open at all.
@@ -1792,7 +1832,7 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
else
self.syncButton.removeAttribute('checked');
- if (self.hostedButton.hasAttribute('checked') !=
+ if (self.hostedButton.hasAttribute('checked') ===
prefs.hostedFilesDisabled && self.isOnDrive()) {
self.directoryModel_.rescan();
}
@@ -2186,11 +2226,6 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
* @private
*/
FileManager.prototype.updateGearMenu_ = function() {
- var hideItemsForDrive = !this.isOnDrive();
- this.syncButton.hidden = hideItemsForDrive;
- this.hostedButton.hidden = hideItemsForDrive;
- this.document_.getElementById('drive-separator').hidden =
- hideItemsForDrive;
this.refreshRemainingSpace_(true); // Show loading caption.
};
@@ -2860,6 +2895,8 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
FileManager.prototype.onKeyDown_ = function(event) {
if (event.keyCode === 9) // Tab
this.pressingTab_ = true;
+ if (event.keyCode === 17) // Ctrl
+ this.pressingCtrl_ = true;
if (event.srcElement === this.renameInput_) {
// Ignore keydown handler in the rename input box.
@@ -2891,6 +2928,8 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
FileManager.prototype.onKeyUp_ = function(event) {
if (event.keyCode === 9) // Tab
this.pressingTab_ = false;
+ if (event.keyCode == 17) // Ctrl
+ this.pressingCtrl_ = false;
};
/**
@@ -3369,22 +3408,27 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
};
/**
- * Handler invoked on preference setting in drive context menu.
- *
- * @param {string} pref The preference to alter.
- * @param {boolean} inverted Invert the value if true.
- * @param {Event} event The click event.
- * @private
+ * Toggle whether mobile data is used for sync.
*/
- FileManager.prototype.onDrivePrefClick_ = function(pref, inverted, event) {
- var newValue = !event.target.hasAttribute('checked');
- if (newValue)
- event.target.setAttribute('checked', 'checked');
- else
- event.target.removeAttribute('checked');
+ FileManager.prototype.toggleDriveSyncSettings = function() {
+ // If checked, the sync is disabled.
+ var nowCellularDisabled = this.syncButton.hasAttribute('checked');
+ var changeInfo = {cellularDisabled: !nowCellularDisabled};
+ chrome.fileBrowserPrivate.setPreferences(changeInfo);
+ };
+ /**
+ * Toggle whether Google Docs files are shown.
+ */
+ FileManager.prototype.toggleDriveHostedSettings = function() {
+ // If checked, showing drive hosted files is enabled.
+ var nowHostedFilesEnabled = this.hostedButton.hasAttribute('checked');
+ var nowHostedFilesDisabled = !nowHostedFilesEnabled;
+ /*
+ var changeInfo = {hostedFilesDisabled: !nowHostedFilesDisabled};
+ */
var changeInfo = {};
- changeInfo[pref] = inverted ? !newValue : newValue;
+ changeInfo['hostedFilesDisabled'] = !nowHostedFilesDisabled;
chrome.fileBrowserPrivate.setPreferences(changeInfo);
};
« no previous file with comments | « no previous file | ui/file_manager/file_manager/foreground/js/file_manager_commands.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698