View Issue Details

IDProjectCategoryView StatusLast Update
0000351MediaMonkey 4Install/Configpublic2007-04-11 18:52
Reporterrusty Assigned To 
PriorityurgentSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
Fixed in Version3.0 
Summary0000351: Configurable hotkeys (Expose functionality via COM objects)
DescriptionCurrently, a range of functionality is supported via hard-coded hotkeys. It would be useful to make these hotkeys user-configurable. In addition, users should be able to set these hotkeys to work globally (i.e. even when MM is not in focus).

Below is a proposed implemntation for hotkeys. It is based on
-Winamp Global Hotkeys plugin
-Hotkey application: http://www.snapfiles.com/reviews/HotKeys/hotkeys.html

|--------------------------------------------------
|Action . . . . Hotkey. . . . . . . . . Global
|---------------------------------------------------
|Action1 . . . .CTRL + ALT + INSERT. . . [x] . . . [Add]
|Action2. . . . CTRL + R . . . . . . . . . [ ] . . . [Remove]
|Action3...
----------------------------------------------------
|--Edit Hotkeys-------------------------------------
|Action: __Action_________________^
|Hotkey: __________________________
|Global: [ ]. . . . . . . . . .. . . . . . . . . [Apply]
|---------------------------------------------------
 
Items to consider that may not be obvious from the dialog include:
-The action list on top should only contain actions that have been assigned
-The action list on top is read only (all edits occur in the edit box below)
-The Action list dropdown should contain ALL actions in MM that already have assigned hotkeys, including those added by scripting functionality (so that hotkeys can be applied to scripts)
-The Action list dropdown should by dynamic and also contain actions for newly installed scripts
-The 'Global' checkbox defines whether the key is active even if MM is not in focus
-Default shortcuts provided via the translations should be reflected in the hotkey list

One item that may be worth is that given that there are a huge list of Actions, it may be preferable to list all actions in the table--even those that have not been assigned shorcuts. If this approach is taken, then the 'Action:' entry in the 'Edit Hotkeys' dialog can be read-only and the dialog modified as follows:

|--------------------------------------------------
|Action. . . . . .Hotkey. . . . . . . . . Global
|---------------------------------------------------
|Action1 . . . .CTRL + ALT + INSERT. . . . [x] . . . . [Edit]
|Action2 . . . .CTRL + R . . . . . . . . . [ ]
|Action3....
|...All Actions....
----------------------------------------------------
|--Edit Hotkeys-------------------------------------
|Action: __Action_________________
|Hotkey: __________________________
|Global: [ ]. . . . . . . . . . . . . . . . . . [Apply]
|---------------------------------------------------

I think that the second design is preferable.
Additional InformationInfo about a useful plugin that might be helpful:
http://www.songs-db.com/forum/viewtopic.php?t=1540

Hotkeys that aren't yet supported:
http://www.songs-db.com/forum/viewtopic.php?t=1238
TagsNo tags attached.
Fixed in build

Relationships

parent of 0002146 resolveduser9 Hotkeys: Add Hotkeys for ratings, search, and undo 

Activities

rusty

2003-08-22 12:05

administrator   ~0002180

In addition to being configurable, the user should be given the option for each hotkey combination of specifying whether or not the hotkey applies globally (even when MM is minimized), or just when it is maximized.

See: http://www.songs-db.com/forum/viewtopic.php?t=483

rusty

2003-09-02 19:43

administrator   ~0002241

Last edited: 2006-02-16 14:58

Also, it should be possible to use hotkeys to access specific plug-ins. We may want to give script writers control over whether an action should appear in the hotkey list.

rusty

2003-10-28 14:30

administrator   ~0002677

Last edited: 2003-10-28 15:37

Related issue to consider: http://www.songs-db.com/forum/viewtopic.php?t=696&view=previous

edited on: 10-28-03 10:37

user9

2006-06-16 15:10

  ~0007349

Last edited: 2006-06-16 15:11

GUI implementation for configurable hotkeys management (addition, remove, change) is already finished.

rusty

2006-10-10 05:15

administrator   ~0008001

Last edited: 2006-10-10 14:57

This is working nicely. There are a few changes I'd recommend before we consider this final:

Bugs:
-After adding a shortcut, if the user tries to check off the global checkbox, it has no effect

Design issues:
-The dialog should be pre-populated with all shortcuts that MM has as defaults so that the user can change these defaults. e.g. (burn, auto-organize, auto-tag, etc.--any command with a shortcut should automatically appear in this list)
-"[ ] Global" should be in a different position (perhaps to the right of the Action combobox), since it currently implies that there's a 'global' button somewhere on the keyboard.
-The 'Script' and 'Function' options should be at the bottom since they're often irrelevant
-The 'New'/'Save', Delete, Apply buttons are confusing since it's unclear when to use 'New' vs 'Save' vs. 'Apply' i.e. the workflow for creating new entries vs editing existing entries is unclear. This could easily be fixed by simplifying the functionality slightly:
--'Add' always adds whatever has been entered in the edit panel
--'Delete' always deletes whetever entry has been selected
--'Apply' always updates whatever entry has been selected

This would result in the following:

|--Edit Hotkeys-------------------------------------
|Hotkey: []ctrl []alt []Shft []win _______________^
|Action: __Action_________________ Global: [ ]
|Script:____________ Function: ________________
|. . . . . . . . . . . . . . . . . . [Apply]
| [Add] [Delete] [Apply]
|---------------------------------------------------

Note: one other thing that might be a good idea would be for the keyboard selection to work based on what the user presses on the keyboard OR what the user selects in the combo-box. The reason for this is that I'm not sure if MM will be smart enough to know what keys are available for each foreign language keyboard.

e.g.
|--Edit Hotkeys-------------------------------------
|Hotkey: []ctrl []alt []Shft []win __<press hotkey>__

jiri

2006-10-14 13:05

administrator   ~0008010

I noticed that it isn't ready for localization, all necessary internal strings should be composed as in other parts of MM so that they can be localized.

rusty

2006-10-20 18:45

administrator   ~0008054

This is looking very good. A couple of additional suggestions:
1) Text Clarification:
Delete current hotkey?
-->
Delete selected hotkey?


2) Text Clarification (at the moment it's unclear what's being replaced)
Hotkey already exists.
Overwrite existing hotkey?
-->
<Keyboard combination> is currently used for '<Action Name>'.
Use it for '<New Action>' instead?

3) Actions in the Actions dropdown are the Action Descriptions instead of the Actions. I think that if someone wants to set a shortcut for e.g. 'Auto-Tag from Amazon', they're going to look specifically for 'Auto Tag from Amazon' rather than the description of the function.

4) Will this work properly on foreign keyboards that have different character sets? i.e. will the list of available characters update appropriately?

jiri

2006-10-26 11:48

administrator   ~0008076

New actions that could be added:
 - Rate 0.5 star down
 - Rate 0.5 star up
 - Rate 1 star up
 - Rate 1 star down
 - Playback: Play
 - Playback: Pause
 - Playback: Skip 5 seconds forward
 - Playback: Skip 5 seconds backward
 - Playback: Pan left
 - Playback: Pan right
 - Playback: Pan center
 - Playback: Volume mute


For rating, it could be useful both for selected or now playing track and so possibly we could add 2 sets of these actions?

jiri

2006-10-26 11:51

administrator   ~0008077

Other implementation details discussed with Pavel:
 - Technical: Remove some unneeded try..except blocks
 - Localization: Make it fully localizable, try to reuse existing strings, e.g. compose strings like: _('Playback') + ': ' + _('Stop').
 - Try to replace key selection dropdown with an editline that accepts pressed keyboard shortcut (like Ctrl+Alt+Enter).

jiri

2006-12-08 14:41

administrator   ~0008246

This note from Rusty wasn't implemented:
 The dialog should be pre-populated with all shortcuts that MM has as defaults so that the user can change these defaults. e.g. (burn, auto-organize, auto-tag, etc.--any command with a shortcut should automatically appear in this list)


Instead, currently there are some entries manually added to the shortcuts, but they don't correspond to what is the default in MM!! E.g. Ctrl-P or Ctrl-B

Shortcuts should be properly pre-populated, and if any default shortcut is modified, it should also appear properly in all MM menus (i.e. Action Shortcut properly will be modified).

rusty

2007-04-11 18:52

administrator   ~0008974

Verified in 1027.