Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: lib/keySelector.js

Issue 5695444839563264: Issue 1434 - Remove some non-standard JS usage from buildtools. (Closed)
Left Patch Set: Created Sept. 24, 2014, 1:31 p.m.
Right Patch Set: Updated from review comments, removed not needed ifs Created Nov. 24, 2014, 4 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « no previous file | lib/prefs.js » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 /* This Source Code Form is subject to the terms of the Mozilla Public 1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this 2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 4
5 Cu.import("resource://gre/modules/Services.jsm"); 5 Cu.import("resource://gre/modules/Services.jsm");
6 6
7 let validModifiers = 7 let validModifiers =
8 { 8 {
9 ACCEL: null, 9 ACCEL: null,
10 CTRL: "control", 10 CTRL: "control",
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 if (keyChar && keyChar.length == 1) 86 if (keyChar && keyChar.length == 1)
87 keyData.char = keyChar.toUpperCase(); 87 keyData.char = keyChar.toUpperCase();
88 88
89 let keyCode = key.getAttribute("keycode"); 89 let keyCode = key.getAttribute("keycode");
90 if (keyCode && "DOM_" + keyCode.toUpperCase() in Ci.nsIDOMKeyEvent) 90 if (keyCode && "DOM_" + keyCode.toUpperCase() in Ci.nsIDOMKeyEvent)
91 keyData.code = Ci.nsIDOMKeyEvent["DOM_" + keyCode.toUpperCase()]; 91 keyData.code = Ci.nsIDOMKeyEvent["DOM_" + keyCode.toUpperCase()];
92 92
93 if (!keyData.char && !keyData.code) 93 if (!keyData.char && !keyData.code)
94 continue; 94 continue;
95 95
96 let modifiers = key.getAttribute("modifiers"); 96 let keyModifiers = key.getAttribute("modifiers");
97 modifiers = modifiers ? modifiers.toUpperCase().match(/\w+/g) : null; 97 let modifiers = keyModifiers ? keyModifiers.toUpperCase().match(/\w+/g) : null;
Wladimir Palant 2014/11/17 20:05:17 If you are doing it this way, why not use [] inste
Wladimir Palant 2014/12/09 21:24:49 Comment from previous round not addressed or repli
98 if (modifiers) 98 if (modifiers)
99 { 99 {
100 for (let modifier of modifiers) 100 for (let modifier of modifiers)
101 { 101 {
102 if (modifier in validModifiers) 102 if (modifier in validModifiers)
103 keyData[validModifiers[modifier]] = true; 103 keyData[validModifiers[modifier]] = true;
104 } 104 }
105 } 105 }
106 106
107 let canonical = [keyData.shift, keyData.meta, keyData.alt, keyData.control , keyData.char || keyData.code].join(" "); 107 let canonical = [keyData.shift, keyData.meta, keyData.alt, keyData.control , keyData.char || keyData.code].join(" ");
108 this._existingShortcuts[canonical] = true; 108 this._existingShortcuts[canonical] = true;
109 } 109 }
110 }, 110 },
111 111
112 /** 112 /**
113 * Selects a keyboard shortcut variant that isn't already taken, 113 * Selects a keyboard shortcut variant that isn't already taken,
114 * parses it into an object. 114 * parses it into an object.
115 */ 115 */
116 selectKey: function(/**String*/ variants) /**Object*/ 116 selectKey: function(/**String*/ variants) /**Object*/
117 { 117 {
118 variants = variants.split(/\s*,\s*/); 118 for (let variant of variants.split(/\s*,\s*/))
119 if (!variants)
Wladimir Palant 2014/11/17 20:05:17 This condition can never be true - String.split()
120 return null;
121
122 for (let variant of variants)
123 { 119 {
124 if (!variant) 120 if (!variant)
125 continue; 121 continue;
126 122
127 let keyData = 123 let keyData =
128 { 124 {
129 shift: false, 125 shift: false,
130 meta: false, 126 meta: false,
131 alt: false, 127 alt: false,
132 control: false, 128 control: false,
133 char: null, 129 char: null,
134 code: null, 130 code: null,
135 codeName: null 131 codeName: null
136 }; 132 };
137 133
138 variant = variant.toUpperCase().split(/\s+/); 134 for (let part of variant.toUpperCase().split(/\s+/))
139 if (!variant)
Wladimir Palant 2014/11/17 20:05:17 Same here, this if block is pointless.
140 continue;
141
142 for (let part of variant)
143 { 135 {
144 if (part in validModifiers) 136 if (part in validModifiers)
145 keyData[validModifiers[part]] = true; 137 keyData[validModifiers[part]] = true;
146 else if (part.length == 1) 138 else if (part.length == 1)
147 keyData.char = part; 139 keyData.char = part;
148 else if ("DOM_VK_" + part in Ci.nsIDOMKeyEvent) 140 else if ("DOM_VK_" + part in Ci.nsIDOMKeyEvent)
149 { 141 {
150 keyData.code = Ci.nsIDOMKeyEvent["DOM_VK_" + part]; 142 keyData.code = Ci.nsIDOMKeyEvent["DOM_VK_" + part];
151 keyData.codeName = "VK_" + part; 143 keyData.codeName = "VK_" + part;
152 } 144 }
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 return false; 212 return false;
221 if (key.meta != event.metaKey || key.control != event.ctrlKey) 213 if (key.meta != event.metaKey || key.control != event.ctrlKey)
222 return false; 214 return false;
223 215
224 if (key.char && event.charCode && String.fromCharCode(event.charCode).toUpperC ase() == key.char) 216 if (key.char && event.charCode && String.fromCharCode(event.charCode).toUpperC ase() == key.char)
225 return true; 217 return true;
226 if (key.code && event.keyCode && event.keyCode == key.code) 218 if (key.code && event.keyCode && event.keyCode == key.code)
227 return true; 219 return true;
228 return false; 220 return false;
229 }; 221 };
LEFTRIGHT
« no previous file | lib/prefs.js » ('j') | Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Toggle Comments ('s')

Powered by Google App Engine
This is Rietveld