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

Unified Diff: chrome/browser/resources/file_manager/foreground/js/photo/slide_mode.js

Issue 109973002: Migrate from URLs to Entries in the Files App's gallery. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments. Created 7 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/file_manager/foreground/js/photo/slide_mode.js
diff --git a/chrome/browser/resources/file_manager/foreground/js/photo/slide_mode.js b/chrome/browser/resources/file_manager/foreground/js/photo/slide_mode.js
index 2d0adcbac3b53ba064b7ce051747eae15b9a58e2..5154dbf45062b512d465a27c984469b1ebfa1335 100644
--- a/chrome/browser/resources/file_manager/foreground/js/photo/slide_mode.js
+++ b/chrome/browser/resources/file_manager/foreground/js/photo/slide_mode.js
@@ -116,7 +116,7 @@ SlideMode.prototype.initDom_ = function() {
util.platform.getPreference(SlideMode.OVERWRITE_KEY, function(value) {
// Out-of-the box default is 'true'
this.overwriteOriginal_.checked =
- (typeof value != 'string' || value == 'true');
+ (typeof value !== 'string' || value === 'true');
}.bind(this));
this.overwriteOriginal_.addEventListener('click',
this.onOverwriteOriginalClick_.bind(this));
@@ -268,7 +268,7 @@ SlideMode.prototype.enter = function(
// The latest |leave| call might have left the image animating. Remove it.
this.unloadImage_();
- if (this.getItemCount_() == 0) {
+ if (this.getItemCount_() === 0) {
this.displayedIndex_ = -1;
//TODO(kaznacheev) Show this message in the grid mode too.
this.showErrorBanner_('GALLERY_NO_IMAGES');
@@ -277,7 +277,7 @@ SlideMode.prototype.enter = function(
// Remember the selection if it is empty or multiple. It will be restored
// in |leave| if the user did not changing the selection manually.
var currentSelection = this.selectionModel_.selectedIndexes;
- if (currentSelection.length == 1)
+ if (currentSelection.length === 1)
this.savedSelection_ = null;
else
this.savedSelection_ = currentSelection;
@@ -288,12 +288,11 @@ SlideMode.prototype.enter = function(
this.displayedIndex_ = this.getSelectedIndex();
var selectedItem = this.getSelectedItem();
- var selectedUrl = selectedItem.getUrl();
// Show the selected item ASAP, then complete the initialization
// (loading the ribbon thumbnails can take some time).
- this.metadataCache_.get(selectedUrl, Gallery.METADATA_TYPE,
+ this.metadataCache_.get(selectedItem.getEntry(), Gallery.METADATA_TYPE,
function(metadata) {
- this.loadItem_(selectedUrl, metadata,
+ this.loadItem_(selectedItem.getEntry(), metadata,
zoomFromRect && this.imageView_.createZoomEffect(zoomFromRect),
displayCallback, loadDone);
}.bind(this));
@@ -324,7 +323,7 @@ SlideMode.prototype.leave = function(zoomToRect, callback) {
callback();
}.bind(this);
- if (this.getItemCount_() == 0) {
+ if (this.getItemCount_() === 0) {
this.showErrorBanner_(false);
commitDone();
} else {
@@ -409,14 +408,14 @@ SlideMode.prototype.toggleFullScreen_ = function() {
* @private
*/
SlideMode.prototype.onSelection_ = function() {
- if (this.selectionModel_.selectedIndexes.length == 0)
+ if (this.selectionModel_.selectedIndexes.length === 0)
return; // Temporary empty selection.
// Forget the saved selection if the user changed the selection manually.
if (!this.isSlideshowOn_())
this.savedSelection_ = null;
- if (this.getSelectedIndex() == this.displayedIndex_)
+ if (this.getSelectedIndex() === this.displayedIndex_)
return; // Do not reselect.
this.commitItem_(this.loadSelectedItem_.bind(this));
@@ -456,7 +455,7 @@ SlideMode.prototype.loadSelectedItem_ = function() {
this.slideHint_ = undefined;
var index = this.getSelectedIndex();
- if (index == this.displayedIndex_)
+ if (index === this.displayedIndex_)
return; // Do not reselect.
var step = slideHint || (index - this.displayedIndex_);
@@ -465,7 +464,7 @@ SlideMode.prototype.loadSelectedItem_ = function() {
// Long leap, the sequence is broken, we have no good prefetch candidate.
this.sequenceDirection_ = 0;
this.sequenceLength_ = 0;
- } else if (this.sequenceDirection_ == step) {
+ } else if (this.sequenceDirection_ === step) {
// Keeping going in sequence.
this.sequenceLength_++;
} else {
@@ -477,7 +476,7 @@ SlideMode.prototype.loadSelectedItem_ = function() {
if (this.sequenceLength_ <= 1) {
// We have just broke the sequence. Touch the current image so that it stays
// in the cache longer.
- this.imageView_.prefetch(this.imageView_.contentID_);
+ this.imageView_.prefetch(this.imageView_.contentEntry_);
}
this.displayedIndex_ = index;
@@ -489,11 +488,11 @@ SlideMode.prototype.loadSelectedItem_ = function() {
// Never prefetch after a video load (decoding the next image can freeze
// the UI for a second or two).
- if (loadType == ImageView.LOAD_TYPE_VIDEO_FILE)
+ if (loadType === ImageView.LOAD_TYPE_VIDEO_FILE)
return false;
// Always prefetch if the previous load was from cache.
- if (loadType == ImageView.LOAD_TYPE_CACHED_FULL)
+ if (loadType === ImageView.LOAD_TYPE_CACHED_FULL)
return true;
// Prefetch if we have been going in the same direction for long enough.
@@ -506,7 +505,7 @@ SlideMode.prototype.loadSelectedItem_ = function() {
var onMetadata = function(metadata) {
// Discard, since another load has been invoked after this one.
if (selectedUniqueKey != this.currentUniqueKey_) return;
- this.loadItem_(selectedItem.getUrl(), metadata,
+ this.loadItem_(selectedItem.getEntry(), metadata,
new ImageView.Effect.Slide(step, this.isSlideshowPlaying_()),
function() {} /* no displayCallback */,
function(loadType, delay) {
@@ -520,7 +519,7 @@ SlideMode.prototype.loadSelectedItem_ = function() {
}.bind(this));
}.bind(this);
this.metadataCache_.get(
- selectedItem.getUrl(), Gallery.METADATA_TYPE, onMetadata);
+ selectedItem.getEntry(), Gallery.METADATA_TYPE, onMetadata);
};
/**
@@ -581,7 +580,7 @@ SlideMode.prototype.getNextSelectedIndex_ = function(direction) {
index += (direction > 0 ? 1 : -1);
if (index < 0)
return limit - 1;
- if (index == limit)
+ if (index === limit)
return 0;
return index;
}
@@ -603,7 +602,7 @@ SlideMode.prototype.getNextSelectedIndex_ = function(direction) {
* @param {string} keyID Key identifier.
*/
SlideMode.prototype.advanceWithKeyboard = function(keyID) {
- this.advanceManually(keyID == 'Up' || keyID == 'Left' ? -1 : 1);
+ this.advanceManually(keyID === 'Up' || keyID === 'Left' ? -1 : 1);
};
/**
@@ -646,7 +645,7 @@ SlideMode.prototype.selectLast = function() {
/**
* Load and display an item.
*
- * @param {string} url Item url.
+ * @param {FileEntry} entry Item entry to be loaded.
* @param {Object} metadata Item metadata.
* @param {Object} effect Transition effect object.
* @param {function} displayCallback Called when the image is displayed
@@ -655,7 +654,7 @@ SlideMode.prototype.selectLast = function() {
* @private
*/
SlideMode.prototype.loadItem_ = function(
- url, metadata, effect, displayCallback, loadCallback) {
+ entry, metadata, effect, displayCallback, loadCallback) {
this.selectedImageMetadata_ = MetadataCache.cloneMetadata(metadata);
this.showSpinner_(true);
@@ -665,7 +664,7 @@ SlideMode.prototype.loadItem_ = function(
ImageUtil.setAttribute(this.container_, 'video', video);
this.showSpinner_(false);
- if (loadType == ImageView.LOAD_TYPE_ERROR) {
+ if (loadType === ImageView.LOAD_TYPE_ERROR) {
// if we have a specific error, then display it
if (error) {
this.showErrorBanner_(error);
@@ -674,7 +673,7 @@ SlideMode.prototype.loadItem_ = function(
this.showErrorBanner_(
video ? 'GALLERY_VIDEO_ERROR' : 'GALLERY_IMAGE_ERROR');
}
- } else if (loadType == ImageView.LOAD_TYPE_OFFLINE) {
+ } else if (loadType === ImageView.LOAD_TYPE_OFFLINE) {
this.showErrorBanner_(
video ? 'GALLERY_VIDEO_OFFLINE' : 'GALLERY_IMAGE_OFFLINE');
}
@@ -699,9 +698,10 @@ SlideMode.prototype.loadItem_ = function(
ImageUtil.metrics.recordSmallCount(ImageUtil.getMetricName('Size.MPix'),
toMillions(canvas.width * canvas.height));
- var extIndex = url.lastIndexOf('.');
- var ext = extIndex < 0 ? '' : url.substr(extIndex + 1).toLowerCase();
- if (ext == 'jpeg') ext = 'jpg';
+ var extIndex = entry.name.lastIndexOf('.');
+ var ext = extIndex < 0 ? '' :
+ entry.name.substr(extIndex + 1).toLowerCase();
+ if (ext === 'jpeg') ext = 'jpg';
ImageUtil.metrics.recordEnum(
ImageUtil.getMetricName('FileType'), ext, ImageUtil.FILE_TYPES);
}
@@ -721,7 +721,7 @@ SlideMode.prototype.loadItem_ = function(
util.platform.getPreference(SlideMode.OVERWRITE_BUBBLE_KEY,
function(value) {
- var times = typeof value == 'string' ? parseInt(value, 10) : 0;
+ var times = typeof value === 'string' ? parseInt(value, 10) : 0;
if (times < SlideMode.OVERWRITE_BUBBLE_MAX_TIMES) {
this.bubble_.hidden = false;
if (this.isEditing()) {
@@ -739,7 +739,7 @@ SlideMode.prototype.loadItem_ = function(
displayCallback();
}.bind(this);
- this.editor_.openSession(url, metadata, effect,
+ this.editor_.openSession(entry, metadata, effect,
this.saveCurrentImage_.bind(this), displayDone, loadDone);
};
@@ -781,8 +781,8 @@ SlideMode.prototype.requestPrefetch = function(direction, delay) {
if (this.getItemCount_() <= 1) return;
var index = this.getNextSelectedIndex_(direction);
- var nextItemUrl = this.getItem(index).getUrl();
- this.imageView_.prefetch(nextItemUrl, delay);
+ var nextItemEntry = this.getItem(index).getEntry();
+ this.imageView_.prefetch(nextItemEntry, delay);
};
// Event handlers.
@@ -942,7 +942,7 @@ SlideMode.prototype.updateThumbnails = function() {
*/
SlideMode.prototype.saveCurrentImage_ = function(callback) {
var item = this.getSelectedItem();
- var oldUrl = item.getUrl();
+ var oldEntry = item.getEntry();
var canvas = this.imageView_.getCanvas();
this.showSpinner_(true);
@@ -963,11 +963,11 @@ SlideMode.prototype.saveCurrentImage_ = function(callback) {
this.showSpinner_(false);
this.flashSavedLabel_();
- var e = new Event('content');
- e.item = item;
- e.oldUrl = oldUrl;
- e.metadata = this.selectedImageMetadata_;
- this.dataModel_.dispatchEvent(e);
+ var event = new Event('content');
+ event.item = item;
+ event.oldEntry = oldEntry;
+ event.metadata = this.selectedImageMetadata_;
+ this.dataModel_.dispatchEvent(event);
// Allow changing the 'Overwrite original' setting only if the user
// used Undo to restore the original image AND it is not a copy.
@@ -975,13 +975,13 @@ SlideMode.prototype.saveCurrentImage_ = function(callback) {
var mayChangeOverwrite = !this.editor_.canUndo() && item.isOriginal();
ImageUtil.setAttribute(this.options_, 'saved', !mayChangeOverwrite);
- if (this.imageView_.getContentRevision() == 1) { // First edit.
+ if (this.imageView_.getContentRevision() === 1) { // First edit.
ImageUtil.metrics.recordUserAction(ImageUtil.getMetricName('Edit'));
}
- if (oldUrl != item.getUrl()) {
+ if (util.isSameEntry(oldEntry, item.getEntry())) {
this.dataModel_.splice(
- this.getSelectedIndex(), 0, new Gallery.Item(oldUrl));
+ this.getSelectedIndex(), 0, new Gallery.Item(oldEntry));
// The ribbon will ignore the splice above and redraw after the
// select call below (while being obscured by the Editor toolbar,
// so there is no need for nice animation here).
@@ -995,17 +995,15 @@ SlideMode.prototype.saveCurrentImage_ = function(callback) {
};
/**
- * Update caches when the selected item url has changed.
- *
+ * Update caches when the selected item has been renamed.
* @param {Event} event Event.
* @private
*/
SlideMode.prototype.onContentChange_ = function(event) {
- var newUrl = event.item.getUrl();
- if (newUrl != event.oldUrl) {
- this.imageView_.changeUrl(newUrl);
- }
- this.metadataCache_.clear(event.oldUrl, Gallery.METADATA_TYPE);
+ var newEntry = event.item.getEntry();
+ if (util.isSameEntry(newEntry, event.oldEntry))
+ this.imageView_.changeEntry(newEntry);
+ this.metadataCache_.clear(event.oldEntry, Gallery.METADATA_TYPE);
};
/**
@@ -1159,7 +1157,7 @@ SlideMode.prototype.stopSlideshow_ = function(opt_event) {
* @private
*/
SlideMode.prototype.isSlideshowPlaying_ = function() {
- return this.container_.getAttribute('slideshow') == 'playing';
+ return this.container_.getAttribute('slideshow') === 'playing';
};
/**

Powered by Google App Engine
This is Rietveld 408576698