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

Unified Diff: chrome/browser/resources/file_manager/js/file_manager.js

Issue 7785026: Fixed update mechanism for the file manager preview. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Missed semicolon. Created 9 years, 4 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 | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/file_manager/js/file_manager.js
diff --git a/chrome/browser/resources/file_manager/js/file_manager.js b/chrome/browser/resources/file_manager/js/file_manager.js
index 96a8006f7495d711e88eda74c538a07b5c5c0354..23dcd48247fc121e4bd8153782a9de30a3aef471 100644
--- a/chrome/browser/resources/file_manager/js/file_manager.js
+++ b/chrome/browser/resources/file_manager/js/file_manager.js
@@ -935,7 +935,8 @@ FileManager.prototype = {
'dblclick', this.onDetailDoubleClick_.bind(this));
this.grid_.selectionModel.addEventListener(
'change', this.onSelectionChanged_.bind(this));
-
+ this.grid_.selectionModel.addEventListener(
+ 'leadIndexChange', this.onLeadIndexChanged_.bind(this));
cr.ui.contextMenuHandler.addContextMenuProperty(this.grid_);
this.grid_.contextMenu = this.fileContextMenu_;
this.grid_.addEventListener('mousedown',
@@ -974,6 +975,8 @@ FileManager.prototype = {
'dblclick', this.onDetailDoubleClick_.bind(this));
this.table_.selectionModel.addEventListener(
'change', this.onSelectionChanged_.bind(this));
+ this.table_.selectionModel.addEventListener(
+ 'leadIndexChange', this.onLeadIndexChanged_.bind(this));
cr.ui.contextMenuHandler.addContextMenuProperty(this.table_);
this.table_.contextMenu = this.fileContextMenu_;
@@ -1486,7 +1489,6 @@ FileManager.prototype = {
var selection = this.selection = {
entries: [],
urls: [],
- leadEntry: null,
totalCount: 0,
fileCount: 0,
directoryCount: 0,
@@ -1543,13 +1545,6 @@ FileManager.prototype = {
}
}
- var leadIndex = this.currentList_.selectionModel.leadIndex;
- if (leadIndex > -1) {
- selection.leadEntry = this.dataModel_.item(leadIndex);
- } else {
- selection.leadEntry = selection.entries[0];
- }
-
var self = this;
function cacheNextFile(fileEntry) {
@@ -1976,28 +1971,27 @@ FileManager.prototype = {
// selcted.
this.previewImage_.classList.remove('multiple-selected');
- if (!this.selection.totalCount) {
+ var leadEntry = this.getLeadEntry();
+ if (!leadEntry) {
this.previewFilename_.textContent = '';
return;
}
-
- var previewName = this.selection.leadEntry.name;
+ var previewName = leadEntry.name;
if (this.currentDirEntry_.name == '')
previewName = this.getLabelForRootPath_(previewName);
this.previewFilename_.textContent = previewName;
- var iconType = this.getIconType(this.selection.leadEntry);
+ var iconType = this.getIconType(leadEntry);
if (iconType == 'image') {
if (fileManager.selection.totalCount > 1)
this.previewImage_.classList.add('multiple-selected');
}
var self = this;
- var leadEntry = this.selection.leadEntry;
this.getThumbnailURL(leadEntry, function(iconType, url) {
- if (self.selection.leadEntry != leadEntry) {
+ if (self.getLeadEntry() != leadEntry) {
// Selection has changed since we asked, nevermind.
return;
}
@@ -2011,10 +2005,10 @@ FileManager.prototype = {
}
});
- this.getDescription(this.selection.leadEntry, function(desc){
+ this.getDescription(this.getLeadEntry(), function(desc) {
self.clearDescription_();
- if (self.selection.leadEntry != leadEntry) {
+ if (self.getLeadEntry() != leadEntry) {
return;
}
@@ -2040,6 +2034,15 @@ FileManager.prototype = {
});
};
+ FileManager.prototype.getLeadEntry = function() {
+ var leadIndex = this.currentList_.selectionModel.leadIndex;
+ if (leadIndex > -1) {
+ return this.dataModel_.item(leadIndex);
+ } else {
rginda 2011/08/31 18:04:13 else after return.
+ return null;
+ }
+ };
+
FileManager.prototype.formatMetadataValue_ = function(obj) {
if (typeof obj.type == 'undefined') {
return obj.value;
@@ -2439,13 +2442,13 @@ FileManager.prototype = {
*/
FileManager.prototype.onSelectionChanged_ = function(event) {
this.summarizeSelection_();
- this.updatePreview_();
if (this.dialogType_ == FileManager.DialogType.SELECT_SAVEAS_FILE) {
// If this is a save-as dialog, copy the selected file into the filename
// input text box.
- if (this.selection.leadEntry && this.selection.leadEntry.isFile)
- this.filenameInput_.value = this.selection.leadEntry.name;
+ var leadEntry = this.getLeadEntry();
+ if (leadEntry && leadEntry.isFile)
+ this.filenameInput_.value = leadEntry.name;
}
this.updateOkButton_();
@@ -2493,6 +2496,15 @@ FileManager.prototype = {
}
};
+ /**
+ * Update the UI then the lead item changes.
+ *
+ * @param {cr.Event} event The change event.
+ */
+ FileManager.prototype.onLeadIndexChanged_ = function(event) {
+ this.updatePreview_();
+ };
+
FileManager.prototype.updateOkButton_ = function(event) {
var selectable;
@@ -2535,7 +2547,7 @@ FileManager.prototype = {
return;
}
- var entry = this.selection.leadEntry;
+ var entry = this.getLeadEntry();
if (!entry) {
console.log('Invalid selection');
return;
@@ -3023,11 +3035,12 @@ FileManager.prototype = {
break;
case 13: // Enter => Change directory or complete dialog.
- if (this.selection.totalCount == 1 &&
- this.selection.leadEntry.isDirectory &&
+ var leadEntry = this.getLeadEntry();
rginda 2011/08/31 18:04:13 If you have some items selected and press enter, i
+ if (leadEntry &&
+ leadEntry.isDirectory &&
this.dialogType_ != FileManager.SELECT_FOLDER) {
event.preventDefault();
- this.onDirectoryAction(this.selection.leadEntry);
+ this.onDirectoryAction(leadEntry);
} else if (!this.okButton_.disabled) {
event.preventDefault();
this.onOk_();
@@ -3225,11 +3238,13 @@ FileManager.prototype = {
if (ary.length > 1)
throw new Error('Too many files selected!');
+ var selectedEntry = this.dataModel_.item(selectedIndexes[0]);
+
if (this.dialogType_ == FileManager.DialogType.SELECT_FOLDER) {
- if (!this.selection.leadEntry.isDirectory)
+ if (!selectedEntry.isDirectory)
throw new Error('Selected entry is not a folder!');
} else if (this.dialogType_ == FileManager.DialogType.SELECT_OPEN_FILE) {
- if (!this.selection.leadEntry.isFile)
+ if (!selectedEntry.isFile)
throw new Error('Selected entry is not a file!');
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698