[Python-checkins] commit of r41523 - python/trunk/Lib/idlelib

kurt.kaiser@python.org kurt.kaiser at python.org
Tue Nov 22 22:09:42 CET 2005


Author: kurt.kaiser
Date: Tue Nov 22 22:09:37 2005
New Revision: 41523

Modified:
   python/trunk/Lib/idlelib/NEWS.txt
   python/trunk/Lib/idlelib/keybindingDialog.py
Log:
1. Made advanced keybinding dialog functional.
2. Allow binding of movement keys



Modified: python/trunk/Lib/idlelib/NEWS.txt
==============================================================================
--- python/trunk/Lib/idlelib/NEWS.txt	(original)
+++ python/trunk/Lib/idlelib/NEWS.txt	Tue Nov 22 22:09:37 2005
@@ -1,7 +1,14 @@
 What's New in IDLE 1.2a0?
 =======================
 
-*Release date: XX-XXX-2005*
+*Release date: XX-XXX-2006*
+
+- Options / Keys / Advanced dialog made functional.  Also, allow binding
+  of 'movement' keys.
+
+- 'syntax' patch adds improved calltips and a new class attribute listbox.
+  MultiCall module allows binding multiple actions to an event.
+  Patch 906702 Noam Raphael
 
 - Better indentation after first line of string continuation.
   IDLEfork Patch 681992, Noam Raphael

Modified: python/trunk/Lib/idlelib/keybindingDialog.py
==============================================================================
--- python/trunk/Lib/idlelib/keybindingDialog.py	(original)
+++ python/trunk/Lib/idlelib/keybindingDialog.py	Tue Nov 22 22:09:37 2005
@@ -26,12 +26,13 @@
         self.result=''
         self.keyString=StringVar(self)
         self.keyString.set('')
-        self.SetModifiersForPlatform()
+        self.SetModifiersForPlatform() # set self.modifiers, self.modifier_label
         self.modifier_vars = []
         for modifier in self.modifiers:
             variable = StringVar(self)
             variable.set('')
             self.modifier_vars.append(variable)
+        self.advanced = False
         self.CreateWidgets()
         self.LoadFinalKeyList()
         self.withdraw() #hide while setting geometry
@@ -136,7 +137,7 @@
             self.modifiers = ['Shift', 'Control', 'Option', 'Command']
         else:
             self.modifiers = ['Control', 'Alt', 'Shift']
-        self.modifier_label = {'Control': 'Ctrl'}
+        self.modifier_label = {'Control': 'Ctrl'} # short name
 
     def ToggleLevel(self):
         if  self.buttonLevel.cget('text')[:8]=='Advanced':
@@ -145,11 +146,13 @@
             self.frameKeySeqAdvanced.lift()
             self.frameHelpAdvanced.lift()
             self.entryKeysAdvanced.focus_set()
+            self.advanced = True
         else:
             self.ClearKeySeq()
             self.buttonLevel.config(text='Advanced Key Binding Entry >>')
             self.frameKeySeqBasic.lift()
             self.frameControlsBasic.lift()
+            self.advanced = False
 
     def FinalKeySelected(self,event):
         self.BuildKeyString()
@@ -208,7 +211,7 @@
         return key
 
     def OK(self, event=None):
-        if self.KeysOK():
+        if self.advanced or self.KeysOK():  # doesn't check advanced string yet
             self.result=self.keyString.get()
             self.destroy()
 
@@ -217,7 +220,12 @@
         self.destroy()
 
     def KeysOK(self):
-        "Validity check on user's keybinding selection"
+        '''Validity check on user's 'basic' keybinding selection.
+
+        Doesn't check the string produced by the advanced dialog because
+        'modifiers' isn't set.
+
+        '''
         keys = self.keyString.get()
         keys.strip()
         finalKey = self.listKeysFinal.get(ANCHOR)
@@ -232,20 +240,19 @@
         elif not keys.endswith('>'):
             tkMessageBox.showerror(title=title, parent=self,
                                    message='Missing the final Key')
-        elif not modifiers and finalKey not in self.functionKeys:
+        elif (not modifiers
+              and finalKey not in self.functionKeys + self.moveKeys):
             tkMessageBox.showerror(title=title, parent=self,
                                    message='No modifier key(s) specified.')
         elif (modifiers == ['Shift']) \
                  and (finalKey not in
-                      self.functionKeys + ('Tab', 'Space')):
-            msg = 'The shift modifier by itself may not be used with' \
-                  ' this key symbol; only with F1-F12, Tab, or Space'
-            tkMessageBox.showerror(title=title, parent=self,
-                                   message=msg)
+                      self.functionKeys + self.moveKeys + ('Tab', 'Space')):
+            msg = 'The shift modifier by itself may not be used with'\
+                  ' this key symbol.'
+            tkMessageBox.showerror(title=title, parent=self, message=msg)
         elif keySequence in self.currentKeySequences:
             msg = 'This key combination is already in use.'
-            tkMessageBox.showerror(title=title, parent=self,
-                                   message=msg)
+            tkMessageBox.showerror(title=title, parent=self, message=msg)
         else:
             keysOK = True
         return keysOK


More information about the Python-checkins mailing list