| Index: chrome/browser/resources/file_manager/js/image_editor/image_editor.js
|
| diff --git a/chrome/browser/resources/file_manager/js/image_editor/image_editor.js b/chrome/browser/resources/file_manager/js/image_editor/image_editor.js
|
| index 65120531dc83ca7c941670fcb177871955dcaf80..1b06471f66975efcd0a8e40ed856df26d60ab1b5 100644
|
| --- a/chrome/browser/resources/file_manager/js/image_editor/image_editor.js
|
| +++ b/chrome/browser/resources/file_manager/js/image_editor/image_editor.js
|
| @@ -69,6 +69,11 @@ ImageEditor.prototype.lockUI = function(on) {
|
| ImageUtil.setAttribute(this.rootContainer_, 'locked', on);
|
| };
|
|
|
| +ImageEditor.prototype.recordToolUse = function(name) {
|
| + ImageUtil.metrics.recordEnum(
|
| + ImageUtil.getMetricName('Tool'), name, this.actionNames_);
|
| +};
|
| +
|
| ImageEditor.prototype.onContentUpdate_ = function() {
|
| for (var i = 0; i != this.modes_.length; i++) {
|
| var mode = this.modes_[i];
|
| @@ -88,14 +93,14 @@ ImageEditor.prototype.openSession = function(
|
| this.lockUI(true);
|
|
|
| var self = this;
|
| - this.imageView_.load(id, source, metadata, slide, function(loadedInstantly) {
|
| + this.imageView_.load(id, source, metadata, slide, function() {
|
| self.lockUI(false);
|
| self.commandQueue_ = new CommandQueue(
|
| self.container_.ownerDocument, self.imageView_.getCanvas());
|
| self.commandQueue_.attachUI(
|
| self.getImageView(), self.getPrompt(), self.lockUI.bind(self));
|
| self.updateUndoRedo();
|
| - if (opt_callback) opt_callback(loadedInstantly);
|
| + if (opt_callback) opt_callback(arguments);
|
| });
|
| };
|
|
|
| @@ -140,6 +145,7 @@ ImageEditor.prototype.requestImage = function(callback) {
|
|
|
| ImageEditor.prototype.undo = function() {
|
| if (this.isLocked()) return;
|
| + this.recordToolUse('undo');
|
|
|
| // First undo click should dismiss the uncommitted modifications.
|
| if (this.currentMode_ && this.currentMode_.isUpdated()) {
|
| @@ -155,6 +161,7 @@ ImageEditor.prototype.undo = function() {
|
|
|
| ImageEditor.prototype.redo = function() {
|
| if (this.isLocked()) return;
|
| + this.recordToolUse('redo');
|
| this.getPrompt().hide();
|
| this.leaveMode(false);
|
| this.commandQueue_.redo();
|
| @@ -234,6 +241,7 @@ ImageEditor.Mode.prototype.isApplicable = function() { return true };
|
| */
|
| ImageEditor.Mode.prototype.bind = function(editor, button) {
|
| this.editor_ = editor;
|
| + this.editor_.registerAction_(this.name);
|
| this.button_ = button;
|
| this.viewport_ = editor.getViewport();
|
| this.imageView_ = editor.getImageView();
|
| @@ -303,18 +311,28 @@ ImageEditor.Mode.OneClick.prototype.getCommand = function() {
|
| return this.command_;
|
| };
|
|
|
| +ImageEditor.prototype.registerAction_ = function(name) {
|
| + this.actionNames_.push(name);
|
| +};
|
|
|
| ImageEditor.prototype.createToolButtons = function() {
|
| this.mainToolbar_.clear();
|
| + this.actionNames_ = [];
|
| +
|
| + var self = this;
|
| + function createButton(name, handler) {
|
| + return self.mainToolbar_.addButton(name, handler, name);
|
| + }
|
| +
|
| for (var i = 0; i != this.modes_.length; i++) {
|
| var mode = this.modes_[i];
|
| - mode.bind(this, this.mainToolbar_.
|
| - addButton(mode.name, this.enterMode.bind(this, mode), mode.name));
|
| + mode.bind(this, createButton(mode.name, this.enterMode.bind(this, mode)));
|
| }
|
| - this.undoButton_ = this.mainToolbar_.
|
| - addButton('undo', this.undo.bind(this), 'undo');
|
| - this.redoButton_ = this.mainToolbar_.
|
| - addButton('redo', this.redo.bind(this), 'redo');
|
| + this.undoButton_ = createButton('undo', this.undo.bind(this));
|
| + this.registerAction_('undo');
|
| +
|
| + this.redoButton_ = createButton('redo', this.redo.bind(this));
|
| + this.registerAction_('redo');
|
| };
|
|
|
| ImageEditor.prototype.getMode = function() { return this.currentMode_ };
|
| @@ -331,6 +349,8 @@ ImageEditor.prototype.enterMode = function(mode, event) {
|
| return;
|
| }
|
|
|
| + this.recordToolUse(mode.name);
|
| +
|
| this.leaveModeGently();
|
| // The above call could have caused a commit which might have initiated
|
| // an asynchronous command execution. Wait for it to complete, then proceed
|
|
|