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 _______________________________________________ Commit-gnue mailing list Commit-gnue@gnu.org http://lists.gnu.org/mailman/listinfo/commit-gnue