Index: ui/file_manager/file_manager/foreground/js/file_manager_commands.js |
diff --git a/ui/file_manager/file_manager/foreground/js/file_manager_commands.js b/ui/file_manager/file_manager/foreground/js/file_manager_commands.js |
index 0440716654d090acab39e235d61d5a327794513f..78ba36123992a00233646583447b706c14950987 100644 |
--- a/ui/file_manager/file_manager/foreground/js/file_manager_commands.js |
+++ b/ui/file_manager/file_manager/foreground/js/file_manager_commands.js |
@@ -1488,3 +1488,57 @@ CommandHandler.COMMANDS_['refresh'] = /** @type {Command} */ ({ |
fileManager.directoryModel.getFileListSelection().getCheckSelectMode()); |
} |
}); |
+ |
+/** |
+ * Refreshes the currently selected directory. |
+ */ |
+CommandHandler.COMMANDS_['set-wallpaper'] = /** @type {Command} */ ({ |
+ /** |
+ * @param {!Event} event Command event. |
+ * @param {!FileManager} fileManager FileManager to use. |
+ */ |
+ execute: function(event, fileManager) { |
+ var entry = fileManager.getSelection().entries[0]; |
+ new Promise(function(resolve, reject) { |
+ entry.file(resolve, reject); |
+ }).then(function(blob) { |
+ var fileReader = new FileReader(); |
+ return new Promise(function(resolve, reject) { |
+ fileReader.onload = function() { |
+ resolve(this.result); |
+ }; |
+ fileReader.onError = function(err) { |
mtomasz
2016/02/12 04:30:51
nit: should it be onerror?
ryoh
2016/02/12 07:37:25
Done.
|
+ reject(err); |
+ }; |
+ fileReader.readAsArrayBuffer(blob); |
+ }) |
+ }).then(function(arrayBuffer) { |
+ chrome.wallpaper.setWallpaper( |
+ { |
+ 'data': arrayBuffer, |
mtomasz
2016/02/12 04:30:51
nit: no need for '' for keys.
{
data: ...,
la
ryoh
2016/02/12 07:37:25
Done.
|
+ 'layout': 'CENTER_CROPPED', |
+ 'filename': 'wallpaper' |
+ }, function() {}); |
+ }).catch(function() { |
+ fileManager.ui.alertDialog.showHtml( |
+ '', str('ERROR_INVALID_WALLPAPER'), null, null, null); |
+ }); |
+ }, |
+ canExecute: function(event, fileManager) { |
+ var entries = CommandUtil.getCommandEntries(event.target); |
+ if (entries.length === 0 ) { |
+ event.canExecute = false; |
+ event.command.setHidden(true); |
+ return; |
+ } |
+ var type = FileType.getType(entries[0]); |
+ if (entries.length !== 1 || type.type !== 'image') { |
+ event.canExecute = false; |
+ event.command.setHidden(true); |
+ return; |
+ } |
+ |
+ event.canExecute = type.subtype === 'JPEG' || type.subtype === 'PNG'; |
+ event.command.setHidden(false); |
+ } |
+}); |