Changeset 4916 in josm for trunk/src/org/openstreetmap/josm/tools
- Timestamp:
- 2012-02-11T16:28:18+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/tools/Shortcut.java
r4900 r4916 138 138 */ 139 139 public void setAssignedUser(boolean assignedUser) { 140 this.reset = ( !this.assignedUser&&assignedUser);140 this.reset = (this.assignedUser || reset) && !assignedUser; 141 141 if (assignedUser) { 142 142 assignedDefault = false; 143 } else if (reset) { 144 assignedKey = requestedKey; 145 assignedModifier = findModifier(requestedGroup, null); 143 146 } 144 147 this.assignedUser = assignedUser; … … 172 175 } 173 176 174 private void saveDefault() { 177 private void saveDefault(int modifier) { 175 178 Main.pref.getCollection("shortcut.entry."+shortText, Arrays.asList(new String[]{longText, 176 String.valueOf(requestedKey), String.valueOf(requestedGroup), String.valueOf( assignedKey),177 String.valueOf( assignedModifier), String.valueOf(true), String.valueOf(false)}));179 String.valueOf(requestedKey), String.valueOf(requestedGroup), String.valueOf(requestedKey), 180 String.valueOf(modifier), String.valueOf(true), String.valueOf(false)})); 178 181 } 179 182 180 183 // get a string that can be put into the preferences 181 184 private boolean save() { 182 return Main.pref.putCollection("shortcut.entry."+shortText, Arrays.asList(new String[]{longText, 183 String.valueOf(requestedKey), String.valueOf(requestedGroup), String.valueOf(assignedKey), 184 String.valueOf(assignedModifier), String.valueOf(assignedDefault), String.valueOf(assignedUser)})); 185 if (getAutomatic() || getReset() || !getAssignedUser()) { 186 return Main.pref.putCollection("shortcut.entry."+shortText, null); 187 } else { 188 return Main.pref.putCollection("shortcut.entry."+shortText, Arrays.asList(new String[]{longText, 189 String.valueOf(requestedKey), String.valueOf(requestedGroup), String.valueOf(assignedKey), 190 String.valueOf(assignedModifier), String.valueOf(assignedDefault), String.valueOf(assignedUser)})); 191 } 185 192 } 186 193 … … 347 354 boolean changed = false; 348 355 for (Shortcut sc : shortcuts.values()) { 349 if (!sc.getAutomatic() && !sc.getReset() && sc.getAssignedUser()) { 350 changed = changed | sc.save(); 351 } 356 changed = changed | sc.save(); 352 357 } 353 358 return changed; … … 427 432 } 428 433 434 private static int findModifier(int group, Integer modifier) { 435 Integer defaultModifier = getGroupModifier(group + GROUPS_DEFAULT); 436 if(modifier != null) { 437 if(modifier == SHIFT_DEFAULT) { 438 defaultModifier |= KeyEvent.SHIFT_DOWN_MASK; 439 } else { 440 defaultModifier = modifier; 441 } 442 } 443 else if (defaultModifier == null) { // garbage in, no shortcut out 444 defaultModifier = getGroupModifier(GROUP_NONE + GROUPS_DEFAULT); 445 } 446 return defaultModifier; 447 } 448 429 449 // and now the workhorse. same parameters as above, just one more: if originalShortcut is not null and 430 450 // is different from the shortcut that will be assigned, a popup warning will be displayed to the user. … … 435 455 Shortcut originalShortcut) { 436 456 doInit(); 457 Integer defaultModifier = findModifier(requestedGroup, modifier); 437 458 if (shortcuts.containsKey(shortText)) { // a re-register? maybe a sc already read from the preferences? 438 459 Shortcut sc = shortcuts.get(shortText); 439 460 sc.setLongText(longText); // or set by the platformHook, in this case the original longText doesn't match the real action 461 sc.saveDefault(defaultModifier); 440 462 return sc; 441 }442 Integer defaultModifier = getGroupModifier(requestedGroup + GROUPS_DEFAULT);443 if(modifier != null) {444 if(modifier == SHIFT_DEFAULT) {445 defaultModifier |= KeyEvent.SHIFT_DOWN_MASK;446 } else {447 defaultModifier = modifier;448 }449 }450 else if (defaultModifier == null) { // garbage in, no shortcut out451 defaultModifier = getGroupModifier(GROUP_NONE + GROUPS_DEFAULT);452 463 } 453 464 Shortcut conflictsWith = null; … … 483 494 } 484 495 485 potentialShortcut.saveDefault(); 496 potentialShortcut.saveDefault(defaultModifier); 486 497 shortcuts.put(shortText, potentialShortcut); 487 498 return potentialShortcut;
Note:
See TracChangeset
for help on using the changeset viewer.