mirror of https://github.com/python/cpython
improvement to keybinding re-use check
This commit is contained in:
parent
9f25e67dd7
commit
e28ee754b0
|
@ -10,6 +10,7 @@
|
|||
# extension that are not sensibly re-configurable. If present,
|
||||
# ExtensionName_cfgBindings defines virtual event bindings for the extension
|
||||
# that may be sensibly re-configured.
|
||||
# See config-keys.def for notes on specifying keys.
|
||||
|
||||
[FormatParagraph]
|
||||
enable=1
|
||||
|
|
|
@ -2,74 +2,76 @@
|
|||
# file is the default config file for idle key binding settings.
|
||||
# Where multiple keys are specified for an action: if they are separated
|
||||
# by a space (eg. action=<key1> <key2>) then the keys are altenatives, if
|
||||
# there is no space (eg. action=<key1>key2>) then the keys comprise a
|
||||
# single 'emacs style' multi-keystoke binding.
|
||||
# there is no space (eg. action=<key1><key2>) then the keys comprise a
|
||||
# single 'emacs style' multi-keystoke binding. The tk event specifier 'Key'
|
||||
# is used in all cases, for consistency in auto key conflict checking in the
|
||||
# configuration gui.
|
||||
|
||||
[IDLE Classic Windows]
|
||||
copy=<Control-c> <Control-C>
|
||||
cut=<Control-x> <Control-X>
|
||||
paste=<Control-v> <Control-V>
|
||||
beginning-of-line= <Home>
|
||||
center-insert=<Control-l>
|
||||
close-all-windows=<Control-q>
|
||||
close-window=<Alt-F4>
|
||||
end-of-file=<Control-d>
|
||||
python-docs=<F1>
|
||||
python-context-help=<Shift-F1>
|
||||
history-next=<Alt-n>
|
||||
history-previous=<Alt-p>
|
||||
interrupt-execution=<Control-c>
|
||||
open-class-browser=<Alt-c>
|
||||
open-module=<Alt-m>
|
||||
open-new-window=<Control-n>
|
||||
open-window-from-file=<Control-o>
|
||||
plain-newline-and-indent=<Control-j>
|
||||
redo=<Control-Shift-z>
|
||||
remove-selection=<Escape>
|
||||
save-copy-of-window-as-file=<Alt-Shift-s>
|
||||
save-window-as-file=<Alt-s>
|
||||
save-window=<Control-s>
|
||||
select-all=<Alt-a>
|
||||
toggle-auto-coloring=<Control-slash>
|
||||
undo=<Control-z>
|
||||
find=<Control-f>
|
||||
find-again=<Control-g> <F3>
|
||||
find-in-files=<Alt-F3>
|
||||
find-selection=<Control-F3>
|
||||
replace=<Control-h>
|
||||
goto-line=<Alt-g>
|
||||
copy=<Control-Key-c>
|
||||
cut=<Control-Key-x>
|
||||
paste=<Control-Key-v>
|
||||
beginning-of-line= <Key-Home>
|
||||
center-insert=<Control-Key-l>
|
||||
close-all-windows=<Control-Key-q>
|
||||
close-window=<Alt-Key-F4>
|
||||
end-of-file=<Control-Key-d>
|
||||
python-docs=<Key-F1>
|
||||
python-context-help=<Shift-Key-F1>
|
||||
history-next=<Alt-Key-n>
|
||||
history-previous=<Alt-Key-p>
|
||||
interrupt-execution=<Control-Key-c>
|
||||
open-class-browser=<Alt-Key-c>
|
||||
open-module=<Alt-Key-m>
|
||||
open-new-window=<Control-Key-n>
|
||||
open-window-from-file=<Control-Key-o>
|
||||
plain-newline-and-indent=<Control-Key-j>
|
||||
redo=<Control-Shift-Key-z>
|
||||
remove-selection=<Key-Escape>
|
||||
save-copy-of-window-as-file=<Alt-Shift-Key-s>
|
||||
save-window-as-file=<Alt-Key-s>
|
||||
save-window=<Control-Key-s>
|
||||
select-all=<Alt-Key-a>
|
||||
toggle-auto-coloring=<Control-Key-slash>
|
||||
undo=<Control-Key-z>
|
||||
find=<Control-Key-f>
|
||||
find-again=<Control-Key-g> <Key-F3>
|
||||
find-in-files=<Alt-Key-F3>
|
||||
find-selection=<Control-Key-F3>
|
||||
replace=<Control-Key-h>
|
||||
goto-line=<Alt-Key-g>
|
||||
|
||||
[IDLE Classic Unix]
|
||||
copy=<Alt-w> <Meta-w>
|
||||
cut=<Control-w>
|
||||
paste=<Control-y>
|
||||
beginning-of-line=<Control-a> <Home>
|
||||
center-insert=<Control-l>
|
||||
close-all-windows=<Control-x><Control-c>
|
||||
close-window=<Control-x><Control-0> <Control-x><Key-0>
|
||||
do-nothing=<Control-x>
|
||||
end-of-file=<Control-d>
|
||||
history-next=<Alt-n> <Meta-n>
|
||||
history-previous=<Alt-p> <Meta-p>
|
||||
interrupt-execution=<Control-c>
|
||||
open-class-browser=<Control-x><Control-b>
|
||||
open-module=<Control-x><Control-m>
|
||||
open-new-window=<Control-x><Control-n>
|
||||
open-window-from-file=<Control-x><Control-f>
|
||||
plain-newline-and-indent=<Control-j>
|
||||
python-docs=<Control-h>
|
||||
python-context-help=<Control-Shift-h>
|
||||
redo=<Alt-z> <Meta-z>
|
||||
remove-selection=<Escape>
|
||||
save-copy-of-window-as-file=<Control-x><w>
|
||||
save-window-as-file=<Control-x><Control-w>
|
||||
save-window=<Control-x><Control-s>
|
||||
select-all=<Alt-a> <Meta-a>
|
||||
toggle-auto-coloring=<Control-slash>
|
||||
undo=<Control-z>
|
||||
find=<Control-u><Control-u><Control-s>
|
||||
find-again=<Control-u><Control-s>
|
||||
find-in-files=<Alt-s> <Meta-s>
|
||||
find-selection=<Control-s>
|
||||
replace=<Control-r>
|
||||
goto-line=<Alt-g> <Meta-g>
|
||||
copy=<Alt-Key-w> <Meta-Key-w>
|
||||
cut=<Control-Key-w>
|
||||
paste=<Control-Key-y>
|
||||
beginning-of-line=<Control-Key-a> <Key-Home>
|
||||
center-insert=<Control-Key-l>
|
||||
close-all-windows=<Control-Key-x><Control-Key-c>
|
||||
close-window=<Control-Key-x><Control-Key-0>
|
||||
do-nothing=<Control-Key-x>
|
||||
end-of-file=<Control-Key-d>
|
||||
history-next=<Alt-Key-n> <Meta-Key-n>
|
||||
history-previous=<Alt-Key-p> <Meta-Key-p>
|
||||
interrupt-execution=<Control-Key-c>
|
||||
open-class-browser=<Control-Key-x><Control-Key-b>
|
||||
open-module=<Control-Key-x><Control-Key-m>
|
||||
open-new-window=<Control-Key-x><Control-Key-n>
|
||||
open-window-from-file=<Control-Key-x><Control-Key-f>
|
||||
plain-newline-and-indent=<Control-Key-j>
|
||||
python-docs=<Control-Key-h>
|
||||
python-context-help=<Control-Shift-Key-h>
|
||||
redo=<Alt-Key-z> <Meta-Key-z>
|
||||
remove-selection=<Key-Escape>
|
||||
save-copy-of-window-as-file=<Control-Key-x><Control-Key-y>
|
||||
save-window-as-file=<Control-Key-x><Control-Key-w>
|
||||
save-window=<Control-Key-x><Control-Key-s>
|
||||
select-all=<Alt-Key-a> <Meta-Key-a>
|
||||
toggle-auto-coloring=<Control-Key-slash>
|
||||
undo=<Control-Key-z>
|
||||
find=<Control-Key-u><Control-Key-u><Control-Key-s>
|
||||
find-again=<Control-Key-u><Control-Key-s>
|
||||
find-in-files=<Alt-Key-s> <Meta-Key-s>
|
||||
find-selection=<Control-Key-s>
|
||||
replace=<Control-Key-r>
|
||||
goto-line=<Alt-Key-g> <Meta-Key-g>
|
||||
|
|
|
@ -561,7 +561,16 @@ class ConfigDialog(Toplevel):
|
|||
listIndex=self.listBindings.index(ANCHOR)
|
||||
binding=self.listBindings.get(listIndex)
|
||||
bindName=binding.split()[0] #first part, up to first space
|
||||
currentKeySequences=idleConf.GetCurrentKeySet().values()
|
||||
if self.keysAreBuiltin.get():
|
||||
currentKeySetName=self.builtinKeys.get()
|
||||
else:
|
||||
currentKeySetName=self.customKeys.get()
|
||||
currentBindings=idleConf.GetCurrentKeySet()
|
||||
if currentKeySetName in self.changedItems['keys'].keys(): #unsaved changes
|
||||
keySetChanges=self.changedItems['keys'][currentKeySetName]
|
||||
for event in keySetChanges.keys():
|
||||
currentBindings[event]=keySetChanges[event].split()
|
||||
currentKeySequences=currentBindings.values()
|
||||
newKeys=GetKeysDialog(self,'Get New Keys',bindName,
|
||||
currentKeySequences).result
|
||||
if newKeys: #new keys were specified
|
||||
|
|
|
@ -30,19 +30,10 @@ class GetKeysDialog(Toplevel):
|
|||
self.keyCtrl.set('')
|
||||
self.keyAlt=StringVar(self)
|
||||
self.keyAlt.set('')
|
||||
# self.keyMeta=StringVar(self)
|
||||
# self.keyMeta.set('')
|
||||
self.keyShift=StringVar(self)
|
||||
self.keyShift.set('')
|
||||
# self.keyFinal1=StringVar(self)
|
||||
# self.keyFinal1.set('')
|
||||
# self.keyFinal2=StringVar(self)
|
||||
# self.keyFinal2.set('')
|
||||
# self.keyFn1=IntVar(self)
|
||||
# self.keyFn2=IntVar(self)
|
||||
self.CreateWidgets()
|
||||
self.LoadFinalKeyList()
|
||||
#self.buttonOk.focus_set()
|
||||
self.withdraw() #hide while setting geometry
|
||||
self.update_idletasks()
|
||||
self.geometry("+%d+%d" %
|
||||
|
@ -91,10 +82,6 @@ class GetKeysDialog(Toplevel):
|
|||
command=self.BuildKeyString,
|
||||
text='Alt',variable=self.keyAlt,onvalue='Alt',offvalue='')
|
||||
checkAlt.grid(row=0,column=1,padx=2,sticky=W)
|
||||
# checkMeta=Checkbutton(self.frameControlsBasic,
|
||||
# command=self.BuildKeyString,
|
||||
# text='Meta',variable=self.keyMeta,onvalue='Meta',offvalue='')
|
||||
# checkMeta.grid(row=0,column=2,padx=2,sticky=W)
|
||||
checkShift=Checkbutton(self.frameControlsBasic,
|
||||
command=self.BuildKeyString,
|
||||
text='Shift',variable=self.keyShift,onvalue='Shift',offvalue='')
|
||||
|
@ -102,21 +89,16 @@ class GetKeysDialog(Toplevel):
|
|||
labelFnAdvice=Label(self.frameControlsBasic,justify=LEFT,
|
||||
text="Select the desired modifier\n"+
|
||||
"keys above, and final key\n"+
|
||||
# "keys above, and final key(s)\n"+
|
||||
"from the list on the right.")
|
||||
labelFnAdvice.grid(row=1,column=0,columnspan=4,padx=2,sticky=W)
|
||||
self.listKeysFinal=Listbox(self.frameControlsBasic,width=15,height=10,
|
||||
selectmode=SINGLE)
|
||||
# selectmode=MULTIPLE)
|
||||
self.listKeysFinal.bind('<ButtonRelease-1>',self.FinalKeySelected)
|
||||
self.listKeysFinal.grid(row=0,column=4,rowspan=4,sticky=NS)
|
||||
scrollKeysFinal=Scrollbar(self.frameControlsBasic,orient=VERTICAL,
|
||||
command=self.listKeysFinal.yview)
|
||||
self.listKeysFinal.config(yscrollcommand=scrollKeysFinal.set)
|
||||
scrollKeysFinal.grid(row=0,column=5,rowspan=4,sticky=NS)
|
||||
# self.buttonAddNew=Button(self.frameControlsBasic,
|
||||
# text='Accept Key Sequence',width=25,command=None)
|
||||
# self.buttonAddNew.grid(row=2,column=0,columnspan=4)
|
||||
self.buttonClear=Button(self.frameControlsBasic,
|
||||
text='Clear Keys',command=self.ClearKeySeq)
|
||||
self.buttonClear.grid(row=2,column=0,columnspan=4)
|
||||
|
|
Loading…
Reference in New Issue