[Idle-dev] CVS: idle EditorWindow.py,1.19,1.20 configDialog.py,1.43,1.44

Stephen M. Gava elguavas@users.sourceforge.net
Sun, 17 Mar 2002 18:38:46 -0800


Update of /cvsroot/idlefork/idle
In directory usw-pr-cvs1:/tmp/cvs-serv25917

Modified Files:
	EditorWindow.py configDialog.py 
Log Message:
further work on dynamic reconfiguration;
keybindings


Index: EditorWindow.py
===================================================================
RCS file: /cvsroot/idlefork/idle/EditorWindow.py,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -r1.19 -r1.20
*** EditorWindow.py	12 Mar 2002 00:21:56 -0000	1.19
--- EditorWindow.py	18 Mar 2002 02:38:44 -0000	1.20
***************
*** 493,496 ****
--- 493,529 ----
                  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()

Index: configDialog.py
===================================================================
RCS file: /cvsroot/idlefork/idle/configDialog.py,v
retrieving revision 1.43
retrieving revision 1.44
diff -C2 -r1.43 -r1.44
*** configDialog.py	12 Mar 2002 02:33:52 -0000	1.43
--- configDialog.py	18 Mar 2002 02:38:44 -0000	1.44
***************
*** 1097,1100 ****
--- 1097,1101 ----
              instance.ResetColorizer()
              instance.ResetFont()
+             instance.ResetKeybindings()
          
      def Cancel(self):