commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r8204 - trunk/gnue-forms/src/input


From: johannes
Subject: [gnue] r8204 - trunk/gnue-forms/src/input
Date: Mon, 6 Mar 2006 07:00:24 -0600 (CST)

Author: johannes
Date: 2006-03-06 07:00:23 -0600 (Mon, 06 Mar 2006)
New Revision: 8204

Modified:
   trunk/gnue-forms/src/input/GFKeyMapper.py
Log:
Fixed updating the user key map, so changed event-bindings are correctly 
displayed and used in the menus


Modified: trunk/gnue-forms/src/input/GFKeyMapper.py
===================================================================
--- trunk/gnue-forms/src/input/GFKeyMapper.py   2006-03-04 08:27:24 UTC (rev 
8203)
+++ trunk/gnue-forms/src/input/GFKeyMapper.py   2006-03-06 13:00:23 UTC (rev 
8204)
@@ -69,17 +69,28 @@
     self.__keyTranslations = keyset
     self._translateUserKeyMap()
 
-  #
-  # Install a key/event mapping.
-  # This can be called by the app,
-  # but more than likely, the app
-  # will call loadUserKeyMap which
-  # calls this.
-  #
-  def setUserKeyMap(self, keymap):
-    self.__functionMap.update (keymap)
-    self._translateUserKeyMap()
 
+  # ---------------------------------------------------------------------------
+  # Install a key/event mapping
+  # ---------------------------------------------------------------------------
+
+  def setUserKeyMap (self, keymap):
+    """
+    Install a key/event mapping.
+
+    @param keymap: a dictinonary with tuples (basekey, shift-state, ctrl-state,
+      meta-state) as keys and event names as values
+    """
+
+    for (keydef, event) in keymap.items ():
+      for (oldkey, oldevent) in self.__functionMap.items ():
+        if oldevent == event:
+          del self.__functionMap [oldkey]
+          self.__functionMap [keydef] = event
+          break
+
+    self._translateUserKeyMap ()
+
   #
   # Given a hash of the form:
   # { 'PREVBLOCK': 'Ctrl-F1' }
@@ -132,6 +143,7 @@
           % {'comb' : dict [event],
              'event': event}
 
+      print "SETTING:", event.upper (), ":", (base, shifted, ctrl, meta)
       usermap [(base, shifted, ctrl, meta)] = event.upper ()
 
 
@@ -181,6 +193,7 @@
   #
   def getEventKeystrokeRepr(self, event, metamappings={}, separator="+"):
     keystroke = self.getEventKeystroke(event)
+    print "KEYSTROKE:", repr (keystroke)
 
     if keystroke is None:
       return None





reply via email to

[Prev in Thread] Current Thread [Next in Thread]