Index: ui/file_manager/file_manager/foreground/js/ui/file_grid.js |
diff --git a/ui/file_manager/file_manager/foreground/js/ui/file_grid.js b/ui/file_manager/file_manager/foreground/js/ui/file_grid.js |
index 2eb70ab96283401f5ec31b8c1e7bc089e820f641..572469c239b32274f52e2e8b40ed511d4ead4634 100644 |
--- a/ui/file_manager/file_manager/foreground/js/ui/file_grid.js |
+++ b/ui/file_manager/file_manager/foreground/js/ui/file_grid.js |
@@ -49,23 +49,12 @@ FileGrid.decorate = function( |
self.scrollBar_ = new ScrollBar(); |
self.scrollBar_.initialize(self.parentElement, self); |
- /** |
- * Map of URL and ListItem generated at the previous update time. |
- * This is used for updating existing item synchronously. |
- * @type {Object.<string, !FileGrid.Item>} |
- * @private |
- * @const |
- */ |
- self.previousItems_ = {}; |
- |
self.itemConstructor = function(entry) { |
var item = self.ownerDocument.createElement('li'); |
FileGrid.Item.decorate( |
item, |
entry, |
- /** @type {FileGrid} */ (self), |
- self.previousItems_[entry.toURL()]); |
- self.previousItems_[entry.toURL()] = /** @type {!FileGrid.Item} */ (item); |
+ /** @type {FileGrid} */ (self)); |
return item; |
}; |
@@ -105,7 +94,9 @@ FileGrid.prototype.onThumbnailLoaded_ = function(event) { |
var box = listItem.querySelector('.img-container'); |
if (box) { |
FileGrid.setThumbnailImage_( |
- assertInstanceof(box, HTMLDivElement), event.dataUrl); |
+ assertInstanceof(box, HTMLDivElement), |
+ event.dataUrl, |
+ /* should animate */ true); |
} |
} |
}; |
@@ -121,12 +112,6 @@ FileGrid.prototype.mergeItems = function(beginIndex, endIndex) { |
this.endIndex_ = endIndex; |
if (this.listThumbnailLoader_ !== null) |
this.listThumbnailLoader_.setHighPriorityRange(beginIndex, endIndex); |
- |
- // Update item cache. |
- for (var url in this.previousItems_) { |
- if (this.getIndexOfListItem(this.previousItems_[url]) === -1) |
- delete this.previousItems_[url]; |
- } |
}; |
/** |
@@ -179,10 +164,6 @@ FileGrid.prototype.relayoutImmediately_ = function() { |
* @param {!FileSystemMetadata} fileSystemMetadata To retrieve metadata. |
* @param {VolumeManagerWrapper} volumeManager Volume manager instance. |
* @param {!importer.HistoryLoader} historyLoader |
- * @param {FileGrid.Item} previousItem Existing grid item. Usually it is the |
- * item used for the same entry before calling redraw() method. If it is |
- * non-null, the item show the thumbnail immediately until the new thumbanil |
- * is loaded. |
* @private |
*/ |
FileGrid.decorateThumbnail_ = function( |
@@ -191,8 +172,7 @@ FileGrid.decorateThumbnail_ = function( |
fileSystemMetadata, |
volumeManager, |
historyLoader, |
- listThumbnailLoader, |
- previousItem) { |
+ listThumbnailLoader) { |
li.className = 'thumbnail-item'; |
if (entry) |
filelist.decorateListItem(li, entry, fileSystemMetadata); |
@@ -201,26 +181,8 @@ FileGrid.decorateThumbnail_ = function( |
frame.className = 'thumbnail-frame'; |
li.appendChild(frame); |
- // TODO(yawano) Most of following codes seems to be unnecessary anymore. |
- // Investigate it, and make this simple. |
- var previousBox = |
- previousItem ? previousItem.querySelector('.img-container') : null; |
- var box; |
- var shouldLoadThumbnail; |
- if (previousItem) { |
- box = previousBox; |
- var previousImage = box.querySelector('img'); |
- if (previousImage) { |
- previousImage.classList.add('cached'); |
- shouldLoadThumbnail = !!entry; |
- } else { |
- shouldLoadThumbnail = false; |
- } |
- } else { |
- box = li.ownerDocument.createElement('div'); |
- shouldLoadThumbnail = !!entry; |
- } |
- if (shouldLoadThumbnail) { |
+ var box = li.ownerDocument.createElement('div'); |
+ if (entry) { |
FileGrid.decorateThumbnailBox_( |
assertInstanceof(box, HTMLDivElement), |
entry, |
@@ -290,7 +252,8 @@ FileGrid.decorateThumbnailBox_ = function( |
listThumbnailLoader.getThumbnailFromCache(entry)) { |
FileGrid.setThumbnailImage_( |
box, |
- listThumbnailLoader.getThumbnailFromCache(entry).dataUrl); |
+ listThumbnailLoader.getThumbnailFromCache(entry).dataUrl, |
+ /* should not animate */ false); |
} else { |
var mediaType = FileType.getMediaType(entry); |
box.setAttribute('generic-thumbnail', mediaType); |
@@ -301,9 +264,11 @@ FileGrid.decorateThumbnailBox_ = function( |
* Sets thumbnail image to the box. |
* @param {!HTMLDivElement} box A div element to hold thumbnails. |
* @param {string} dataUrl Data url of thumbnail. |
+ * @param {boolean} shouldAnimate Whether the thumbanil is shown with animation |
+ * or not. |
* @private |
*/ |
-FileGrid.setThumbnailImage_ = function(box, dataUrl) { |
+FileGrid.setThumbnailImage_ = function(box, dataUrl, shouldAnimate) { |
var oldThumbnails = box.querySelectorAll('.thumbnail'); |
var thumbnail = box.ownerDocument.createElement('div'); |
@@ -319,8 +284,8 @@ FileGrid.setThumbnailImage_ = function(box, dataUrl) { |
box.removeChild(oldThumbnails[i]); |
} |
}); |
- thumbnail.classList.add('animate'); |
- |
+ if (shouldAnimate) |
+ thumbnail.classList.add('animate'); |
box.appendChild(thumbnail); |
}; |
@@ -389,12 +354,8 @@ Object.defineProperty(FileGrid.Item.prototype, 'label', { |
* @param {Element} li List item element. |
* @param {!Entry} entry File entry. |
* @param {FileGrid} grid Owner. |
- * @param {FileGrid.Item} previousItem Existing grid item. Usually it is the |
- * item used for the same entry before calling redraw() method. If it is |
- * non-null, the item show the thumbnail immediately until the new thumbanil |
- * is loaded. |
*/ |
-FileGrid.Item.decorate = function(li, entry, grid, previousItem) { |
+FileGrid.Item.decorate = function(li, entry, grid) { |
li.__proto__ = FileGrid.Item.prototype; |
li = /** @type {!FileGrid.Item} */ (li); |
// TODO(mtomasz): Pass the metadata cache and the volume manager directly |
@@ -405,8 +366,7 @@ FileGrid.Item.decorate = function(li, entry, grid, previousItem) { |
grid.fileSystemMetadata_, |
grid.volumeManager_, |
grid.historyLoader_, |
- grid.listThumbnailLoader_, |
- previousItem); |
+ grid.listThumbnailLoader_); |
// Override the default role 'listitem' to 'option' to match the parent's |
// role (listbox). |