From dbfe92cd27f08d38cc8a2882c147c4289b6b5db1 Mon Sep 17 00:00:00 2001 From: "Steven M. Gava" Date: Mon, 18 Mar 2002 02:38:44 +0000 Subject: [PATCH] further work on dynamic reconfiguration; keybindings --- Lib/idlelib/EditorWindow.py | 33 +++++++++++++++++++++++++++++++++ Lib/idlelib/configDialog.py | 1 + 2 files changed, 34 insertions(+) diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py index 99f40a7694..49f9869332 100644 --- a/Lib/idlelib/EditorWindow.py +++ b/Lib/idlelib/EditorWindow.py @@ -492,6 +492,39 @@ class EditorWindow: idleConf.GetOption('main','EditorWindow','font-size'), fontWeight)) + def ResetKeybindings(self): + #this function is called from configDialog.py + #to update the keybindings if they are changed + self.Bindings.default_keydefs=idleConf.GetCurrentKeySet() + keydefs = self.Bindings.default_keydefs + for event, keylist in keydefs.items(): + self.text.event_delete(event) + self.apply_bindings() + #update menu accelerators + menuEventDict={} + for menu in self.Bindings.menudefs: + menuEventDict[menu[0]]={} + for item in menu[1]: + if item: + menuEventDict[menu[0]][prepstr(item[0])[1]]=item[1] + for menubarItem in self.menudict.keys(): + menu=self.menudict[menubarItem] + end=menu.index(END)+1 + for index in range(0,end): + if menu.type(index)=='command': + accel=menu.entrycget(index,'accelerator') + if accel: + itemName=menu.entrycget(index,'label') + event='' + if menuEventDict.has_key(menubarItem): + if menuEventDict[menubarItem].has_key(itemName): + event=menuEventDict[menubarItem][itemName] + if event: + #print 'accel was:',accel + accel=get_accelerator(keydefs, event) + menu.entryconfig(index,accelerator=accel) + #print 'accel now:',accel,'\n' + def saved_change_hook(self): short = self.short_title() long = self.long_title() diff --git a/Lib/idlelib/configDialog.py b/Lib/idlelib/configDialog.py index a7ad53014a..bff86d9036 100644 --- a/Lib/idlelib/configDialog.py +++ b/Lib/idlelib/configDialog.py @@ -1096,6 +1096,7 @@ class ConfigDialog(Toplevel): for instance in winInstances: instance.ResetColorizer() instance.ResetFont() + instance.ResetKeybindings() def Cancel(self): self.destroy() -- 2.50.0