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

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

Issue 7063007: Revert 86065 - Move sorting logic from table to list. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 7 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 | chrome/browser/resources/file_manager/main.html » ('j') | 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
===================================================================
--- chrome/browser/resources/file_manager/js/file_manager.js (revision 86337)
+++ chrome/browser/resources/file_manager/js/file_manager.js (working copy)
@@ -518,18 +518,20 @@
// Always sharing the data model between the detail/thumb views confuses
// them. Instead we maintain this bogus data model, and hook it up to the
// view that is not in use.
- this.emptyDataModel_ = new cr.ui.ArrayDataModel([]);
+ this.emptyDataModel_ = new cr.ui.table.TableDataModel([]);
- this.dataModel_ = new cr.ui.ArrayDataModel([]);
+ this.dataModel_ = new cr.ui.table.TableDataModel([]);
this.dataModel_.sort('name');
+ this.dataModel_.addEventListener('sorted',
+ this.onDataModelSorted_.bind(this));
this.dataModel_.prepareSort = this.prepareSort_.bind(this);
if (this.dialogType_ == FileManager.DialogType.SELECT_OPEN_FILE ||
this.dialogType_ == FileManager.DialogType.SELECT_OPEN_FOLDER ||
this.dialogType_ == FileManager.DialogType.SELECT_SAVEAS_FILE) {
- this.selectionModelClass_ = cr.ui.ListSingleSelectionModel;
+ this.selectionModelClass_ = cr.ui.table.TableSingleSelectionModel;
} else {
- this.selectionModelClass_ = cr.ui.ListSelectionModel;
+ this.selectionModelClass_ = cr.ui.table.TableSelectionModel;
}
this.initTable_();
@@ -1424,6 +1426,16 @@
};
/**
+ * Invoked by the table dataModel after a sort completes.
+ *
+ * We use this hook to make sure selected files stay visible after a sort.
+ */
+ FileManager.prototype.onDataModelSorted_ = function() {
+ var i = this.currentList_.selectionModel.leadIndex;
+ this.currentList_.scrollIntoView(i);
+ }
+
+ /**
* Update the selection summary UI when the selection summarization completes.
*/
FileManager.prototype.onSelectionSummarized_ = function() {
@@ -1556,6 +1568,9 @@
function onReadSome(entries) {
if (entries.length == 0) {
+ if (self.dataModel_.sortStatus.field != 'name')
+ self.dataModel_.updateIndex(0);
+
if (opt_callback)
opt_callback();
return;
@@ -1601,6 +1616,7 @@
var spliceArgs = [].slice.call(this.rootEntries_);
spliceArgs.unshift(0, 0); // index, deleteCount
self.dataModel_.splice.apply(self.dataModel_, spliceArgs);
+ self.dataModel_.updateIndex(0);
if (opt_callback)
opt_callback();
« no previous file with comments | « no previous file | chrome/browser/resources/file_manager/main.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698