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

Unified Diff: ui/file_manager/file_manager/foreground/js/file_manager_commands.js

Issue 1679983003: Set wallpaper from right click menu in Files app. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: renamed Created 4 years, 10 months 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: 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 d2411441b0cf36fc647a6ee36bebfa80641822d3..ed0f4c882c0706e13f2cf0bce489aefdd405fdc3 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
@@ -1507,3 +1507,64 @@ 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(fileReader.result);
+ };
+ fileReader.onerror = function() {
+ reject(fileReader.error);
+ };
+ fileReader.readAsArrayBuffer(blob);
+ })
+ }).then(function(/** @type {!ArrayBuffer} */ arrayBuffer) {
+ return new Promise(function(resolve, reject) {
+ chrome.wallpaper.setWallpaper({
+ data: arrayBuffer,
+ layout: 'CENTER_CROPPED',
Dan Beam 2016/02/25 17:08:55 using the enum even if the @param is a {string} sh
ryoh 2016/02/26 02:30:03 Done.
+ filename: 'wallpaper'
+ }, function() {
+ if (chrome.runtime.lastError) {
+ reject(chrome.runtime.lastError);
+ }else{
+ resolve(null);
+ }
+ });
+ });
+ }).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);
+ }
+});
« no previous file with comments | « ui/file_manager/file_manager/foreground/js/compiled_resources.gyp ('k') | ui/file_manager/file_manager/main.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698