| OLD | NEW |
| 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 * Overrided metadata worker's path. | 6 * Overrided metadata worker's path. |
| 7 * @type {string} | 7 * @type {string} |
| 8 */ | 8 */ |
| 9 ContentProvider.WORKER_SCRIPT = '/js/metadata_worker.js'; | 9 ContentProvider.WORKER_SCRIPT = '/js/metadata_worker.js'; |
| 10 | 10 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 * @param {!Gallery.Item} item Original gallery item. | 64 * @param {!Gallery.Item} item Original gallery item. |
| 65 * @param {!HTMLCanvasElement} canvas Canvas containing new image. | 65 * @param {!HTMLCanvasElement} canvas Canvas containing new image. |
| 66 * @param {boolean} overwrite Whether to overwrite the image to the item or not. | 66 * @param {boolean} overwrite Whether to overwrite the image to the item or not. |
| 67 * @return {!Promise} Promise to be fulfilled with when the operation completes. | 67 * @return {!Promise} Promise to be fulfilled with when the operation completes. |
| 68 */ | 68 */ |
| 69 GalleryDataModel.prototype.saveItem = function( | 69 GalleryDataModel.prototype.saveItem = function( |
| 70 volumeManager, item, canvas, overwrite) { | 70 volumeManager, item, canvas, overwrite) { |
| 71 var oldEntry = item.getEntry(); | 71 var oldEntry = item.getEntry(); |
| 72 var oldMetadata = item.getMetadata(); | 72 var oldMetadata = item.getMetadata(); |
| 73 var oldLocationInfo = item.getLocationInfo(); | 73 var oldLocationInfo = item.getLocationInfo(); |
| 74 var metadataEncoder = ImageEncoder.encodeMetadata( | |
| 75 item.getMetadata(), canvas, 1 /* quality */); | |
| 76 var newMetadata = ContentProvider.ConvertContentMetadata( | |
| 77 metadataEncoder.getMetadata(), | |
| 78 MetadataCache.cloneMetadata(item.getMetadata())); | |
| 79 if (newMetadata.filesystem) | |
| 80 newMetadata.filesystem.modificationTime = new Date(); | |
| 81 if (newMetadata.external) | |
| 82 newMetadata.external.present = true; | |
| 83 | |
| 84 return new Promise(function(fulfill, reject) { | 74 return new Promise(function(fulfill, reject) { |
| 85 item.saveToFile( | 75 item.saveToFile( |
| 86 volumeManager, | 76 volumeManager, |
| 87 this.fallbackSaveDirectory, | 77 this.fallbackSaveDirectory, |
| 88 overwrite, | 78 overwrite, |
| 89 canvas, | 79 canvas, |
| 90 metadataEncoder, | |
| 91 function(success) { | 80 function(success) { |
| 92 if (!success) { | 81 if (!success) { |
| 93 reject('Failed to save the image.'); | 82 reject('Failed to save the image.'); |
| 94 return; | 83 return; |
| 95 } | 84 } |
| 96 | 85 |
| 97 // The item's entry is updated to the latest entry. Update metadata. | |
| 98 item.setMetadata(newMetadata); | |
| 99 | |
| 100 // Current entry is updated. | 86 // Current entry is updated. |
| 101 // Dispatch an event. | 87 // Dispatch an event. |
| 102 var event = new Event('content'); | 88 var event = new Event('content'); |
| 103 event.item = item; | 89 event.item = item; |
| 104 event.oldEntry = oldEntry; | 90 event.oldEntry = oldEntry; |
| 105 event.metadata = newMetadata; | 91 event.metadata = item.getMetadata(); |
| 106 this.dispatchEvent(event); | 92 this.dispatchEvent(event); |
| 107 | 93 |
| 108 if (util.isSameEntry(oldEntry, item.getEntry())) { | 94 if (!util.isSameEntry(oldEntry, item.getEntry())) { |
| 109 // Need an update of metdataCache. | |
| 110 this.metadataCache_.set( | |
| 111 item.getEntry(), | |
| 112 Gallery.METADATA_TYPE, | |
| 113 newMetadata); | |
| 114 } else { | |
| 115 // New entry is added and the item now tracks it. | 95 // New entry is added and the item now tracks it. |
| 116 // Add another item for the old entry. | 96 // Add another item for the old entry. |
| 117 var anotherItem = new Gallery.Item( | 97 var anotherItem = new Gallery.Item( |
| 118 oldEntry, | 98 oldEntry, |
| 119 oldLocationInfo, | 99 oldLocationInfo, |
| 120 oldMetadata, | 100 oldMetadata, |
| 121 this.metadataCache_, | 101 this.metadataCache_, |
| 122 item.isOriginal()); | 102 item.isOriginal()); |
| 123 // The item must be added behind the existing item so that it does | 103 // The item must be added behind the existing item so that it does |
| 124 // not change the index of the existing item. | 104 // not change the index of the existing item. |
| (...skipping 933 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1058 }; | 1038 }; |
| 1059 | 1039 |
| 1060 /** | 1040 /** |
| 1061 * Loads entries. | 1041 * Loads entries. |
| 1062 * @param {!Array.<Entry>} entries Array of entries. | 1042 * @param {!Array.<Entry>} entries Array of entries. |
| 1063 * @param {!Array.<Entry>} selectedEntries Array of selected entries. | 1043 * @param {!Array.<Entry>} selectedEntries Array of selected entries. |
| 1064 */ | 1044 */ |
| 1065 window.loadEntries = function(entries, selectedEntries) { | 1045 window.loadEntries = function(entries, selectedEntries) { |
| 1066 gallery.load(entries, selectedEntries); | 1046 gallery.load(entries, selectedEntries); |
| 1067 }; | 1047 }; |
| OLD | NEW |