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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 * Sets 'hidden' property of a cr.ui.Command instance and dispatches 6 * Sets 'hidden' property of a cr.ui.Command instance and dispatches
7 * 'hiddenChange' event manually so that associated cr.ui.MenuItem can handle 7 * 'hiddenChange' event manually so that associated cr.ui.MenuItem can handle
8 * the event. 8 * the event.
9 * TODO(fukino): Remove this workaround when crbug.com/481941 is fixed. 9 * TODO(fukino): Remove this workaround when crbug.com/481941 is fixed.
10 * 10 *
(...skipping 1489 matching lines...) Expand 10 before | Expand all | Expand 10 after
1500 }, 1500 },
1501 canExecute: function(event, fileManager) { 1501 canExecute: function(event, fileManager) {
1502 var currentDirEntry = fileManager.directoryModel.getCurrentDirEntry(); 1502 var currentDirEntry = fileManager.directoryModel.getCurrentDirEntry();
1503 var volumeInfo = currentDirEntry && 1503 var volumeInfo = currentDirEntry &&
1504 fileManager.volumeManager.getVolumeInfo(currentDirEntry); 1504 fileManager.volumeManager.getVolumeInfo(currentDirEntry);
1505 event.canExecute = volumeInfo && !volumeInfo.watchable; 1505 event.canExecute = volumeInfo && !volumeInfo.watchable;
1506 event.command.setHidden(!event.canExecute || 1506 event.command.setHidden(!event.canExecute ||
1507 fileManager.directoryModel.getFileListSelection().getCheckSelectMode()); 1507 fileManager.directoryModel.getFileListSelection().getCheckSelectMode());
1508 } 1508 }
1509 }); 1509 });
1510
1511 /**
1512 * Refreshes the currently selected directory.
1513 */
1514 CommandHandler.COMMANDS_['set-wallpaper'] = /** @type {Command} */ ({
1515 /**
1516 * @param {!Event} event Command event.
1517 * @param {!FileManager} fileManager FileManager to use.
1518 */
1519 execute: function(event, fileManager) {
1520 var entry = fileManager.getSelection().entries[0];
1521 new Promise(function(resolve, reject) {
1522 entry.file(resolve, reject);
1523 }).then(function(blob) {
1524 var fileReader = new FileReader();
1525 return new Promise(function(resolve, reject) {
1526 fileReader.onload = function() {
1527 resolve(fileReader.result);
1528 };
1529 fileReader.onerror = function() {
1530 reject(fileReader.error);
1531 };
1532 fileReader.readAsArrayBuffer(blob);
1533 })
1534 }).then(function(/** @type {!ArrayBuffer} */ arrayBuffer) {
1535 return new Promise(function(resolve, reject) {
1536 chrome.wallpaper.setWallpaper({
1537 data: arrayBuffer,
1538 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.
1539 filename: 'wallpaper'
1540 }, function() {
1541 if (chrome.runtime.lastError) {
1542 reject(chrome.runtime.lastError);
1543 }else{
1544 resolve(null);
1545 }
1546 });
1547 });
1548 }).catch(function() {
1549 fileManager.ui.alertDialog.showHtml(
1550 '', str('ERROR_INVALID_WALLPAPER'), null, null, null);
1551 });
1552 },
1553 canExecute: function(event, fileManager) {
1554 var entries = CommandUtil.getCommandEntries(event.target);
1555 if (entries.length === 0) {
1556 event.canExecute = false;
1557 event.command.setHidden(true);
1558 return;
1559 }
1560 var type = FileType.getType(entries[0]);
1561 if (entries.length !== 1 || type.type !== 'image') {
1562 event.canExecute = false;
1563 event.command.setHidden(true);
1564 return;
1565 }
1566
1567 event.canExecute = type.subtype === 'JPEG' || type.subtype === 'PNG';
1568 event.command.setHidden(false);
1569 }
1570 });
OLDNEW
« 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