| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html i18n-values="dir:textdirection"> | 2 <html i18n-values="dir:textdirection"> |
| 3 <!-- | 3 <!-- |
| 4 | 4 |
| 5 Copyright (c) 2010 The Chromium Authors. All rights reserved. | 5 Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 6 Use of this source code is governed by a BSD-style license that can be | 6 Use of this source code is governed by a BSD-style license that can be |
| 7 found in the LICENSE file. | 7 found in the LICENSE file. |
| 8 | 8 |
| 9 --> | 9 --> |
| 10 <head> | 10 <head> |
| (...skipping 1117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1128 | 1128 |
| 1129 // We can always execute the import-menu and export-menu commands. | 1129 // We can always execute the import-menu and export-menu commands. |
| 1130 document.addEventListener('canExecute', function(e) { | 1130 document.addEventListener('canExecute', function(e) { |
| 1131 var command = e.command; | 1131 var command = e.command; |
| 1132 var commandId = command.id; | 1132 var commandId = command.id; |
| 1133 if (commandId == 'import-menu-command' || commandId == 'export-menu-command')
{ | 1133 if (commandId == 'import-menu-command' || commandId == 'export-menu-command')
{ |
| 1134 e.canExecute = true; | 1134 e.canExecute = true; |
| 1135 } | 1135 } |
| 1136 }); | 1136 }); |
| 1137 | 1137 |
| 1138 /** |
| 1139 * Helper function for handling canExecute for the list and the tree. |
| 1140 * @param {!Event} e Can exectue event object. |
| 1141 * @param {boolean} isRecentOrSearch Whether the user is trying to do a command |
| 1142 * on recent or search. |
| 1143 */ |
| 1144 function canExcuteShared(e, isRecentOrSearch) { |
| 1145 var command = e.command; |
| 1146 var commandId = command.id; |
| 1147 switch (commandId) { |
| 1148 case 'paste-command': |
| 1149 updatePasteCommand(); |
| 1150 break; |
| 1151 |
| 1152 case 'sort-command': |
| 1153 if (isRecentOrSearch) { |
| 1154 e.canExecute = false; |
| 1155 } else { |
| 1156 e.canExecute = list.items.length > 0; |
| 1157 |
| 1158 // The list might be loading |
| 1159 var f = function() { |
| 1160 list.removeEventListener('load', f); |
| 1161 command.disabled = list.items.length == 0; |
| 1162 }; |
| 1163 list.addEventListener('load', f); |
| 1164 } |
| 1165 break; |
| 1166 |
| 1167 case 'add-new-bookmark-command': |
| 1168 case 'new-folder-command': |
| 1169 e.canExecute = !isRecentOrSearch; |
| 1170 break; |
| 1171 |
| 1172 case 'open-in-new-tab-command': |
| 1173 case 'open-in-background-tab-command': |
| 1174 case 'open-in-new-window-command': |
| 1175 case 'open-incognito-window-command': |
| 1176 updateOpenCommands(e, command); |
| 1177 break; |
| 1178 } |
| 1179 } |
| 1180 |
| 1138 // Update canExecute for the commands when the list is the active element. | 1181 // Update canExecute for the commands when the list is the active element. |
| 1139 list.addEventListener('canExecute', function(e) { | 1182 list.addEventListener('canExecute', function(e) { |
| 1140 if (e.target != list) return; | 1183 if (e.target != list) return; |
| 1141 | 1184 |
| 1142 var command = e.command; | 1185 var command = e.command; |
| 1143 var commandId = command.id; | 1186 var commandId = command.id; |
| 1144 | 1187 |
| 1145 function hasSelected() { | 1188 function hasSelected() { |
| 1146 return !!e.target.selectedItem; | 1189 return !!e.target.selectedItem; |
| 1147 } | 1190 } |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1184 case 'show-in-folder-command': | 1227 case 'show-in-folder-command': |
| 1185 e.canExecute = isRecentOrSearch() && hasSingleSelected(); | 1228 e.canExecute = isRecentOrSearch() && hasSingleSelected(); |
| 1186 break; | 1229 break; |
| 1187 | 1230 |
| 1188 case 'delete-command': | 1231 case 'delete-command': |
| 1189 case 'cut-command': | 1232 case 'cut-command': |
| 1190 case 'copy-command': | 1233 case 'copy-command': |
| 1191 e.canExecute = hasSelected(); | 1234 e.canExecute = hasSelected(); |
| 1192 break; | 1235 break; |
| 1193 | 1236 |
| 1194 case 'paste-command': | |
| 1195 updatePasteCommand(); | |
| 1196 break; | |
| 1197 | |
| 1198 case 'sort-command': | |
| 1199 case 'add-new-bookmark-command': | |
| 1200 case 'new-folder-command': | |
| 1201 e.canExecute = !isRecentOrSearch(); | |
| 1202 break; | |
| 1203 | |
| 1204 case 'open-in-new-tab-command': | |
| 1205 case 'open-in-background-tab-command': | |
| 1206 case 'open-in-new-window-command': | |
| 1207 case 'open-incognito-window-command': | |
| 1208 updateOpenCommands(e, command); | |
| 1209 break; | |
| 1210 | |
| 1211 case 'open-in-same-window-command': | 1237 case 'open-in-same-window-command': |
| 1212 e.canExecute = hasSelected(); | 1238 e.canExecute = hasSelected(); |
| 1213 break; | 1239 break; |
| 1240 |
| 1241 default: |
| 1242 canExcuteShared(e, isRecentOrSearch()); |
| 1214 } | 1243 } |
| 1215 }); | 1244 }); |
| 1216 | 1245 |
| 1217 // Update canExecute for the commands when the tree is the active element. | 1246 // Update canExecute for the commands when the tree is the active element. |
| 1218 tree.addEventListener('canExecute', function(e) { | 1247 tree.addEventListener('canExecute', function(e) { |
| 1219 if (e.target != tree) return; | 1248 if (e.target != tree) return; |
| 1220 | 1249 |
| 1221 var command = e.command; | 1250 var command = e.command; |
| 1222 var commandId = command.id; | 1251 var commandId = command.id; |
| 1223 | 1252 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1244 command.hidden = true; | 1273 command.hidden = true; |
| 1245 e.canExecute = false; | 1274 e.canExecute = false; |
| 1246 break; | 1275 break; |
| 1247 | 1276 |
| 1248 case 'delete-command': | 1277 case 'delete-command': |
| 1249 case 'cut-command': | 1278 case 'cut-command': |
| 1250 case 'copy-command': | 1279 case 'copy-command': |
| 1251 e.canExecute = hasSelected() && !isTopLevelItem(); | 1280 e.canExecute = hasSelected() && !isTopLevelItem(); |
| 1252 break; | 1281 break; |
| 1253 | 1282 |
| 1254 case 'paste-command': | 1283 default: |
| 1255 updatePasteCommand(); | 1284 canExcuteShared(e, isRecentOrSearch()); |
| 1256 break; | |
| 1257 | |
| 1258 case 'sort-command': | |
| 1259 case 'add-new-bookmark-command': | |
| 1260 case 'new-folder-command': | |
| 1261 e.canExecute = !isRecentOrSearch(); | |
| 1262 break; | |
| 1263 | |
| 1264 case 'open-in-new-tab-command': | |
| 1265 case 'open-in-background-tab-command': | |
| 1266 case 'open-in-new-window-command': | |
| 1267 case 'open-incognito-window-command': | |
| 1268 updateOpenCommands(e, command); | |
| 1269 break; | |
| 1270 } | 1285 } |
| 1271 }); | 1286 }); |
| 1272 | 1287 |
| 1273 /** | 1288 /** |
| 1274 * Update the canExecute state of the commands when the selection changes. | 1289 * Update the canExecute state of the commands when the selection changes. |
| 1275 * @param {Event} e The change event object. | 1290 * @param {Event} e The change event object. |
| 1276 */ | 1291 */ |
| 1277 function updateCommandsBasedOnSelection(e) { | 1292 function updateCommandsBasedOnSelection(e) { |
| 1278 if (e.target == document.activeElement) { | 1293 if (e.target == document.activeElement) { |
| 1279 // Paste only needs to updated when the tree selection changes. | 1294 // Paste only needs to updated when the tree selection changes. |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1615 // Paste is a bit special since we need to do an async call to see if we can | 1630 // Paste is a bit special since we need to do an async call to see if we can |
| 1616 // paste because the paste command might not be up to date. | 1631 // paste because the paste command might not be up to date. |
| 1617 updatePasteCommand(pasteHandler); | 1632 updatePasteCommand(pasteHandler); |
| 1618 }); | 1633 }); |
| 1619 })(); | 1634 })(); |
| 1620 | 1635 |
| 1621 </script> | 1636 </script> |
| 1622 | 1637 |
| 1623 </body> | 1638 </body> |
| 1624 </html> | 1639 </html> |
| OLD | NEW |