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

Side by Side Diff: ui/file_manager/gallery/js/image_editor/image_view.js

Issue 976713004: Add thumbnailMetadataItem to GalleryItem. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Created 5 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * The overlay displaying the image. 6 * The overlay displaying the image.
7 * 7 *
8 * @param {!HTMLElement} container The container element. 8 * @param {!HTMLElement} container The container element.
9 * @param {!Viewport} viewport The viewport. 9 * @param {!Viewport} viewport The viewport.
10 * @param {!MetadataModel} metadataModel 10 * @param {!MetadataModel} metadataModel
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 * @param {!ImageView.Effect} effect 145 * @param {!ImageView.Effect} effect
146 * @return {ImageView.LoadTarget} Load target. 146 * @return {ImageView.LoadTarget} Load target.
147 */ 147 */
148 ImageView.getLoadTarget = function(item, effect) { 148 ImageView.getLoadTarget = function(item, effect) {
149 if (item.contentImage) 149 if (item.contentImage)
150 return ImageView.LoadTarget.CACHED_MAIN_IMAGE; 150 return ImageView.LoadTarget.CACHED_MAIN_IMAGE;
151 if (item.screenImage) 151 if (item.screenImage)
152 return ImageView.LoadTarget.CACHED_THUMBNAIL; 152 return ImageView.LoadTarget.CACHED_THUMBNAIL;
153 153
154 // Only show thumbnails if there is no effect or the effect is Slide. 154 // Only show thumbnails if there is no effect or the effect is Slide.
155 var metadata = item.getMetadata();
156 var thumbnailLoader = new ThumbnailLoader( 155 var thumbnailLoader = new ThumbnailLoader(
157 item.getEntry(), ThumbnailLoader.LoaderType.CANVAS, item.getMetadata()); 156 item.getEntry(),
157 ThumbnailLoader.LoaderType.CANVAS,
158 item.getThumbnailMetadataItem());
158 if ((effect instanceof ImageView.Effect.None || 159 if ((effect instanceof ImageView.Effect.None ||
159 effect instanceof ImageView.Effect.Slide) && 160 effect instanceof ImageView.Effect.Slide) &&
160 thumbnailLoader.getLoadTarget() !== 161 thumbnailLoader.getLoadTarget() !==
161 ThumbnailLoader.LoadTarget.FILE_ENTRY) { 162 ThumbnailLoader.LoadTarget.FILE_ENTRY) {
162 return ImageView.LoadTarget.THUMBNAIL; 163 return ImageView.LoadTarget.THUMBNAIL;
163 } 164 }
164 165
165 return ImageView.LoadTarget.MAIN_IMAGE; 166 return ImageView.LoadTarget.MAIN_IMAGE;
166 }; 167 };
167 168
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 * @param {!Gallery.Item} item Gallery item to be loaded. 344 * @param {!Gallery.Item} item Gallery item to be loaded.
344 * @param {!ImageView.Effect} effect Transition effect object. 345 * @param {!ImageView.Effect} effect Transition effect object.
345 * @param {function()} displayCallback Called when the image is displayed 346 * @param {function()} displayCallback Called when the image is displayed
346 * (possibly as a preview). 347 * (possibly as a preview).
347 * @param {function(!ImageView.LoadType, number, *=)} loadCallback Called when 348 * @param {function(!ImageView.LoadType, number, *=)} loadCallback Called when
348 * the image is fully loaded. The first parameter is the load type. 349 * the image is fully loaded. The first parameter is the load type.
349 */ 350 */
350 ImageView.prototype.load = 351 ImageView.prototype.load =
351 function(item, effect, displayCallback, loadCallback) { 352 function(item, effect, displayCallback, loadCallback) {
352 var entry = item.getEntry(); 353 var entry = item.getEntry();
353 var metadata = item.getMetadata() || {};
354 354
355 if (!(effect instanceof ImageView.Effect.None)) { 355 if (!(effect instanceof ImageView.Effect.None)) {
356 // Skip effects when reloading repeatedly very quickly. 356 // Skip effects when reloading repeatedly very quickly.
357 var time = Date.now(); 357 var time = Date.now();
358 if (this.lastLoadTime_ && 358 if (this.lastLoadTime_ &&
359 (time - this.lastLoadTime_) < ImageView.FAST_SCROLL_INTERVAL) { 359 (time - this.lastLoadTime_) < ImageView.FAST_SCROLL_INTERVAL) {
360 effect = new ImageView.Effect.None(); 360 effect = new ImageView.Effect.None();
361 } 361 }
362 this.lastLoadTime_ = time; 362 this.lastLoadTime_ = time;
363 } 363 }
(...skipping 18 matching lines...) Expand all
382 displayThumbnail(ImageView.LoadType.CACHED_SCREEN, item.screenImage); 382 displayThumbnail(ImageView.LoadType.CACHED_SCREEN, item.screenImage);
383 // As far as the user can tell the image is loaded. We still need to load 383 // As far as the user can tell the image is loaded. We still need to load
384 // the full res image to make editing possible, but we can report now. 384 // the full res image to make editing possible, but we can report now.
385 ImageUtil.metrics.recordInterval(ImageUtil.getMetricName('DisplayTime')); 385 ImageUtil.metrics.recordInterval(ImageUtil.getMetricName('DisplayTime'));
386 break; 386 break;
387 387
388 case ImageView.LoadTarget.THUMBNAIL: 388 case ImageView.LoadTarget.THUMBNAIL:
389 var thumbnailLoader = new ThumbnailLoader( 389 var thumbnailLoader = new ThumbnailLoader(
390 entry, 390 entry,
391 ThumbnailLoader.LoaderType.CANVAS, 391 ThumbnailLoader.LoaderType.CANVAS,
392 metadata); 392 item.getThumbnailMetadataItem());
393 thumbnailLoader.loadDetachedImage(function(success) { 393 thumbnailLoader.loadDetachedImage(function(success) {
394 displayThumbnail( 394 displayThumbnail(
395 ImageView.LoadType.IMAGE_FILE, 395 ImageView.LoadType.IMAGE_FILE,
396 success ? thumbnailLoader.getImage() : null); 396 success ? thumbnailLoader.getImage() : null);
397 }); 397 });
398 break; 398 break;
399 399
400 case ImageView.LoadTarget.MAIN_IMAGE: 400 case ImageView.LoadTarget.MAIN_IMAGE:
401 loadMainImage( 401 loadMainImage(
402 ImageView.LoadType.IMAGE_FILE, 402 ImageView.LoadType.IMAGE_FILE,
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 } 478 }
479 479
480 if (loadType !== ImageView.LoadType.ERROR && 480 if (loadType !== ImageView.LoadType.ERROR &&
481 loadType !== ImageView.LoadType.CACHED_SCREEN) { 481 loadType !== ImageView.LoadType.CACHED_SCREEN) {
482 ImageUtil.metrics.recordInterval(ImageUtil.getMetricName('DisplayTime')); 482 ImageUtil.metrics.recordInterval(ImageUtil.getMetricName('DisplayTime'));
483 } 483 }
484 ImageUtil.metrics.recordEnum(ImageUtil.getMetricName('LoadMode'), 484 ImageUtil.metrics.recordEnum(ImageUtil.getMetricName('LoadMode'),
485 loadType, Object.keys(ImageView.LoadType).length); 485 loadType, Object.keys(ImageView.LoadType).length);
486 486
487 if (loadType === ImageView.LoadType.ERROR && 487 if (loadType === ImageView.LoadType.ERROR &&
488 !navigator.onLine && !metadata.external.present) { 488 !navigator.onLine && !item.getMetadataItem().present) {
489 loadType = ImageView.LoadType.OFFLINE; 489 loadType = ImageView.LoadType.OFFLINE;
490 } 490 }
491 if (loadCallback) loadCallback(loadType, animationDuration, opt_error); 491 if (loadCallback) loadCallback(loadType, animationDuration, opt_error);
492 } 492 }
493 }; 493 };
494 494
495 /** 495 /**
496 * Prefetches an image. 496 * Prefetches an image.
497 * @param {!Gallery.Item} item The image item. 497 * @param {!Gallery.Item} item The image item.
498 * @param {number=} opt_delay Image load delay in ms. 498 * @param {number=} opt_delay Image load delay in ms.
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after
967 }; 967 };
968 968
969 ImageView.Effect.Rotate.prototype = { __proto__: ImageView.Effect.prototype }; 969 ImageView.Effect.Rotate.prototype = { __proto__: ImageView.Effect.prototype };
970 970
971 /** 971 /**
972 * @override 972 * @override
973 */ 973 */
974 ImageView.Effect.Rotate.prototype.transform = function(element, viewport) { 974 ImageView.Effect.Rotate.prototype.transform = function(element, viewport) {
975 return viewport.getInverseTransformForRotatedImage(this.orientation_); 975 return viewport.getInverseTransformForRotatedImage(this.orientation_);
976 }; 976 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698