Chromium Code Reviews| Index: ui/file_manager/gallery/js/ribbon.js |
| diff --git a/ui/file_manager/gallery/js/ribbon.js b/ui/file_manager/gallery/js/ribbon.js |
| index ef61140122b78a3cd4ddcdab6978f9bbb166d27c..4fc44b6c58d63bc97a6596e764356785f2218345 100644 |
| --- a/ui/file_manager/gallery/js/ribbon.js |
| +++ b/ui/file_manager/gallery/js/ribbon.js |
| @@ -96,11 +96,27 @@ Ribbon.prototype.disable = function() { |
| * @private |
| */ |
| Ribbon.prototype.onSplice_ = function(event) { |
| - if (event.removed.length == 0) |
| + if (event.removed.length > 1) { |
| + console.error('Cannot remove multiple items.'); |
| return; |
| + } |
| - if (event.removed.length > 1) { |
| - console.error('Cannot remove multiple items'); |
| + if (event.removed.length > 0 && event.added.length > 0) { |
| + console.error('Replacing is not implemented.'); |
| + return; |
| + } |
| + |
| + if (event.added.length > 0) { |
| + for (var i = 0; i < event.added.length; i++) { |
| + var index = this.dataModel_.indexOf(event.added[i]); |
| + if (index === -1) |
| + continue; |
| + var element = this.renderThumbnail_(index); |
| + var nextItem = this.dataModel_.item(index + 1); |
| + var nextElement = |
| + nextItem && this.renderCache_[nextItem.getEntry().toURL()]; |
| + this.insertBefore(element, nextElement); |
|
yoshiki
2014/07/09 03:49:01
if nextElement is null, it may fail.
hirono
2014/07/09 04:04:54
The reference element can be null.
https://develop
|
| + } |
| return; |
| } |
| @@ -160,8 +176,7 @@ Ribbon.prototype.onSelection_ = function() { |
| // TODO(dgozman): use margin instead of 2 here. |
| var itemWidth = this.clientHeight - 2; |
| - var fullItems = Ribbon.ITEMS_COUNT; |
| - fullItems = Math.min(fullItems, length); |
| + var fullItems = Math.min(Ribbon.ITEMS_COUNT, length); |
| var right = Math.floor((fullItems - 1) / 2); |
| var fullWidth = fullItems * itemWidth; |
| @@ -242,11 +257,13 @@ Ribbon.prototype.onSelection_ = function() { |
| } |
| var oldSelected = this.querySelector('[selected]'); |
| - if (oldSelected) oldSelected.removeAttribute('selected'); |
| + if (oldSelected) |
| + oldSelected.removeAttribute('selected'); |
| var newSelected = |
| this.renderCache_[this.dataModel_.item(selectedIndex).getEntry().toURL()]; |
| - if (newSelected) newSelected.setAttribute('selected', true); |
| + if (newSelected) |
| + newSelected.setAttribute('selected', true); |
| }; |
| /** |