Opened 13 years ago
Closed 12 years ago
#7226 closed enhancement (fixed)
Normalizing shortcuts
Reported by: | akks | Owned by: | stoecker |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Core | Version: | latest |
Keywords: | shortcuts | Cc: |
Description
Currently we have periodic problems with shortcut conflicts within core and plugins.
(and possible partial solutions like #6341)
To fix such problems and choose correct shorcut for added actions one need some
information and rules.
I have made "shorcut list maker"-script (code parser that finds all registerShortcut calls and converts it to html tale form) to help diagnose possible and existing problems.
For example, it shows which 14 (!) shortcuts are assigned to R.
Maybe it can be useful as a part of source or trac/wiki.
Attachments (4)
Change History (107)
by , 13 years ago
Attachment: | Shortcuts.py added |
---|
by , 13 years ago
Attachment: | shortcuts.html added |
---|
comment:1 by , 13 years ago
More convenient link: https://josm.openstreetmap.de/raw-attachment/ticket/7226/shortcuts.html
By the way - what are the rules to choose group of shortcut?
We have too many shortcuts in plugins with like
GROUP_EDIT + SHIFT_DOWN_MASK|ALT_DOWN_MASK GROUP_MENU + CTRL_DOWN_MASK | ALT_DOWN_MASK
to get exact modificator list...
comment:2 by , 13 years ago
Owner: | changed from | to
---|
comment:3 by , 13 years ago
Good idea. We could have done this years ago :-)
Thanks for the script, but we need to use the already existing infrastructure. This consists of two parts:
- a Perl script as cron job
- Python-Instances for Trac
The help topics already parse the java files and produce a table, so most work is already there and only needs to be extended. You could ease my work a bit, when you extract:
a) The RegEx-parsing instruction to find all key codes:
- The script already parses all files line by line and remembers line no. and file for data found (help topics for now)
- Result will be a CSV file
b) Wiki format style method to display information (i.e. one example table layout)
- This will be a few lines python script using the CSV as input, essentially a "read lines and output as wiki syntax" loop with some additional overhead.
follow-up: 5 comment:4 by , 13 years ago
I am not so good in regexp, espcially in Perl :) , so I just find corresponding calls by
re.findall("\.registerShortcut[^\;]*\;",text,re.S+re.M)
extract all list of argumets with
m=re.search("\.registerShortcut([^\;]*)",s)
and find all parameters manually, because I do not know, how to implement brace-macthing by regexp ( we need to find only top-level splitters "," . There are calls like
super(tr("Create Circle"), "createcircle", tr("Create a circle from three selected nodes."), Shortcut.registerShortcut("tools:createcircle", tr("Tool: {0}", tr("Create Circle")), KeyEvent.VK_O, Shortcut.GROUP_EDIT, Shortcut.SHIFT_DEFAULT), true);
and
Shortcut.registerShortcut("tools:multipoly", tr("Tool: {0}", tr("Create multipolygon")), KeyEvent.VK_A, Shortcut.GROUP_DIRECT, KeyEvent.ALT_DOWN_MASK | KeyEvent.CTRL_DOWN_MASK ), true);
to make our task harder...
CSV and wiki syntax should not be a problem, I can do it at any time.
comment:5 by , 13 years ago
Replying to akks:
I am not so good in regexp, espcially in Perl :) , so I just find corresponding calls by
Well, nearly everybody uses perl regexp nowadays, so that is language independent. Learning RegExp is always a good idea. It makes text processing so much easier.
to make our task harder...
I feared that multi-line statements need to be detected, but at least the first line is the match indicator which makes it easier. I will see if I find time this weekend.
Shouldn't be soo complicated.
comment:6 by , 13 years ago
See [DevelopersGuide/ShortcutsList].
I currently join up to 3 lines, but there are still some parsing errors which would need to be updated in code.
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-01", tr(reserved), KeyEvent.VK_SPACE, InputEvent.META_DOWN_MASK)); // Show or hide the Spotlight search field (when multiple languages are installed, may rotate through enabled script systems).
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-02", tr(reserved), KeyEvent.VK_SPACE, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); // Apple reserved.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-03", tr(reserved), KeyEvent.VK_SPACE, InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK)); // Show the Spotlight search results window (when multiple languages are installed, may rotate through keyboard layouts and input methods within a script).
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-04", tr(reserved), KeyEvent.VK_SPACE, InputEvent.META_DOWN_MASK | InputEvent.CTRL_DOWN_MASK)); // | Apple reserved.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-05", tr(reserved), KeyEvent.VK_TAB, InputEvent.SHIFT_DOWN_MASK)); // Navigate through controls in a reverse direction. See "Keyboard Focus and Navigation."
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-06", tr(reserved), KeyEvent.VK_TAB, InputEvent.META_DOWN_MASK)); // Move forward to the next most recently used application in a list of open applications.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-07", tr(reserved), KeyEvent.VK_TAB, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); // Move backward through a list of open applications (sorted by recent use).
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-08", tr(reserved), KeyEvent.VK_TAB, InputEvent.CTRL_DOWN_MASK)); // Move focus to the next grouping of controls in a dialog or the next table (when Tab moves to the next cell). See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-09", tr(reserved), KeyEvent.VK_TAB, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); // Move focus to the previous grouping of controls. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-10", tr(reserved), KeyEvent.VK_ESCAPE, InputEvent.META_DOWN_MASK)); // Open Front Row.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-11", tr(reserved), KeyEvent.VK_ESCAPE, InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK)); // Open the Force Quit dialog.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-12", tr(reserved), KeyEvent.VK_F1, InputEvent.CTRL_DOWN_MASK)); // Toggle full keyboard access on or off. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-13", tr(reserved), KeyEvent.VK_F2, InputEvent.CTRL_DOWN_MASK)); // Move focus to the menu bar. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-14", tr(reserved), KeyEvent.VK_F3, InputEvent.CTRL_DOWN_MASK)); // Move focus to the Dock. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-15", tr(reserved), KeyEvent.VK_F4, InputEvent.CTRL_DOWN_MASK)); // Move focus to the active (or next) window. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-16", tr(reserved), KeyEvent.VK_F4, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); // Move focus to the previously active window. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-17", tr(reserved), KeyEvent.VK_F5, InputEvent.CTRL_DOWN_MASK)); // Move focus to the toolbar. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-18", tr(reserved), KeyEvent.VK_F5, InputEvent.META_DOWN_MASK)); // Turn VoiceOver on or off. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-19", tr(reserved), KeyEvent.VK_F6, InputEvent.CTRL_DOWN_MASK)); // Move focus to the first (or next) panel. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-20", tr(reserved), KeyEvent.VK_F6, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); // Move focus to the previous panel. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-21", tr(reserved), KeyEvent.VK_F7, InputEvent.CTRL_DOWN_MASK)); // Temporarily override the current keyboard access mode in windows and dialogs. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-26", tr(reserved), KeyEvent.VK_DEAD_GRAVE, InputEvent.META_DOWN_MASK)); // Activate the next open window in the frontmost application. See "Window Layering."
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-27", tr(reserved), KeyEvent.VK_DEAD_GRAVE, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); // Activate the previous open window in the frontmost application. See "Window Layering."
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-28", tr(reserved), KeyEvent.VK_DEAD_GRAVE, InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK)); // Move focus to the window drawer.
|
PlatformHookOsx.java | //auto(Shortcut.registerSystemShortcut("apple-reserved-29", tr(reserved), KeyEvent.VK_MINUS, KeyEvent.META_DOWN_MASK)); // Decrease the size of the selected item (equivalent to the Smaller command). See "The Format Menu."
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-30", tr(reserved), KeyEvent.VK_MINUS, InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK)); // Zoom out when screen zooming is on. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("system:preferences", tr(reserved), KeyEvent.VK_COMMA, InputEvent.META_DOWN_MASK)); // Open the application's preferences window (equivalent to the Preferences command). See "The Application Menu."
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-31", tr(reserved), KeyEvent.VK_COMMA, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_DOWN_MASK)); // Decrease screen contrast. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-32", tr(reserved), KeyEvent.VK_PERIOD, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_DOWN_MASK)); // Increase screen contrast. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-33", tr(reserved), KeyEvent.VK_SLASH, InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK)); // Turn font smoothing on or off.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-34", tr(reserved), KeyEvent.VK_EQUALS, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); // Increase the size of the selected item (equivalent to the Bigger command). See "The Format Menu."
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-35", tr(reserved), KeyEvent.VK_EQUALS, InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK)); // Zoom in when screen zooming is on. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-36", tr(reserved), KeyEvent.VK_3, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); // Capture the screen to a file.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-37", tr(reserved), KeyEvent.VK_3, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK)); // Capture the screen to the Clipboard.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-38", tr(reserved), KeyEvent.VK_4, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); // Capture a selection to a file.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-39", tr(reserved), KeyEvent.VK_4, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK)); // Capture a selection to the Clipboard.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-40", tr(reserved), KeyEvent.VK_8, InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK)); // Turn screen zooming on or off. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-41", tr(reserved), KeyEvent.VK_8, InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK)); // Invert the screen colors. See Accessibility Overview.
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:selectall", tr(reserved), KeyEvent.VK_A, InputEvent.META_DOWN_MASK); // Highlight every item in a document or window, or all characters in a text field (equivalent to the Select All command). See "The Edit Menu."
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:copy", tr(reserved), KeyEvent.VK_C, InputEvent.META_DOWN_MASK); // Duplicate the selected data and store on the Clipboard (equivalent to the Copy command). See "The Edit Menu."
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-42", tr(reserved), KeyEvent.VK_D, InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK)); // Show or hide the Dock. See "The Dock."
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:dictionarylookup", tr(reserved), KeyEvent.VK_D, InputEvent.META_DOWN_MASK | InputEvent.CTRL_DOWN_MASK); // Display the definition of the selected word in the Dictionary application.
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:find", tr(reserved), KeyEvent.VK_F, InputEvent.META_DOWN_MASK); // Open a Find window (equivalent to the Find command). See "The Edit Menu."
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:search", tr(reserved), KeyEvent.VK_F, InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK); // Jump to the search field control. See "Search Fields."
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("system:hide", tr(reserved), KeyEvent.VK_H, InputEvent.META_DOWN_MASK)); // Hide the windows of the currently running application (equivalent to the Hide ApplicationName command). See "The Application Menu."
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("system:hideothers", tr(reserved), KeyEvent.VK_H, InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK)); // Hide the windows of all other running applications (equivalent to the Hide Others command). See "The Application Menu."
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:new", tr(reserved), KeyEvent.VK_N, InputEvent.META_DOWN_MASK); // Open a new document (equivalent to the New command). See "The File Menu."
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:open", tr(reserved), KeyEvent.VK_O, InputEvent.META_DOWN_MASK); // Display a dialog for choosing a document to open (equivalent to the Open command). See "The File Menu."
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:print", tr(reserved), KeyEvent.VK_P, InputEvent.META_DOWN_MASK); // Display the Print dialog (equivalent to the Print command). See "The File Menu."
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("system:menuexit", tr(reserved), KeyEvent.VK_Q, InputEvent.META_DOWN_MASK)); // Quit the application (equivalent to the Quit command). See "The Application Menu."
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-43", tr(reserved), KeyEvent.VK_Q, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); // Log out the current user (equivalent to the Log Out command).
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-44", tr(reserved), KeyEvent.VK_Q, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_DOWN_MASK)); // Log out the current user without confirmation.
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:save", tr(reserved), KeyEvent.VK_S, InputEvent.META_DOWN_MASK); // Save the active document (equivalent to the Save command). See "The File Menu."
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:saveas", tr(reserved), KeyEvent.VK_S, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK); // Display the Save dialog (equivalent to the Save As command). See "The File Menu."
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:toggletoolbar", tr(reserved), KeyEvent.VK_T, InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK); // Show or hide a toolbar (equivalent to the Show/Hide Toolbar command). See "The View Menu" and "Toolbars."
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:paste", tr(reserved), KeyEvent.VK_V, InputEvent.META_DOWN_MASK); // Insert the Clipboard contents at the insertion point (equivalent to the Paste command). See "The File Menu."
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:closefile", tr(reserved), KeyEvent.VK_W, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK); // Close a file and its associated windows (equivalent to the Close File command). See "The File Menu."
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:closeallwindows", tr(reserved), KeyEvent.VK_W, InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK); // Close all windows in the application (equivalent to the Close All command). See "The File Menu."
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:cut", tr(reserved), KeyEvent.VK_X, InputEvent.META_DOWN_MASK); // Remove the selection and store on the Clipboard (equivalent to the Cut command). See "The Edit Menu."
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:undo", tr(reserved), KeyEvent.VK_Z, InputEvent.META_DOWN_MASK); // Reverse the effect of the user's previous operation (equivalent to the Undo command). See "The Edit Menu."
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:redo", tr(reserved), KeyEvent.VK_Z, InputEvent.META_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK); // Reverse the effect of the last Undo command (equivalent to the Redo command). See "The Edit Menu."
|
PlatformHookOsx.java | //auto(Shortcut.registerSystemShortcut("apple-reserved-45", tr(reserved), KeyEvent.VK_RIGHT, InputEvent.CTRL_DOWN_MASK)); // Move cursor to end of line
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:movefocusright", tr(reserved), KeyEvent.VK_RIGHT, InputEvent.META_DOWN_MASK); // Move focus to another value or cell within a view, such as a table. See Accessibility Overview.
|
PlatformHookOsx.java | //auto(Shortcut.registerSystemShortcut("apple-reserved-49", tr(reserved), KeyEvent.VK_LEFT, InputEvent.META_DOWN_MASK)); // Move cursor to start of line
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:movefocusleft", tr(reserved), KeyEvent.VK_LEFT, InputEvent.META_DOWN_MASK); // Move focus to another value or cell within a view, such as a table. See Accessibility Overview.
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:movefocusup", tr(reserved), KeyEvent.VK_UP, InputEvent.META_DOWN_MASK); // Move focus to another value or cell within a view, such as a table. See Accessibility Overview.
|
PlatformHookOsx.java | Shortcut.registerSystemShortcut("system:movefocusdown", tr(reserved), KeyEvent.VK_DOWN, InputEvent.META_DOWN_MASK); // Move focus to another value or cell within a view, such as a table. See Accessibility Overview.
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-59", tr(reserved), KeyEvent.VK_DOWN, InputEvent.CTRL_DOWN_MASK)); // Show all windows of the front app
|
PlatformHookOsx.java | auto(Shortcut.registerSystemShortcut("apple-reserved-60", tr(reserved), KeyEvent.VK_UP, InputEvent.CTRL_DOWN_MASK)); // Mission control
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("system:duplicate", tr(reserved), VK_D, CTRL_DOWN_MASK); // not really system, but to avoid odd results
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("system:reset", tr(reserved), VK_DELETE, CTRL_DOWN_MASK | ALT_DOWN_MASK).setAutomatic();
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("microsoft-reserved-01", tr(reserved), VK_PRINTSCREEN, ALT_DOWN_MASK | SHIFT_DOWN_MASK).setAutomatic(); // Turn High Contrast on or off
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("microsoft-reserved-02", tr(reserved), VK_NUM_LOCK, ALT_DOWN_MASK | SHIFT_DOWN_MASK).setAutomatic(); // Turn Mouse Keys on or off
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("system:copy", tr(reserved), VK_C, CTRL_DOWN_MASK); // Copy the selected item
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("system:cut", tr(reserved), VK_X, CTRL_DOWN_MASK); // Cut the selected item
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("system:paste", tr(reserved), VK_V, CTRL_DOWN_MASK); // Paste the selected item
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("system:undo", tr(reserved), VK_Z, CTRL_DOWN_MASK); // Undo an action
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("system:redo", tr(reserved), VK_Y, CTRL_DOWN_MASK); // Redo an action
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("system:movefocusright", tr(reserved), VK_RIGHT, CTRL_DOWN_MASK); // Move the cursor to the beginning of the next word
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("system:movefocusleft", tr(reserved), VK_LEFT, CTRL_DOWN_MASK); // Move the cursor to the beginning of the previous word
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("system:movefocusdown", tr(reserved), VK_DOWN, CTRL_DOWN_MASK); // Move the cursor to the beginning of the next paragraph
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("system:movefocusup", tr(reserved), VK_UP, CTRL_DOWN_MASK); // Move the cursor to the beginning of the previous paragraph
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("system:selectall", tr(reserved), VK_A, CTRL_DOWN_MASK); // Select all items in a document or window
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("microsoft-reserved-31", tr(reserved), VK_ENTER, ALT_DOWN_MASK).setAutomatic(); // Display properties for the selected item
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("system:exit", tr(reserved), VK_F4, ALT_DOWN_MASK).setAutomatic(); // Close the active item, or exit the active program
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("microsoft-reserved-33", tr(reserved), VK_SPACE, ALT_DOWN_MASK).setAutomatic(); // Open the shortcut menu for the active window
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("microsoft-reserved-35", tr(reserved), VK_TAB, ALT_DOWN_MASK).setAutomatic(); // Switch between open items
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("microsoft-reserved-36", tr(reserved), VK_TAB, CTRL_DOWN_MASK | ALT_DOWN_MASK).setAutomatic(); // Use the arrow keys to switch between open items
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("microsoft-reserved-39", tr(reserved), VK_ESCAPE, ALT_DOWN_MASK).setAutomatic(); // Cycle through items in the order in which they were opened
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("microsoft-reserved-42", tr(reserved), VK_F10, SHIFT_DOWN_MASK); // Display the shortcut menu for the selected item
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("microsoft-reserved-43", tr(reserved), VK_ESCAPE, CTRL_DOWN_MASK).setAutomatic(); // Open the Start menu
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("microsoft-reserved-50", tr(reserved), VK_ESCAPE, CTRL_DOWN_MASK | SHIFT_DOWN_MASK).setAutomatic(); // Open Task Manager
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("microsoft-reserved-51", tr(reserved), VK_SHIFT, ALT_DOWN_MASK).setAutomatic(); // Switch the input language when multiple input languages are enabled
|
PlatformHookWindows.java | Shortcut.registerSystemShortcut("microsoft-reserved-52", tr(reserved), VK_SHIFT, CTRL_DOWN_MASK).setAutomatic(); // Switch the keyboard layout when multiple keyboard layouts are enabled
|
PlatformHookUnixoid.java | Shortcut.registerSystemShortcut("screen:toggle"+i, tr(reserved), i, InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_DOWN_MASK)
|
PlatformHookUnixoid.java | Shortcut.registerSystemShortcut("system:reset", tr(reserved), KeyEvent.VK_DELETE, InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_DOWN_MASK)
|
PlatformHookUnixoid.java | Shortcut.registerSystemShortcut("system:resetX", tr(reserved), KeyEvent.VK_BACK_SPACE, InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_DOWN_MASK)
|
IgnoreAction.java | Shortcut.registerShortcut(tr("MapRoulette: {0}", tr(type.getButtonText())), KeyEvent.CHAR_UNDEFINED, Shortcut.NONE),false);
|
ClipboardAction.java | Shortcut.registerShortcut("mapillary:copy_to_clipboard_" + name.replace(' ', '_'),tr("Mapillary: {0}", tr(name)), KeyEvent.CHAR_UNDEFINED, Shortcut.NONE),false, "mapillary:copy_to_clipboard_" + name.replace(' ', '_'), false);
|
WebLinkAction.java | Shortcut.registerShortcut("mapillary:open_in_browser_" + name.replace(' ', '_'),tr("Mapillary: Open {0} in browser", tr(name)), KeyEvent.CHAR_UNDEFINED, Shortcut.NONE),false, "mapillary:open_in_browser_" + name.replace(' ', '_'), false);
|
MapPointObjectLayerAction.java | .registerShortcut("mapillary:pointFeaturesLayer", "Mapillary point features layer", KeyEvent.CHAR_UNDEFINED, Shortcut.NONE),false, "mapillary:pointFeaturesLayer", true); }
|
MapObjectLayerAction.java | .registerShortcut("mapillary:trafficSignLayer", "Mapillary traffic signs layer", KeyEvent.CHAR_UNDEFINED, Shortcut.NONE),false, "mapillary:trafficSignLayer", true); }
|
comment:7 by , 13 years ago
Thank you for your work!
Do we need to edit the code now? How can I check that new variant will be parsed OK before commiting?
Is it the best way to put Shortcut.registerShortcut(.....) in single line?
comment:8 by , 13 years ago
I tried to change the code of utilspluguin2 to be simpler for parser - [o27543],[o27544]...
It seems, brace-matching is essential part of the script.
I can ot figure the logic of active script - it finds shortcuts in
super(tr("Split Way"), "splitway", tr("Split a way at the selected node."), Shortcut.registerShortcut("tools:splitway", tr("Tool: {0}", tr("Split Way")), KeyEvent.VK_P, Shortcut.GROUP_EDIT), true); putValue("help", ht("/Action/SplitWay"));
regexp matching
and
super(tr("Adjacent nodes"), "adjnodes", tr("Select adjacent nodes"), Shortcut.registerShortcut("tools:adjnodes", tr("Tool: {0}","Adjacent nodes"), KeyEvent.VK_E, Shortcut.GROUP_EDIT), true); putValue("help", ht("/Action/AdjacentNodes"));
but does not find in
super(tr("Split Object"), "splitobject", tr("Split an object at the selected nodes."), Shortcut.registerShortcut("tools:splitobject", tr("Tool: {0}", "Split Object"), KeyEvent.VK_P, Shortcut.SHIFT_DEFAULT), true); putValue("help", ht("/Action/SplitObject"));
Maybe it should stop on first ";"? Or the problem is different? I can try to make a patch for script if you show it...
follow-up: 12 comment:10 by , 13 years ago
Regexp:
$last =~ s/^[\t ]*(.*?)[\t\r\n ]*$/$1/; $last2 =~ s/^[\t ]*(.*?)[\t\r\n ]*$/$1/; $l =~ s/^[\t ]*(.*?)[\t\r\n ]*$/$1/; $l = "$last$last2$l"; $l =~ s/^.*(Shortcut\.register)/$1/; $l =~ s/\t/ /g; $l =~ s/tr\(("[^"]+")\)/$1/g; $l =~ s/trc\("[^"]+", *("[^"]+")\)/$1/g; $l =~ s/tr\(("[^"]*)\{0\}([^"]*"), *"([^"]+)"\)/$1$3$2/g; if($l =~ /^Shortcut.registerShortcut\( *"([^"]+)", *"([^"]+)" *, *KeyEvent.VK_([A-Z0-9_]+) *, *(Shortcut.GROUP[0-9a-zA-Z+_. ]+)(?: *, *((?:KeyEvent|InputEvent|Shortcut)\.[0-9A-Za-z._| ]+ *))?\)/)
comment:11 by , 13 years ago
"Split Object": This call is wrong. The group was missing (is fixed now).
comment:12 by , 13 years ago
Replying to stoecker:
Regexp:
$last =~ s/^[\t ]*(.*?)[\t\r\n ]*$/$1/; $last2 =~ s/^[\t ]*(.*?)[\t\r\n ]*$/$1/; $l =~ s/^[\t ]*(.*?)[\t\r\n ]*$/$1/; $l = "$last$last2$l"; $l =~ s/^.*(Shortcut\.register)/$1/; $l =~ s/\t/ /g; $l =~ s/tr\(("[^"]+")\)/$1/g; $l =~ s/trc\("[^"]+", *("[^"]+")\)/$1/g; $l =~ s/tr\(("[^"]*)\{0\}([^"]*"), *"([^"]+)"\)/$1$3$2/g; if($l =~ /^Shortcut.registerShortcut\( *"([^"]+)", *"([^"]+)" *, *KeyEvent.VK_([A-Z0-9_]+) *, *(Shortcut.GROUP[0-9a-zA-Z+_. ]+)(?: *, *((?:KeyEvent|InputEvent|Shortcut)\.[0-9A-Za-z._| ]+ *))?\)/)
Wow :) Will wiki update automatically after commits to see if parsing problem is gone? Or please update it, so I can see if changes were right :)
follow-up: 16 comment:14 by , 13 years ago
Replying to stoecker:
Max. 10 minutes after checking it should update :-)
It works, it works! :-) I notice error list is almost updated automtically. Am I right or you are patching it manually every 15 min?
comment:15 by , 13 years ago
Maybe it would be good to include Josm SVN revision number and plugin repository revision in header or footer of DevelopersGuide/ShortcutsList
comment:16 by , 13 years ago
Replying to akks:
It works, it works! :-) I notice error list is almost updated automtically. Am I right or you are patching it manually every 15 min?
Max. 10 Minutes. This also includes immediate update in seldom cases :-)
comment:18 by , 13 years ago
Puff, almost all parser bugs cleared. Your Regexp is really good.
What left:
- 3core+1plugin shortcuts depending on parameters (maybe you will hardcode ones from core in wiki?)
- 1 shortcut with strange ",0" in registerShortcut().
comment:20 by , 13 years ago
But parser cannot know anything about real dynamically constructed shortcuts from MainMenu and LayerListDialog...
You can scan for addMenu() calls, but some static part will remain. Maybe it is easier to maintain it manually?
comment:22 by , 13 years ago
I noticed that the parser is searching for shortcuts in commented linees like
http://josm.openstreetmap.de/browser/trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java#L979
this may be confusing when eliminating conflicts...
follow-up: 24 comment:23 by , 13 years ago
Another idea (I cannot find exact ticket but it is not new).
Is it possible to protect all core shortcuts like Alt-A from automatic changing by plugins?
Add some registerCoreShortcut, for example, with higher priority?
When plugin intends explicitly to replace core shortcut, it should also call some special function.
This can prevent many problems...
follow-up: 25 comment:24 by , 13 years ago
Replying to akks:
Another idea (I cannot find exact ticket but it is not new).
Is it possible to protect all core shortcuts like Alt-A from automatic changing by plugins?
Add some registerCoreShortcut, for example, with higher priority?
When plugin intends explicitly to replace core shortcut, it should also call some special function.
This can prevent many problems...
This is not as easy as you think. JOSM core does not know what shortcuts it has, as they are initialized only, when function is activated. So not all shortcuts are known before the plugins are registered.
The initial shortcut handling had a "remember all shortcuts whenever seen at least once". I disabled that mode, as it would prevent fixing broken shortcuts (the users would get a permanently saved redirect shortcut, which is not changeable by program updates).
If you have a good idea how to work around this problem ...
Probably a timed "remember shortcut whenever seen" which drops the information after a certain unused time and also updates the value, when default changes. I.e. don't store the real final shortcut, but store the information which leads to that shortcut and simply reconstruct all core shortcuts on startup. Ideas and code welcome.
BTW: I deprecated the Shortcut calls passing modifiers as argument. They should be converted to proper usage of GROUPS_ALT1 and ALT2. I will update the table, so that it converts group to corresponding modifier in the list, so it is better human readable in future (when I have time...).
comment:25 by , 13 years ago
Replying to stoecker:
Replying to akks:
Another idea (I cannot find exact ticket but it is not new).
#6341 is already mentioned in the ticket description
BTW: I deprecated the Shortcut calls passing modifiers as argument. They should be converted to proper usage of GROUPS_ALT1 and ALT2. I will update the table, so that it converts group to corresponding modifier in the list, so it is better human readable in future (when I have time...).
There exists the so far manually updated Shortcuts page on the wiki.
follow-up: 28 comment:27 by , 13 years ago
I updated the DevelopersGuide/ShortcutsList page a lot. Now the complete shortcut as well as the shortcut groups are displayed.
Aim would be to remove all function calls with direct modifiers by selecting a proper group instead. Help to do so is welcome. The corresponding function calls are deprecated now and will be removed in future.
Maybe we need to add a ALT3 setting to increase the number of possibilities?
Next step: All conflicts should be removed step by step.
follow-up: 29 comment:28 by , 13 years ago
Replying to stoecker:
I updated the DevelopersGuide/ShortcutsList page a lot. Now the complete shortcut as well as the shortcut groups are displayed.
Aim would be to remove all function calls with direct modifiers by selecting a proper group instead. Help to do so is welcome. The corresponding function calls are deprecated now and will be removed in future.
Maybe we need to add a ALT3 setting to increase the number of possibilities?
Next step: All conflicts should be removed step by step.
It looks great, thank you for yor work!
Removing modifiers can be hard. Lots of shortcus, especially in plugins, has random group associated - just to get wanted shortcut :)
We need some guide - which shortcuts should be in LAYER or MENU group. What is the logical difference between EDIT, DIRECT and HOTKEY? Many of the developers (including me) does not know it exactly.
comment:29 by , 13 years ago
Replying to akks:
We need some guide - which shortcuts should be in LAYER or MENU group. What is the logical difference between EDIT, DIRECT and HOTKEY? Many of the developers (including me) does not know it exactly.
I added some comments about this in the dev page, but probably we need to improve the groups in future.
comment:31 by , 13 years ago
I now added DIRECT2 group (in r4923). Most actions probably should be switched to DIRECT or DIRECT2, others to EDIT. When using DIRECT2 in plugins, they need master version 4923 in build.xml.
follow-up: 33 comment:32 by , 13 years ago
Small bug in shortcut table - Shortcut is not reconstructed correctly:
Z SHIFT+Z SelectModNodesAction.java EDIT SHIFT tools:selmodnodes Tool: Select last modified nodes
Z SHIFT+Z UndoSelectionAction.java MENU SHIFT tools:undoselection Tool: Undo selection
Undo selection really goes to Alt-SHIFT-Z. Does it work OK without modificators only?
By the way, where should all selection menu shortcuts go - to DIRECT and DIRECT2?
(as I understood, I should move SelectModNodesAction to ALT1+DIRECT and UndoSelectionAction to ALT1+DIRECT2? )
comment:33 by , 13 years ago
Replying to akks:
Small bug in shortcut table - Shortcut is not reconstructed correctly:
Z SHIFT+Z SelectModNodesAction.java EDIT SHIFT tools:selmodnodes Tool: Select last modified nodes
Z SHIFT+Z UndoSelectionAction.java MENU SHIFT tools:undoselection Tool: Undo selection
Undo selection really goes to Alt-SHIFT-Z. Does it work OK without modificators only?
Fixed. SHIFT_DEFAULT does not replace, but add the SHIFT key.
By the way, where should all selection menu shortcuts go - to DIRECT and DIRECT2?
(as I understood, I should move SelectModNodesAction to ALT1+DIRECT and UndoSelectionAction to ALT1+DIRECT2? )
Shouldn't Menu-Shortcuts be in MENU group?
comment:35 by , 13 years ago
I tried to remove modifiers from registerShortcut calls in Utilsplugin2: [o27761]. Please tell me if something is wrong.
follow-up: 37 comment:36 by , 13 years ago
On question from mail list:
I propose to move eXport and eXtract plugin actions to underpopulated X with modifiers :)
comment:37 by , 13 years ago
Replying to akks:
On question from mail list:
I propose to move eXport and eXtract plugin actions to underpopulated X with modifiers :)
Go on.
comment:38 by , 13 years ago
r4953 introduced a conflict between core and surveyor plugin:
+ Shortcut.registerShortcut("core_multikey:showHideLayer", tr("Multikey: {0}", + tr("Show/hide layer")), KeyEvent.VK_S, Shortcut.GROUP_DIRECT+Shortcut.GROUPS_ALT1).setAccelerator(this);
The surveyor needs to be disabled for JOSM to function properly. Can you please fix it?
comment:39 by , 13 years ago
Already fixed that conflict, but plugins jars will not be released until all fixes are done.
comment:40 by , 13 years ago
Thought I would post this in here because it has to deal with a weird shortcut conflict I just got.
Recently, when the "Curves" plugin was integrated into Utilsplugin2, it created a shortcut conflict with the licensechange plugin. (this isn't the "weird" part yet)
Silent shortcut conflict: 'tools:licensechange' moved by 'tools:createcurve' to 'Alt+Shift+C'.
When I just opened up a file in r4961, I get this brand new conflict that I bet was introduced by [4951]:
Silent shortcut conflict: 'subwindow:conflict' moved by 'tools:licensechange' to ''.
This wasn't happening back in r4949 the other day.
Just thought I would let you guys know about this one because I've never seen something like this happen when there was a conflict.
Repository Root: http://josm.openstreetmap.de/svn Build-Date: 2012-02-17 02:32:15 Last Changed Author: stoecker Revision: 4961 Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b URL: http://josm.openstreetmap.de/svn/trunk Last Changed Date: 2012-02-16 21:21:17 +0100 (Thu, 16 Feb 2012) Last Changed Rev: 4961 Identification: JOSM/1.5 (4961 en) Memory Usage: 122 MB / 2730 MB (81 MB allocated, but free) Java version: 1.6.0_31, Sun Microsystems Inc., Java HotSpot(TM) 64-Bit Server VM Operating system: Windows 7 Plugin: OpeningHoursEditor (27676) Plugin: buildings_tools (27676) Plugin: imageryadjust (27744) Plugin: licensechange (27676) Plugin: mapdust (27596) Plugin: measurement (27464) Plugin: openstreetbugs (27355) Plugin: reverter (27676) Plugin: turnrestrictions (27676) Plugin: undelete (27649) Plugin: utilsplugin2 (27761)
comment:41 by , 13 years ago
The count of free key combinations rapidely decreases due to fixing the remaining conflicts :-)
comment:42 by , 13 years ago
Yes, unfortunately...
Oh, we can use some multikey shortcus for rare actions :)
There are some unsupported or even not published plugins that own some keys. I am contacting authors of IrsRectify and RGisOpen.
comment:43 by , 13 years ago
We still have numbers, dots, comma and - for assignment. Rare plugins will get one of these :-)
comment:44 by , 13 years ago
Err, FastDraw is not used SO rarely to put on CTRL-ALT-SHIFT-T :) Check the staistics (I always wanted to know its percentage too).
If not T, then maybe Ctrl-Alt-F? I would prefer to exchange Shift-F <->Ctrl-Alt-F then, but it depends on usage statistics.
p.s. Oh, sorry - it is occupied...
Besides, I had already moved TaggingPresetTester on that key [o27823] , so the conflict persist.
comment:45 by , 13 years ago
Shift-R in utilsplugin2 does the same thing as in Potlatch. Maybe we should leave it...
comment:46 by , 13 years ago
And AddIntersections from Utilsplugin2 that was on Shift-I (very old action) are used much more intensively (for fixing road nets) than ImportVector, which needs selecting file by mouse anyway.
comment:48 by , 13 years ago
You are doing very hard and huge job that people will mostly hate for the first time :) I think that it is really important to have good structure of shortcut system.
I am adraid I can make even more mess while you are editing. I'll try to do some refinement tomorrow :)
Maybe some more people will post their advice...
comment:49 by , 13 years ago
I'm done for today.
And it is not the first time people blame me and later everybody agrees that my changes have been good :-)
comment:51 by , 13 years ago
Maybe we need some structure or core extension for all "Import*" plugins. For example, ImportVec import SVG (asking for additional parameters), there is also PdfImport. All of them need unique shortcuts now :) (such problem for GPX was solved...)
comment:52 by , 13 years ago
I like Upload/Download on Ctrl-Shift-Up/Down :) Very fresh idea! (not a joke)
comment:53 by , 13 years ago
In r4972 I reworked the system again. Now also removing the "cascading" conflict handling. The old group names are now deprecated and replaced by more descriptive ones. When you do further changes, please use the new names and version 4972.
I now try to update the shortcut page script to reflect my changes. :-)
comment:54 by , 13 years ago
There's a problem in r4975 that prevents JOSM to start, I've got a java.lang.StackOverflowError
:(
comment:55 by , 13 years ago
I tried to make an autoreplace script to eliminate most of shortcut deprecations in r4972.
I am afraid it will brake something if I commit it (forgot Shortcut.java file? anything else?). At least it compiles and runs)
I am attaching Perl script and example generated patch. Attention - run in new trunk copy, since it changes all file dates and line endings.
by , 13 years ago
Attachment: | UnDeprecateShortcuts.pl added |
---|
by , 13 years ago
follow-up: 60 comment:59 by , 13 years ago
CTRL-P is a standard shortcut for printing in other applications. Either the print plugin keeps that shortcut, or there will be no shortcut for printing. Moving to another shortcut makes no sense.
comment:60 by , 13 years ago
Replying to Kai Pastor:
CTRL-P is a standard shortcut for printing in other applications. Either the print plugin keeps that shortcut, or there will be no shortcut for printing. Moving to another shortcut makes no sense.
Agreed. Moved the conflicting "Split" to <CTRL>+<X> (X is at least a bit logical for split).
comment:62 by , 13 years ago
Replying to akks:
It is good, but does not Ctrl-X work as "Cut"?
Sure. Now <ALT>. Hmm, why is cut not in the table...
follow-up: 64 comment:63 by , 13 years ago
When we were discussing delete mode on the forum, we almost decided to move it on Ctrl-Alt-Del. I was ready to implement it :)
Also thank you for plugins update for de-deprecation.
follow-up: 65 comment:64 by , 13 years ago
comment:65 by , 13 years ago
follow-up: 68 comment:67 by , 13 years ago
No more conflicts with our Utilsplugin2. But I changed menu MoreTools to Alt-Q. So some systematization follows... :)
We have too many keys for plugin menus with 1-3 items. Maybe some joining is needed?
Standard menus - Alt-E, Alt-F, Alt-H, Alt-I, Alt-P, Alt-U, Alt-T, Alt-V, Alt-W, OK.
- TrustOsm ALT-B - 1 item (!)
- Cadastre-fr ALT-C - 5 items, All OK
- VideoMapping ALT-D - 15 items, All OK
- LiveGPS ALT-G - 3 items ~ok
- WalkingPapers ALT-K - 1 item (!)
- PicLayer ALT-L, 9 items, All OK
- Command Line ALT-M, many items when scripts installed, All OK (maybe change acccelerator?)
- Conflation, newly added, ALT-R, 1 item (!) (conflict)
- Utilsplugin2 Selection menu Alt-N, ~9 items, OK (strange accelerator?)
- Utilsplugin2 More Tools menu Alt-Q, ~9 items, strange but convenient accelerator (elsewhere conflict)
- Routing Alt-O ~6 items, OK
- Mirrored Download Alt-P 2 items, conflict with core
- Public Transport Alt-P 3 items, conflict with core
- Reverter History menu Alt-Y - 1 item (!) maybe move to File?
- CzechAddress Alt-Z - 5 items, maybe join with Cadastre-fr an other possible cadastre/adress tools like FixAddress, HouseNumbers, etc.?
We still have some non-menu Alt keys. It may not be a trouble, but if keys are needed...
- Alt-A, Alt-S = add/edit property, core, ok
- Alt-X = split object (utilsplugin2) (useful) Alt-J (unjoin)
- Alt-J = extract point with history (utilsplugin2, mine addition) - rather rare
- Alt-R = RoadSigns, RoutingDialog (conflicts)
- Alt-T = CzechAddress, AddressFactory (conflicts with tools menu)
follow-ups: 69 70 comment:68 by , 13 years ago
Replying to akks:
- TrustOsm ALT-B - 1 item (!)
- WalkingPapers ALT-K - 1 item (!)
- Conflation, newly added, ALT-R, 1 item (!) (conflict)
- Reverter History menu Alt-Y - 1 item (!) maybe move to File?
These should be moved to other menus.
Maybe we should split Tools in the core into "Tools" and "Drawing" (better name?), where Drawing only contains stuff directly related to drawing, and Tools everything else.
comment:69 by , 13 years ago
Replying to stoecker:
These should be moved to other menus.
Maybe we should split Tools in the core into "Tools" and "Drawing" (better name?), where Drawing only contains stuff directly related to drawing, and Tools everything else.
I like the idea. But what should we place in new menu on clean JOSM?
Aren't all items in default Tools menu related to drawing? We have additional menu "More tools" in Utilsplugin2, and almost all of them are for drawing/tagging too... (3 for tagging, 2 for opening custom URL).
follow-ups: 71 73 comment:70 by , 13 years ago
Replying to stoecker:
Replying to akks:
- TrustOsm ALT-B - 1 item (!)
- WalkingPapers ALT-K - 1 item (!)
- Conflation, newly added, ALT-R, 1 item (!) (conflict)
- Reverter History menu Alt-Y - 1 item (!) maybe move to File?
These should be moved to other menus.
For these, I'd prefer a toplevel menu "Plugins". Each plugin gets a submenu, which contains at least one item "Info". The Info dialog would contain a short how-to, i.e. where to find the commands, mapmodes, toggledialogs and other features that are provided by the plugin.
Plugins |- UtilsPlugin2 |- Info |--------- |- Remove |- Reverter Pugin |- Revert Changeset |--------- |- Info |--------- |- Remove |---------- |- Configure Pluings (Opens 'Plugins' tab in the Preferences (F12))
follow-ups: 72 74 comment:71 by , 13 years ago
Replying to bastiK:
For these, I'd prefer a toplevel menu "Plugins". Each plugin gets a submenu, which contains at least one item "Info". The Info dialog would contain a short how-to, i.e. where to find the commands, mapmodes, toggledialogs and other features that are provided by the plugin.
No Info-descriptions in code. For this we have the wiki. I'm happy f.e. the shortcut stuff is gone now. And a "About plugin" entry will be outdated fast, so it makes no sense as well.
But a plugins menu is a good idea I think.
Regarding Tools: Someone proposed to group Actions into "Node", "Way", "Relation" and "Combined". This way the actions could be grouped according to their usage. Probably this will work (except we would have to move everything in combined group).
follow-up: 86 comment:72 by , 13 years ago
Replying to stoecker:
Replying to bastiK:
For these, I'd prefer a toplevel menu "Plugins". Each plugin gets a submenu, which contains at least one item "Info". The Info dialog would contain a short how-to, i.e. where to find the commands, mapmodes, toggledialogs and other features that are provided by the plugin.
No Info-descriptions in code. For this we have the wiki. I'm happy f.e. the shortcut stuff is gone now. And a "About plugin" entry will be outdated fast, so it makes no sense as well.
But a plugins menu is a good idea I think.
Think there exist already a ticket about this issue.
I do not think it is useful to have submenus for every plugin, especially if the submenus will only contain one entry.
Regarding Tools: Someone proposed to group Actions into "Node", "Way", "Relation" and "Combined". This way the actions could be grouped according to their usage. Probably this will work (except we would have to move everything in combined group).
We could also only show the menu entries which work with the current selection.
comment:73 by , 13 years ago
Replying to bastiK:
Replying to stoecker:
Replying to akks:
- TrustOsm ALT-B - 1 item (!)
- WalkingPapers ALT-K - 1 item (!)
- Conflation, newly added, ALT-R, 1 item (!) (conflict)
- Reverter History menu Alt-Y - 1 item (!) maybe move to File?
These should be moved to other menus.
For these, I'd prefer a toplevel menu "Plugins". Each plugin gets a submenu, which contains at least one item "Info". The Info dialog would contain a short how-to, i.e. where to find the commands, mapmodes, toggledialogs and other features that are provided by the plugin.
"Plugins" menu have some problems
- Nested menus are usable only for rare actions. Users and plugin developers can become unhappy (
- Some plugins are basic tools for certain mappers (cadastres, videomapping, ...)
- If flat menu - there are plugins with ~10 menu items to put then in single menu.
- We have no menu preferences to allow users change it.
I prefer logically grouped menus with plugin actions on bottom after separator and one extra flat menu (plugins? more tools? something else? - which suite better). But it will be hard to group actions conveniently. Maybe we can intoduce "Tagging" menu for example...
Replying to skyper:
We could also only show the menu entries which work with the current selection.
Will not it be too resource consuming on machines with small screens? This can become useful option, but it can confuse user if turned on by default.
comment:74 by , 13 years ago
Replying to stoecker:
But a plugins menu is a good idea I think.
Regarding Tools: Someone proposed to group Actions into "Node", "Way", "Relation" and "Combined". This way the actions could be grouped according to their usage. Probably this will work (except we would have to move everything in combined group).
This will help to sort only Tools and half of Utilsplugin2. We should have a place to put selectors, downloaders, tag-modifcators, etc... Combined? And walkingPapers, Lake Walker, etc...
So my curnent ideas are
- Leave plugins with big menus as is.
- Add "Selection" menu in core (select all, unselect all) to be extended by Utilsplugin2 and other selectors.
- Add "more tools" analog in core, prefill it with some tools actions - for modificators of tags/geometry.
- Add menu like "Data" for plugin reverting, exporting, importing, working with signatures, cadastre etc.
- Add Plugins submenu to Help where show plugin icons and launch their help on click (to learn what you installed). Maybe add context menu "Uninstall", "Configure", if it is possible.
comment:75 by , 13 years ago
Hey guys, just wanted to mention some new really weird conflicts I just got tonight after upgrading to r4991. Had 6 conflicts that all were "resolved" to the same shortcut.
Silent shortcut conflict: 'tools:licensechange' moved by 'tools:createcurve' to 'Ctrl+Alt+F1'. Silent shortcut conflict: 'subwindow:licensechange' moved by 'subwindow:layers' to 'Ctrl+Alt+F1'. Silent shortcut conflict: 'system:movefocusright' moved by 'microsoft-reserved-13' to 'Ctrl+Alt+F1'. Silent shortcut conflict: 'system:movefocusleft' moved by 'microsoft-reserved-14' to 'Ctrl+Alt+F1'. Silent shortcut conflict: 'system:movefocusup' moved by 'microsoft-reserved-16' to 'Ctrl+Alt+F1'. Silent shortcut conflict: 'system:movefocusdown' moved by 'microsoft-reserved-15' to 'Ctrl+Alt+F1'.
This also showed up, but not 100% sure it's related:
Keystroke ctrl alt pressed F1 is already assigned to org.openstreetmap.josm.plugins.licensechange.CheckAction@7f371a59, will be overridden by org.openstreetmap.josm.gui.dialogs.ToggleDialog$ToggleDialogAction@4f0e98d8
Here's my build info:
Repository Root: http://josm.openstreetmap.de/svn Build-Date: 2012-02-19 02:32:14 Last Changed Author: Don-vip Revision: 4991 Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b URL: http://josm.openstreetmap.de/svn/trunk Last Changed Date: 2012-02-19 02:46:48 +0100 (Sun, 19 Feb 2012) Last Changed Rev: 4991 Identification: JOSM/1.5 (4991 en) Memory Usage: 332 MB / 2730 MB (58 MB allocated, but free) Java version: 1.6.0_31, Sun Microsystems Inc., Java HotSpot(TM) 64-Bit Server VM Operating system: Windows 7 Dataset consistency test: No problems found Plugin: OpeningHoursEditor (27676) Plugin: buildings_tools (27676) Plugin: imageryadjust (27744) Plugin: licensechange (27676) Plugin: mapdust (27596) Plugin: measurement (27464) Plugin: openstreetbugs (27355) Plugin: reverter (27676) Plugin: turnrestrictions (27857) Plugin: undelete (27649) Plugin: utilsplugin2 (27859)
follow-up: 79 comment:76 by , 13 years ago
TurnRestriction copnflict persists due to manual obtaining Ctrl-Shift-T:
comment:79 by , 13 years ago
Replying to akks:
TurnRestriction copnflict persists due to manual obtaining Ctrl-Shift-T:
Replaced by standard method.
follow-up: 82 comment:80 by , 13 years ago
Please guys be careful with asigning Ctrl+Alt+*
. Why do not just use Ctrl+Alt+Backspace
or Ctrl+Alt+Print+B
?
For real:
If we do not have more key combinations left we might have to think about time-period sequences like the activation of layers.
comment:81 by , 13 years ago
I can gladly take Ctrl- and Shift-backspace for my Utilplugins2 features(select modified nodes, select mofified ways, undo selection) if some need Shift-Z, Ctrl-Alt-Z, Alt-Shift-Z :)
follow-up: 85 comment:82 by , 13 years ago
Replying to skyper:
Please guys be careful with asigning
Ctrl+Alt+*
. Why do not just useCtrl+Alt+Backspace
orCtrl+Alt+Print+B
?
Reserved combinations are now also in the overview list.
comment:83 by , 13 years ago
Wow - JOSM 5001 became a real monster! I have just compiled and installed all plugins together and the only warnings given by JOSM are
Silent shortcut conflict: 'properties:edit' moved by 'menu:Scripting' to 'Ctrl+Alt+F1'. Keystroke shift ctrl alt pressed R is already assigned to org.openstreetmap.josm.gui.dialogs.ToggleDialog$ToggleDialogAction@1504f9f, will be overridden by org.openstreetmap.josm.gui.dialogs.ToggleDialog$ToggleDialogAction@40728c
(except toolbar action warnings).
P.S. Oh, sorry - I did not notice 5002 and updated plugin jars. I was trying to fix compilation on jdk7 and remove annoying exception stacktraces when all is ok.
comment:84 by , 13 years ago
except toolbar action warnings
They should be fixed as well. Please open a ticket with them.
comment:85 by , 13 years ago
Replying to stoecker:
Replying to skyper:
Please guys be careful with asigning
Ctrl+Alt+*
. Why do not just useCtrl+Alt+Backspace
orCtrl+Alt+Print+B
?
Reserved combinations are now also in the overview list.
Please, add for unix:
- Ctrl+Alt+PLUS and Ctrl+Alt+MINUS -> xserver mode change
- Ctrl+Alt+PRINTSCREEN+* -> kernel syskeys
- Ctrl+Alt+F11 and Ctrl+Alt+F12 -> screen:toogle
Thanks
comment:86 by , 13 years ago
comment:87 by , 13 years ago
comment:89 by , 13 years ago
I'm very unhappy with the new "Download from OSM..." shortcut, which was introduced in r4966. I use(d) this shortcut frequently while mapping/testing. Now it is no longer possible to press this shortcut with the left hand, and requires to move the right hand from the mouse to the cursor keys. At the moment it may be faster to click the toolbar icon. To conclude, I'd strongly favor to restore the old mapping or an adequate shortcut.
comment:90 by , 13 years ago
Now you can place it even on D in shortcut preferences, if you use download very often...
follow-up: 95 comment:91 by , 13 years ago
I know how to remap this shortcut locally, but I expect more users to download via the OSM API frequently. :-)
follow-up: 96 comment:94 by , 13 years ago
Problem: F1 shortcut is unchangeable (you can set action for it, but help will continue to work - without any warnings).
When line
Shortcut.registerSystemShortcut("system:help", tr("reserved"), VK_F1, 0); // Display Help
is removed, this problem vanish, but I am not sure this is right approach.
comment:95 by , 13 years ago
Replying to simon04:
I know how to remap this shortcut locally, but I expect more users to download via the OSM API frequently. :-)
Actually there is no noise on JOSM bug tracker or even talk and talk-de groups, so I see no reason to change shortuct mappings again. Obviously only a few people use the changed shortcuts intensively.
comment:96 by , 13 years ago
Replying to akks:
Problem: F1 shortcut is unchangeable (you can set action for it, but help will continue to work - without any warnings).
This is a bug in shortcuts settings. You can double assign a shortcut (even to system keys). These double assignments will then be resolved on next load depending on the priority (system key, user assignment, other keys). JOSM should warn in configuration stage already.
follow-up: 99 comment:98 by , 12 years ago
I hope last changeset does not introduce bugs. Some people like to map their favourite actions on F1-F10 very much...
Oops - are we in stabilization phase or it has finished with r5335 ?
comment:99 by , 12 years ago
comment:101 by , 12 years ago
Stablization should end on Monday if nothing major has arisen meanwhile :)
comment:102 by , 12 years ago
Here are only current conflicts Plugin vs Core:
- Scripting plugin uses Alt-S for 'menu:Scripting' (conflicts with properties:edit)
- SDS plugin (not in list) uses Alt-S for 'menu:SDS' (conflicts with properties:edit)
comment:103 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
script output for current josm and plugins