OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 * @fileoverview Element which shows context menus and handles keyboard | 6 * @fileoverview Element which shows context menus and handles keyboard |
7 * shortcuts. | 7 * shortcuts. |
8 */ | 8 */ |
9 cr.define('bookmarks', function() { | 9 cr.define('bookmarks', function() { |
10 | 10 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 this.addShortcut_(Command.EDIT, 'F2', 'Enter'); | 68 this.addShortcut_(Command.EDIT, 'F2', 'Enter'); |
69 this.addShortcut_(Command.COPY, 'Ctrl|c', 'Meta|c'); | 69 this.addShortcut_(Command.COPY, 'Ctrl|c', 'Meta|c'); |
70 this.addShortcut_(Command.DELETE, 'Delete', 'Delete Backspace'); | 70 this.addShortcut_(Command.DELETE, 'Delete', 'Delete Backspace'); |
71 | 71 |
72 this.addShortcut_(Command.OPEN, 'Enter', 'Meta|ArrowDown Meta|o'); | 72 this.addShortcut_(Command.OPEN, 'Enter', 'Meta|ArrowDown Meta|o'); |
73 this.addShortcut_(Command.OPEN_NEW_TAB, 'Ctrl|Enter', 'Meta|Enter'); | 73 this.addShortcut_(Command.OPEN_NEW_TAB, 'Ctrl|Enter', 'Meta|Enter'); |
74 this.addShortcut_(Command.OPEN_NEW_WINDOW, 'Shift|Enter'); | 74 this.addShortcut_(Command.OPEN_NEW_WINDOW, 'Shift|Enter'); |
75 | 75 |
76 this.addShortcut_(Command.UNDO, 'Ctrl|z', 'Meta|z'); | 76 this.addShortcut_(Command.UNDO, 'Ctrl|z', 'Meta|z'); |
77 this.addShortcut_(Command.REDO, 'Ctrl|y Ctrl|Shift|Z', 'Meta|Shift|Z'); | 77 this.addShortcut_(Command.REDO, 'Ctrl|y Ctrl|Shift|Z', 'Meta|Shift|Z'); |
| 78 |
| 79 this.addShortcut_(Command.SELECT_ALL, 'Ctrl|a', 'Meta|a'); |
| 80 this.addShortcut_(Command.DESELECT_ALL, 'Escape'); |
78 }, | 81 }, |
79 | 82 |
80 detached: function() { | 83 detached: function() { |
81 CommandManager.instance_ = null; | 84 CommandManager.instance_ = null; |
82 document.removeEventListener('open-item-menu', this.boundOnOpenItemMenu_); | 85 document.removeEventListener('open-item-menu', this.boundOnOpenItemMenu_); |
83 document.removeEventListener('command-undo', this.boundOnCommandUndo_); | 86 document.removeEventListener('command-undo', this.boundOnCommandUndo_); |
84 document.removeEventListener('keydown', this.boundOnKeydown_); | 87 document.removeEventListener('keydown', this.boundOnKeydown_); |
85 }, | 88 }, |
86 | 89 |
87 /** | 90 /** |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 * @param {!Set<string>} itemIds | 125 * @param {!Set<string>} itemIds |
123 * @return {boolean} | 126 * @return {boolean} |
124 */ | 127 */ |
125 canExecute: function(command, itemIds) { | 128 canExecute: function(command, itemIds) { |
126 switch (command) { | 129 switch (command) { |
127 case Command.OPEN: | 130 case Command.OPEN: |
128 return itemIds.size > 0; | 131 return itemIds.size > 0; |
129 case Command.UNDO: | 132 case Command.UNDO: |
130 case Command.REDO: | 133 case Command.REDO: |
131 return this.globalCanEdit_; | 134 return this.globalCanEdit_; |
| 135 case Command.SELECT_ALL: |
| 136 case Command.DESELECT_ALL: |
| 137 return true; |
132 default: | 138 default: |
133 return this.isCommandVisible_(command, itemIds) && | 139 return this.isCommandVisible_(command, itemIds) && |
134 this.isCommandEnabled_(command, itemIds); | 140 this.isCommandEnabled_(command, itemIds); |
135 } | 141 } |
136 }, | 142 }, |
137 | 143 |
138 /** | 144 /** |
139 * @param {Command} command | 145 * @param {Command} command |
140 * @param {!Set<string>} itemIds | 146 * @param {!Set<string>} itemIds |
141 * @return {boolean} True if the command should be visible in the context | 147 * @return {boolean} True if the command should be visible in the context |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 return !node.url; | 245 return !node.url; |
240 }); | 246 }); |
241 if (isFolder) { | 247 if (isFolder) { |
242 var folderId = Array.from(itemIds)[0]; | 248 var folderId = Array.from(itemIds)[0]; |
243 this.dispatch( | 249 this.dispatch( |
244 bookmarks.actions.selectFolder(folderId, state.nodes)); | 250 bookmarks.actions.selectFolder(folderId, state.nodes)); |
245 } else { | 251 } else { |
246 this.openUrls_(this.expandUrls_(itemIds), command); | 252 this.openUrls_(this.expandUrls_(itemIds), command); |
247 } | 253 } |
248 break; | 254 break; |
| 255 case Command.SELECT_ALL: |
| 256 var displayedIds = bookmarks.util.getDisplayedList(state); |
| 257 this.dispatch(bookmarks.actions.selectAll(displayedIds, state)); |
| 258 break; |
| 259 case Command.DESELECT_ALL: |
| 260 this.dispatch(bookmarks.actions.deselectItems()); |
| 261 break; |
249 default: | 262 default: |
250 assert(false); | 263 assert(false); |
251 } | 264 } |
252 }, | 265 }, |
253 | 266 |
254 /** | 267 /** |
255 * @param {!Event} e | 268 * @param {!Event} e |
256 * @param {!Set<string>} itemIds | 269 * @param {!Set<string>} itemIds |
257 * @return {boolean} True if the event was handled, triggering a keyboard | 270 * @return {boolean} True if the event was handled, triggering a keyboard |
258 * shortcut. | 271 * shortcut. |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
494 | 507 |
495 /** @return {!bookmarks.CommandManager} */ | 508 /** @return {!bookmarks.CommandManager} */ |
496 CommandManager.getInstance = function() { | 509 CommandManager.getInstance = function() { |
497 return assert(CommandManager.instance_); | 510 return assert(CommandManager.instance_); |
498 }; | 511 }; |
499 | 512 |
500 return { | 513 return { |
501 CommandManager: CommandManager, | 514 CommandManager: CommandManager, |
502 }; | 515 }; |
503 }); | 516 }); |
OLD | NEW |