[Idle-dev] KeyConfig, KeyBinding and other related issues.

Saimadhav Heblikar saimadhavheblikar at gmail.com
Wed Jun 11 08:39:22 CEST 2014


The following are the issues related to shortcuts, keybinding dialog,
where the shortcuts are set and config-keys.def where the shortcuts
are stored.


1) Issue12387: Very simple way to reproduce the bug:
With/without CAPS, Ctrl + x key, performs Cut action(windows keyset).
This is agreeable because both those keybindings are set. The bindings
are
<Control-Key-x> and <Control-Key-X>
But, with/without CAPS, Ctrl + Shift + x key also performs Cut action.
The bindings are <Control-Shift-Key-x> and <Control-Shift-Key-X>
*Workaround*:
Bind the redundant <Control-Shift-Key-x> and <Control-Shifrt-Key-X> to
<<do-nothing>>.(already exists).

This has to be done for all existing <Ctrl+[A-Z][a-z]> key combinations.
For sake of completeness, If the user wants Control + Shift + *x key*,
we have to remove both from <<do-nothing>> keybinding and add it to
whatever binding that the user wants.
This has to be done in the current validity checking method or a new
parsing method.
I have tested this solution, and am convinced it would work.


 2) Issue11437: Its hard to explain this issue in short. Please read the issue
at http://bugs.python.org/issue11437
Workaround:
This is easy to solve, if we use the solution from issue12387. With
the parser method, both "simple" and "advanced" dialogs will be
parsed, and we will have a 1-to-1 mapping.
For the case when someone tries to directly "hand-edit" the config
files, with http://bugs.python.org/issue21696 and tests for the parser
method in place, we should able to raise an earlier, ideally before
IDLE starts. We should also be able to pinpoint where the error
occurs.


3) Issue20580: This does not involve coding, but is about providing
platform specific default config. This can only be done, once we agree
on 1 and 2.


4) Issue21519: Again dependent on 1 and 2. Not too sure, if it is
going to be an issue with 1 and 2. If we go ahead with 2, and have a
parser method which is testable, we can also validate the "advanced"
dialog.


For other issues which are caused by typo in config,
http://bugs.python.org/issue21696 along with testable parser method
should catch them.
-----------------

I plan to work on these issues in test driven style as suggested by
Tal Einat, especially keeping in mind the above issues, their current
outcome and the required outcome.



-- 
Regards
Saimadhav Heblikar


More information about the IDLE-dev mailing list