Keyboard/Mouse operations manager

Ideas for improvements and requests for new features in XnView Classic

Moderators: XnTriq, helmut, xnview

Xyzzy
Posts: 652
Joined: Tue Nov 23, 2004 10:17 pm
Location: Poland

Keyboard/Mouse operations manager

Post by Xyzzy »

Keyboard/Mouse

This design is a proposal for keyboard shortcuts/mouse operations management in XnView.
Reference threads:
http://newsgroup.xnview.com/viewtopic.php?t=4665
http://newsgroup.xnview.com/viewtopic.php?t=4372

Why doing it
- Currently keyboard/mouse actions are configured in XnView in 3 places- General>Switching modes, Browser>Open action (not directly), and View>Keyboard/Mouse. It would be nice to have them all in one place.
- Make keyboard/mouse operation really flexible- everyone will be able to suit XnView to his/her taste. Now this type of configuration is limited.
- No more discussion about changing some shortcut/mouse action.

Why doing it like this
- Great flexibility
- Clear interface- all in one place and simple to set up
- Should be not too hard to implement, just interface to some internal events table XnView supposedly uses now.

Details
(Note: I decided to use only the most standard Windows controls. Using controls like folding lists with editable fields could improve the feature.)
"Event manager" is one page of Options: General>Mouse/Keyboard.
It contains five tabs ("Menus", "Browser", "View", "Fullscreen", "Other"), and a set of options.
The list box in every tab contains: name of action, first assigned key, first assigned mouse. Items are grouped, every group has its own "header item"-non editable item describing group below.

Code: Select all

|----------------------------------------------------
|/Menus\/Browser\/View\/Fullscreen\/Other\__________|
||-------------------------------------------------||
||                                                 ||
||                                                 ||
||    ASSIGNMENTS HERE                             ||
||                                                 ||
|| Magnify         Ctrl+Alt+H    Right-Hold        ||
|| Skip to next    Space         R-Click           ||
||                                                 ||
||-------------------------------------------------||
| Current action: Fullscreen > Magnify              |
|                                                   |
| Key   [Ctrl+Alt+H___|V] [Delete]  Add: [______]   |
| Mouse [Right-Hold___|V] [Delete]  Add: [____|V]   |  
|                                                   |
|                           [Reset Tab]             |
-----------------------------------------------------
Key and Mouse are drop-down lists containing operations currently assigned to an action.
Delete button removes item currently selected in the list to the left.
To add a new operation you need:
- for keyboard- click input field to the right of Add:, press required shortcut. Shortcut is added to Key list.
- for mouse- select operation from list to the right of second Add

If you enter come operation already used, you get a message informing you which action already uses it and enabling you to:
a.) keep your choice and delete setting elsewhere
b.) Cancel (=clear input control, operation is not added)

Reset Tab resets settings for the whole tab, for those really lost.

Some more details

"Menus" contains action for shortcutable menu items, including RMB menus (I considered setting different shortcuts for the same RMB menu action in fe. Browser and View not really useful). Of course if shortcut cannot work in current context, it doesn't work.
There may be a problem, that in some context some shortcut can be free to use in another context. But for the sake of consistency, let's treat all shortcuts in the same way- as already used. Anyway, is there anyone who would like one shortcut to work different ways depending on context??? (Oh, yes, actally Pierre is, maybe one should persuade him ;) -> hint: Ctrl+G in Browser an View).

"Browser"
Keyboard/mouse operations for File list/Folder tree/Preview panels.

"View","Fullscreen"
Keyboard/mouse operations for View/Fullscreen.

"Other"
Other windows where mouse/keyboard configuration may be helpful. Like Compare or (Quick) Slide show.

How are current controls implemented
General>Switching modes - there are actions avaliable in Browser, View, Fullscreen tabs, similar to 'Open in Browser', 'Open in View', 'Open in Fullscreen'
View>Keyboard/Mouse - current situation is reversed, you choose fe. 'Go to next picture' action and assign fe. 'Space' to it.
Browser>Open action - in Browser there are actions like 'Open image in View', 'Open image in fullscreen', 'Open image in associated program' etc. You get the same behaviour as for 'Open actions' by assigning chosen keypress/mouse to appropriate action.
Example:
Let's say we want open images in View and audio in external program with double click. Currently, in General>Switch modes we have to assign Double Click to Browser<>View and in Browser>Open action define 'Open in XnView' for images and 'Open in associated program' for audio files. It is not quite logical, because after double double click on video file you don't go to View, as you could expect by contents of General>Switch modes. Details of action are defined far away, in Browser>Open action.
In new design you would need to assign 'L-Doubleclick' to 'Open image in View' and 'L-Doubleclick' to 'Open audio in associated program'.
Of course "in real life" all actions are covered by default settings, as currently.

What problems are not covered here
- What items to put in tabs' lists.
- Contents of group of options that are 'mutually exclusive' (ie. groups, where the same key/mouse operation can be assigned to every item of such group). Fe. the same L-Drag mouse operation can be used both for panning image and resizing selection, without conflict.
- What are options avaliable for some specific items- fe. panning can use general 'Mouse move' or 'Cursor keys' operations, which don't make sense for other actions.
- The problem how to handle situations where some mouse operation is at the same time element of another mouse operation (like L-Hold is a start of L-Drag operation) is not considered.
User avatar
Olivier_G
XnThusiast
Posts: 1423
Joined: Thu Dec 23, 2004 7:17 pm
Location: Paris, France

Post by Olivier_G »

I support! :D

I would prefer to group 'Fullscreen' with 'View' (as they are just different states of the same function).
"Menus" tabs is strange: I see menus as a way to display/access actions, and not as a category of actions. Therefore I would prefer a 'General' tab (or maybe 'Tools' or...).
Using controls like folding lists with editable fields could improve the feature
Might be quite interesting as well...

Olivier
PS: Again... great idea! :P
Xyzzy
Posts: 652
Joined: Tue Nov 23, 2004 10:17 pm
Location: Poland

Post by Xyzzy »

Olivier_G wrote:I support! :D

I would prefer to group 'Fullscreen' with 'View' (as they are just different states of the same function).
Possible. It is really technical reasons- keep lists as short as possible and tab names short as well.
Olivier_G wrote:"Menus" tabs is strange: I see menus as a way to display/access actions, and not as a category of actions. Therefore I would prefer a 'General' tab (or maybe 'Tools' or...).
"Menus" because it contains actions accessible via menus. Some of them are accessible also with buttons, but not all.

X.