| Index: ui/file_manager/gallery/js/image_editor/viewport.js
|
| diff --git a/ui/file_manager/gallery/js/image_editor/viewport.js b/ui/file_manager/gallery/js/image_editor/viewport.js
|
| index 4ecea71c0588de34d26a1f840d257068b37b9fc2..388f2664528522e7aa956bf1c7e9b11e69ec7f3b 100644
|
| --- a/ui/file_manager/gallery/js/image_editor/viewport.js
|
| +++ b/ui/file_manager/gallery/js/image_editor/viewport.js
|
| @@ -53,13 +53,6 @@ function Viewport() {
|
| this.scale_ = 1;
|
|
|
| /**
|
| - * Index of zoom ratio. 0 is "zoom ratio = 1".
|
| - * @type {number}
|
| - * @private
|
| - */
|
| - this.zoomIndex_ = 0;
|
| -
|
| - /**
|
| * Zoom ratio specified by user operations.
|
| * @type {number}
|
| * @private
|
| @@ -93,18 +86,10 @@ function Viewport() {
|
| /**
|
| * Zoom ratios.
|
| *
|
| - * @type {Object.<string, number>}
|
| + * @type {Array.<number>}
|
| * @const
|
| */
|
| -Viewport.ZOOM_RATIOS = Object.freeze({
|
| - '3': 3,
|
| - '2': 2,
|
| - '1': 1.5,
|
| - '0': 1,
|
| - '-1': 0.75,
|
| - '-2': 0.5,
|
| - '-3': 0.25
|
| -});
|
| +Viewport.ZOOM_RATIOS = Object.freeze([1, 1.5, 2, 3]);
|
|
|
| /**
|
| * @param {number} width Image width.
|
| @@ -125,32 +110,57 @@ Viewport.prototype.setScreenSize = function(width, height) {
|
| };
|
|
|
| /**
|
| - * Sets the new zoom ratio.
|
| - * @param {number} zoomIndex New zoom index.
|
| + * Sets zoom value directly.
|
| + * @param {number} zoom New zoom value.
|
| */
|
| -Viewport.prototype.setZoomIndex = function(zoomIndex) {
|
| - // Ignore the invalid zoomIndex.
|
| - if (!Viewport.ZOOM_RATIOS[zoomIndex.toString()])
|
| - return;
|
| - this.zoomIndex_ = zoomIndex;
|
| - this.zoom_ = Viewport.ZOOM_RATIOS[zoomIndex];
|
| +Viewport.prototype.setZoom = function(zoom) {
|
| + var zoomMin = Viewport.ZOOM_RATIOS[0];
|
| + var zoomMax = Viewport.ZOOM_RATIOS[Viewport.ZOOM_RATIOS.length - 1];
|
| + var adjustedZoom = Math.max(zoomMin, Math.min(zoom, zoomMax));
|
| + this.zoom_ = adjustedZoom;
|
| this.update_();
|
| };
|
|
|
| /**
|
| - * Returns the current zoom index.
|
| - * @return {number} Zoon index.
|
| + * Returns the value of zoom.
|
| + * @return {number} Zoom value.
|
| */
|
| -Viewport.prototype.getZoomIndex = function() {
|
| - return this.zoomIndex_;
|
| +Viewport.prototype.getZoom = function() {
|
| + return this.zoom_;
|
| };
|
|
|
| /**
|
| - * Returns the value of zoom.
|
| - * @return {number} Zoom value.
|
| + * Sets the nearset larger value of ZOOM_RATIOS.
|
| */
|
| -Viewport.prototype.getZoom = function() {
|
| - return this.zoomIndex_;
|
| +Viewport.prototype.zoomIn = function() {
|
| + var zoom = Viewport.ZOOM_RATIOS[0];
|
| + for (var i = 0; i < Viewport.ZOOM_RATIOS.length; i++) {
|
| + zoom = Viewport.ZOOM_RATIOS[i];
|
| + if (zoom > this.zoom_)
|
| + break;
|
| + }
|
| + this.setZoom(zoom);
|
| +};
|
| +
|
| +/**
|
| + * Sets the nearest smaller value of ZOOM_RATIOS.
|
| + */
|
| +Viewport.prototype.zoomOut = function() {
|
| + var zoom = Viewport.ZOOM_RATIOS[Viewport.ZOOM_RATIOS.length - 1];
|
| + for (var i = Viewport.ZOOM_RATIOS.length - 1; i >= 0; i--) {
|
| + zoom = Viewport.ZOOM_RATIOS[i];
|
| + if (zoom < this.zoom_)
|
| + break;
|
| + }
|
| + this.setZoom(zoom);
|
| +};
|
| +
|
| +/**
|
| + * Obtains whether the picture is zoomed or not.
|
| + * @return {boolean}
|
| + */
|
| +Viewport.prototype.isZoomed = function() {
|
| + return this.zoom_ !== 1;
|
| };
|
|
|
| /**
|
| @@ -379,7 +389,6 @@ Viewport.prototype.getCenteredRect_ = function(
|
| * Resets zoom and offset.
|
| */
|
| Viewport.prototype.resetView = function() {
|
| - this.zoomIndex_ = 0;
|
| this.zoom_ = 1;
|
| this.offsetX_ = 0;
|
| this.offsetY_ = 0;
|
|
|