[MonoDevelop] Implemented Configurable Key Bindings

Lluis Sanchez lluis at ximian.com
Wed Jul 11 13:51:43 EDT 2007


El dc 11 de 07 del 2007 a les 13:19 -0400, en/na Jeffrey Stedfast va
escriure:
> On Wed, 2007-07-11 at 22:17 +0530, Balaji Rao wrote:
> > On Fri, Jul 06, 2007 at 01:06:44PM +0200, Lluis Sanchez wrote:
> > > Hey, it looks like a good start ;)
> > > The only comment I can make now is that you should use Stetic instead of
> > > Glade for new windows.
> > > 
> > > Lluis.
> > > 
> > Hello, included as attachment is a patch whch implements conf key
> > bindings. I have used stetic for it. and now its almost stable. I
> > have fixed some bugs.
> > 
> > One question is that, should commands, which by default dont have a
> > shortcut, be allowed be assigned a shortcut?
> 
> yes, absolutely.
> 
> 
> Also, you should know I'm working on some key binding stuff as well -
> allowing emacs-like multi-state key bindings (should be relatively easy
> to get working with your code - and I'll probably be the one to make the
> adjustments if needed, so don't worry too much about that).
> 
> I've also got some additional ideas for your key binding UI stuff:
> 
> 1. the key-binding editor UI should probably allow setting of multiple
> shortcuts for each command

Why so? I think it would add unneeded complexity.

> 
> (I'll probably have to modify the Command class to allow this?)
> 
> 2. if the user tries to register a key binding for a command that
> conflicts with some other commands' key binding, then you should warn
> the user, allowing them to continue with the overriding (which would
> remove that binding from the other command) - or allow them to cancel.

The command system supports assigning the same shortcut to different
commands. That's useful when those commands are never enabled at the
same time. For example, right now F2 is assigned both to Rename and Find
Next Bookmark. If you are in the project tree, F2 will rename the
selected item. If the focus is in the editor, it will jump to the next
bookmark.

If two commands with the same shortcut are enabled at the same time,
then it is undefined which one will be executed when pressing the
shortcut.

So, when a conflict is detected I think it should show a warning and
give three options: remove the shortcut from the other command, share
the shortcut, or cancel.

> 
> 3. Once I finish with my current code to allow for multi-state key
> bindings (hopefully by the end of the week I'll have some code
> committed), we'll need to adjust your UI a bit to allow setting of those
> 
> 4. It would be really nice if we had some sort of drop-down combo-box
> toward the top of the OptionPanel allowing the user to select from some
> pre-configured key-binding "profiles": Default, VisualStudio.Net,
> SharpDevelop, Emacs, (Eclipse?) ... etc

Yes, we need that.

> 
> 5. Even once the user selects a key-binding profile, it would be nice to
> allow them to simply use that profile as a 'base' and then adjust things
> as they see fit

Agreed.

Lluis.




More information about the Monodevelop-list mailing list