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

Side by Side Diff: ui/file_manager/gallery/js/slide_mode.js

Issue 971173002: Gallery: Start to use new metadata model in Gallery. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix test. 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
« no previous file with comments | « ui/file_manager/gallery/js/ribbon.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 * Slide mode displays a single image and has a set of controls to navigate 6 * Slide mode displays a single image and has a set of controls to navigate
7 * between the images and to edit an image. 7 * between the images and to edit an image.
8 * 8 *
9 * @param {!HTMLElement} container Main container element. 9 * @param {!HTMLElement} container Main container element.
10 * @param {!HTMLElement} content Content container element. 10 * @param {!HTMLElement} content Content container element.
11 * @param {!HTMLElement} toolbar Toolbar element. 11 * @param {!HTMLElement} toolbar Toolbar element.
12 * @param {!ImageEditor.Prompt} prompt Prompt. 12 * @param {!ImageEditor.Prompt} prompt Prompt.
13 * @param {!ErrorBanner} errorBanner Error banner. 13 * @param {!ErrorBanner} errorBanner Error banner.
14 * @param {!cr.ui.ArrayDataModel} dataModel Data model. 14 * @param {!cr.ui.ArrayDataModel} dataModel Data model.
15 * @param {!cr.ui.ListSelectionModel} selectionModel Selection model. 15 * @param {!cr.ui.ListSelectionModel} selectionModel Selection model.
16 * @param {!MetadataModel} metadataModel
17 * @param {!ThumbnailModel} thumbnailModel
16 * @param {!Object} context Context. 18 * @param {!Object} context Context.
17 * @param {!VolumeManager} volumeManager Volume manager. 19 * @param {!VolumeManager} volumeManager Volume manager.
18 * @param {function(function())} toggleMode Function to toggle the Gallery mode. 20 * @param {function(function())} toggleMode Function to toggle the Gallery mode.
19 * @param {function(string):string} displayStringFunction String formatting 21 * @param {function(string):string} displayStringFunction String formatting
20 * function. 22 * function.
23
21 * @constructor 24 * @constructor
22 * @struct 25 * @struct
23 * @suppress {checkStructDictInheritance} 26 * @suppress {checkStructDictInheritance}
24 * @extends {cr.EventTarget} 27 * @extends {cr.EventTarget}
25 */ 28 */
26 function SlideMode(container, content, toolbar, prompt, errorBanner, dataModel, 29 function SlideMode(container, content, toolbar, prompt, errorBanner, dataModel,
27 selectionModel, context, volumeManager, toggleMode, displayStringFunction) { 30 selectionModel, metadataModel, thumbnailModel, context, volumeManager,
31 toggleMode, displayStringFunction) {
28 /** 32 /**
29 * @type {!HTMLElement} 33 * @type {!HTMLElement}
30 * @private 34 * @private
31 * @const 35 * @const
32 */ 36 */
33 this.container_ = container; 37 this.container_ = container;
34 38
35 /** 39 /**
36 * @type {!Document} 40 * @type {!Document}
37 * @private 41 * @private
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 * @const 334 * @const
331 */ 335 */
332 this.ribbonSpacer_ = queryRequiredElement(this.toolbar_, '.ribbon-spacer'); 336 this.ribbonSpacer_ = queryRequiredElement(this.toolbar_, '.ribbon-spacer');
333 337
334 /** 338 /**
335 * @type {!Ribbon} 339 * @type {!Ribbon}
336 * @private 340 * @private
337 * @const 341 * @const
338 */ 342 */
339 this.ribbon_ = new Ribbon( 343 this.ribbon_ = new Ribbon(
340 this.document_, this.dataModel_, this.selectionModel_); 344 this.document_, this.dataModel_, this.selectionModel_, thumbnailModel);
341 this.ribbonSpacer_.appendChild(this.ribbon_); 345 this.ribbonSpacer_.appendChild(this.ribbon_);
342 346
343 util.createChild(this.container_, 'spinner'); 347 util.createChild(this.container_, 'spinner');
344 348
345 /** 349 /**
346 * @type {!HTMLElement} 350 * @type {!HTMLElement}
347 * @const 351 * @const
348 */ 352 */
349 var slideShowButton = queryRequiredElement(this.toolbar_, 'button.slideshow'); 353 var slideShowButton = queryRequiredElement(this.toolbar_, 'button.slideshow');
350 slideShowButton.title = this.displayStringFunction_('GALLERY_SLIDESHOW'); 354 slideShowButton.title = this.displayStringFunction_('GALLERY_SLIDESHOW');
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 */ 425 */
422 this.viewport_ = new Viewport(); 426 this.viewport_ = new Viewport();
423 427
424 /** 428 /**
425 * @type {!ImageView} 429 * @type {!ImageView}
426 * @private 430 * @private
427 * @const 431 * @const
428 */ 432 */
429 this.imageView_ = new ImageView( 433 this.imageView_ = new ImageView(
430 this.imageContainer_, 434 this.imageContainer_,
431 this.viewport_); 435 this.viewport_,
436 metadataModel);
432 437
433 /** 438 /**
434 * @type {!ImageEditor} 439 * @type {!ImageEditor}
435 * @private 440 * @private
436 * @const 441 * @const
437 */ 442 */
438 this.editor_ = new ImageEditor( 443 this.editor_ = new ImageEditor(
439 this.viewport_, 444 this.viewport_,
440 this.imageView_, 445 this.imageView_,
441 this.prompt_, 446 this.prompt_,
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after
986 * @param {function(number, number)} loadCallback Called when the image is fully 991 * @param {function(number, number)} loadCallback Called when the image is fully
987 * loaded. 992 * loaded.
988 * @param {number} loadType Load type. 993 * @param {number} loadType Load type.
989 * @param {number} delay Delay. 994 * @param {number} delay Delay.
990 * @param {*=} opt_error Error. 995 * @param {*=} opt_error Error.
991 * @private 996 * @private
992 */ 997 */
993 SlideMode.prototype.itemLoaded_ = function( 998 SlideMode.prototype.itemLoaded_ = function(
994 item, loadCallback, loadType, delay, opt_error) { 999 item, loadCallback, loadType, delay, opt_error) {
995 var entry = item.getEntry(); 1000 var entry = item.getEntry();
996 var metadata = item.getMetadata();
997 1001
998 this.showSpinner_(false); 1002 this.showSpinner_(false);
999 if (loadType === ImageView.LoadType.ERROR) { 1003 if (loadType === ImageView.LoadType.ERROR) {
1000 // if we have a specific error, then display it 1004 // if we have a specific error, then display it
1001 if (opt_error) { 1005 if (opt_error) {
1002 this.errorBanner_.show(/** @type {string} */ (opt_error)); 1006 this.errorBanner_.show(/** @type {string} */ (opt_error));
1003 } else { 1007 } else {
1004 // otherwise try to infer general error 1008 // otherwise try to infer general error
1005 this.errorBanner_.show('GALLERY_IMAGE_ERROR'); 1009 this.errorBanner_.show('GALLERY_IMAGE_ERROR');
1006 } 1010 }
1007 } else if (loadType === ImageView.LoadType.OFFLINE) { 1011 } else if (loadType === ImageView.LoadType.OFFLINE) {
1008 this.errorBanner_.show('GALLERY_IMAGE_OFFLINE'); 1012 this.errorBanner_.show('GALLERY_IMAGE_OFFLINE');
1009 } 1013 }
1010 1014
1011 ImageUtil.metrics.recordUserAction(ImageUtil.getMetricName('View')); 1015 ImageUtil.metrics.recordUserAction(ImageUtil.getMetricName('View'));
1012 1016
1013 var toMillions = function(number) { 1017 var toMillions = function(number) {
1014 return Math.round(number / (1000 * 1000)); 1018 return Math.round(number / (1000 * 1000));
1015 }; 1019 };
1016 1020
1017 ImageUtil.metrics.recordSmallCount(ImageUtil.getMetricName('Size.MB'), 1021 ImageUtil.metrics.recordSmallCount(ImageUtil.getMetricName('Size.MB'),
1018 toMillions(metadata.filesystem.size)); 1022 toMillions(item.getMetadataItem().size));
1019 1023
1020 var canvas = this.imageView_.getCanvas(); 1024 var canvas = this.imageView_.getCanvas();
1021 ImageUtil.metrics.recordSmallCount(ImageUtil.getMetricName('Size.MPix'), 1025 ImageUtil.metrics.recordSmallCount(ImageUtil.getMetricName('Size.MPix'),
1022 toMillions(canvas.width * canvas.height)); 1026 toMillions(canvas.width * canvas.height));
1023 1027
1024 var extIndex = entry.name.lastIndexOf('.'); 1028 var extIndex = entry.name.lastIndexOf('.');
1025 var ext = extIndex < 0 ? '' : 1029 var ext = extIndex < 0 ? '' :
1026 entry.name.substr(extIndex + 1).toLowerCase(); 1030 entry.name.substr(extIndex + 1).toLowerCase();
1027 if (ext === 'jpeg') ext = 'jpg'; 1031 if (ext === 'jpeg') ext = 'jpg';
1028 ImageUtil.metrics.recordEnum( 1032 ImageUtil.metrics.recordEnum(
(...skipping 836 matching lines...) Expand 10 before | Expand all | Expand 10 after
1865 var event = assertInstanceof(event, MouseEvent); 1869 var event = assertInstanceof(event, MouseEvent);
1866 var viewport = this.slideMode_.getViewport(); 1870 var viewport = this.slideMode_.getViewport();
1867 if (!this.enabled_ || !viewport.isZoomed()) 1871 if (!this.enabled_ || !viewport.isZoomed())
1868 return; 1872 return;
1869 this.stopOperation(); 1873 this.stopOperation();
1870 viewport.setOffset( 1874 viewport.setOffset(
1871 viewport.getOffsetX() + event.wheelDeltaX, 1875 viewport.getOffsetX() + event.wheelDeltaX,
1872 viewport.getOffsetY() + event.wheelDeltaY); 1876 viewport.getOffsetY() + event.wheelDeltaY);
1873 this.slideMode_.applyViewportChange(); 1877 this.slideMode_.applyViewportChange();
1874 }; 1878 };
OLDNEW
« no previous file with comments | « ui/file_manager/gallery/js/ribbon.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698