Chromium Code Reviews| Index: chrome/browser/resources/file_manager/js/file_selection.js |
| diff --git a/chrome/browser/resources/file_manager/js/file_selection.js b/chrome/browser/resources/file_manager/js/file_selection.js |
| index 1983dd0e06a2d828a1fbbcfc8321d50c6cc1f01b..f0795b1614791d99efe761b4e8f21be2aee05ec2 100644 |
| --- a/chrome/browser/resources/file_manager/js/file_selection.js |
| +++ b/chrome/browser/resources/file_manager/js/file_selection.js |
| @@ -324,16 +324,16 @@ FileSelectionHandler.prototype.updateFileSelectionAsync = function(selection) { |
| // Update preview panels. |
| var wasVisible = this.previewPanel_.visible; |
| - var thumbnailEntries; |
| - if (selection.totalCount == 0) { |
| - thumbnailEntries = [ |
| - this.fileManager_.getCurrentDirectoryEntry() |
| - ]; |
| + var thumbnailSelection; |
| + if (selection.totalCount != 0) { |
| + thumbnailSelection = selection; |
| } else { |
| - thumbnailEntries = selection.entries; |
| + thumbnailSelection = { |
| + entries: [this.fileManager_.getCurrentDirectoryEntry()] |
| + }; |
| } |
| this.previewPanel_.setSelection(selection); |
| - this.showPreviewThumbnails_(thumbnailEntries); |
| + this.previewPanel_.thumbnails.selection = thumbnailSelection; |
|
yoshiki
2013/09/10 01:24:19
How about passing thumbnailSelection to PreviewPan
hirono
2013/09/10 01:44:17
In the future, we may need to update only the thum
yoshiki
2013/09/10 01:45:38
Ok. Got it.
|
| // Update breadcrums. |
| var updateTarget = null; |
| @@ -369,113 +369,6 @@ FileSelectionHandler.prototype.updateFileSelectionAsync = function(selection) { |
| }; |
| /** |
| - * Renders preview thumbnails in preview panel. |
| - * |
| - * @param {Array.<FileEntry>} entries The entries of selected object. |
| - * @private |
| - */ |
| -FileSelectionHandler.prototype.showPreviewThumbnails_ = function(entries) { |
| - var selection = this.selection; |
| - var thumbnails = []; |
| - var thumbnailCount = 0; |
| - var thumbnailLoaded = -1; |
| - var forcedShowTimeout = null; |
| - var thumbnailsHaveZoom = false; |
| - var self = this; |
| - |
| - var showThumbnails = function() { |
| - // have-zoom class may be updated twice: then timeout exceeds and then |
| - // then all images loaded. |
| - if (self.selection == selection) { |
| - if (thumbnailsHaveZoom) { |
| - self.previewThumbnails_.classList.add('has-zoom'); |
| - } else { |
| - self.previewThumbnails_.classList.remove('has-zoom'); |
| - } |
| - } |
| - |
| - if (forcedShowTimeout === null) |
| - return; |
| - clearTimeout(forcedShowTimeout); |
| - forcedShowTimeout = null; |
| - |
| - // FileSelection could change while images are loading. |
| - if (self.selection == selection) { |
| - self.previewThumbnails_.textContent = ''; |
| - for (var i = 0; i < thumbnails.length; i++) |
| - self.previewThumbnails_.appendChild(thumbnails[i]); |
| - } |
| - }; |
| - |
| - var onThumbnailLoaded = function() { |
| - thumbnailLoaded++; |
| - if (thumbnailLoaded == thumbnailCount) |
| - showThumbnails(); |
| - }; |
| - |
| - var thumbnailClickHandler = function() { |
| - if (selection.tasks) |
| - selection.tasks.executeDefault(); |
| - }; |
| - |
| - var doc = this.fileManager_.document_; |
| - for (var i = 0; i < entries.length; i++) { |
| - var entry = entries[i]; |
| - |
| - if (thumbnailCount < FileSelectionHandler.MAX_PREVIEW_THUMBNAIL_COUNT) { |
| - var box = doc.createElement('div'); |
| - box.className = 'thumbnail'; |
| - if (thumbnailCount == 0) { |
| - var zoomed = doc.createElement('div'); |
| - zoomed.hidden = true; |
| - thumbnails.push(zoomed); |
| - var onFirstThumbnailLoaded = function(img, transform) { |
| - if (img && self.decorateThumbnailZoom_(zoomed, img, transform)) { |
| - zoomed.hidden = false; |
| - thumbnailsHaveZoom = true; |
| - } |
| - onThumbnailLoaded(); |
| - }; |
| - var thumbnail = this.renderThumbnail_(entry, onFirstThumbnailLoaded); |
| - zoomed.addEventListener('click', thumbnailClickHandler); |
| - } else { |
| - var thumbnail = this.renderThumbnail_(entry, onThumbnailLoaded); |
| - } |
| - thumbnailCount++; |
| - box.appendChild(thumbnail); |
| - box.style.zIndex = |
| - FileSelectionHandler.MAX_PREVIEW_THUMBNAIL_COUNT + 1 - i; |
| - box.addEventListener('click', thumbnailClickHandler); |
| - |
| - thumbnails.push(box); |
| - } |
| - } |
| - |
| - forcedShowTimeout = setTimeout(showThumbnails, |
| - FileManager.THUMBNAIL_SHOW_DELAY); |
| - onThumbnailLoaded(); |
| -}; |
| - |
| -/** |
| - * Renders a thumbnail for the buttom panel. |
| - * |
| - * @param {Entry} entry Entry to render for. |
| - * @param {function} callback Called when image loaded. |
| - * @return {HTMLDivElement} Created element. |
| - * @private |
| - */ |
| -FileSelectionHandler.prototype.renderThumbnail_ = function(entry, callback) { |
| - var thumbnail = this.fileManager_.document_.createElement('div'); |
| - FileGrid.decorateThumbnailBox(thumbnail, |
| - entry, |
| - this.fileManager_.metadataCache_, |
| - ThumbnailLoader.FillMode.FILL, |
| - FileGrid.ThumbnailQuality.LOW, |
| - callback); |
| - return thumbnail; |
| -}; |
| - |
| -/** |
| * Updates the breadcrumbs in the preview panel. |
| * |
| * @param {?string} path Path to be shown in the breadcrumbs list |
| @@ -508,76 +401,3 @@ FileSelectionHandler.prototype.updateSearchBreadcrumbs_ = function() { |
| PathUtil.getRootPath(entry.fullPath), |
| entry.fullPath); |
| }; |
| - |
| -/** |
| - * Creates enlarged image for a bottom pannel thumbnail. |
| - * Image's assumed to be just loaded and not inserted into the DOM. |
| - * |
| - * @param {HTMLElement} largeImageBox DIV element to decorate. |
| - * @param {HTMLElement} img Loaded image. |
| - * @param {Object} transform Image transformation description. |
| - * @return {boolean} True if zoomed image is present. |
| - * @private |
| - */ |
| -FileSelectionHandler.prototype.decorateThumbnailZoom_ = function( |
| - largeImageBox, img, transform) { |
| - var width = img.width; |
| - var height = img.height; |
| - var THUMBNAIL_SIZE = 35; |
| - if (width < THUMBNAIL_SIZE * 2 && height < THUMBNAIL_SIZE * 2) |
| - return false; |
| - |
| - var scale = Math.min(1, |
| - FileSelectionHandler.IMAGE_HOVER_PREVIEW_SIZE / Math.max(width, height)); |
| - |
| - var imageWidth = Math.round(width * scale); |
| - var imageHeight = Math.round(height * scale); |
| - |
| - var largeImage = this.fileManager_.document_.createElement('img'); |
| - if (scale < 0.3) { |
| - // Scaling large images kills animation. Downscale it in advance. |
| - |
| - // Canvas scales images with liner interpolation. Make a larger |
| - // image (but small enough to not kill animation) and let IMG |
| - // scale it smoothly. |
| - var INTERMEDIATE_SCALE = 3; |
| - var canvas = this.fileManager_.document_.createElement('canvas'); |
| - canvas.width = imageWidth * INTERMEDIATE_SCALE; |
| - canvas.height = imageHeight * INTERMEDIATE_SCALE; |
| - var ctx = canvas.getContext('2d'); |
| - ctx.drawImage(img, 0, 0, canvas.width, canvas.height); |
| - // Using bigger than default compression reduces image size by |
| - // several times. Quality degradation compensated by greater resolution. |
| - largeImage.src = canvas.toDataURL('image/jpeg', 0.6); |
| - } else { |
| - largeImage.src = img.src; |
| - } |
| - largeImageBox.className = 'popup'; |
| - |
| - var boxWidth = Math.max(THUMBNAIL_SIZE, imageWidth); |
| - var boxHeight = Math.max(THUMBNAIL_SIZE, imageHeight); |
| - |
| - if (transform && transform.rotate90 % 2 == 1) { |
| - var t = boxWidth; |
| - boxWidth = boxHeight; |
| - boxHeight = t; |
| - } |
| - |
| - var style = largeImageBox.style; |
| - style.width = boxWidth + 'px'; |
| - style.height = boxHeight + 'px'; |
| - style.top = (-boxHeight + THUMBNAIL_SIZE) + 'px'; |
| - |
| - var style = largeImage.style; |
| - style.width = imageWidth + 'px'; |
| - style.height = imageHeight + 'px'; |
| - style.left = (boxWidth - imageWidth) / 2 + 'px'; |
| - style.top = (boxHeight - imageHeight) / 2 + 'px'; |
| - style.position = 'relative'; |
| - |
| - util.applyTransform(largeImage, transform); |
| - |
| - largeImageBox.appendChild(largeImage); |
| - largeImageBox.style.zIndex = 1000; |
| - return true; |
| -}; |