From 397b0a4ec150c4400de8a041d077c819f6e978bd Mon Sep 17 00:00:00 2001 From: Robert McQueen Date: Wed, 15 Feb 2006 23:45:50 +0000 Subject: 2006-02-16 Robert McQueen * glib/dbus-gmain.c: Make the previous commit compile. * python/_dbus.py, python/matchrules.py: Patch from Ole Andre Ravnaas to allow you to specify sender_keyword="foo", path_keyword="bar" when adding a signal listener, so that you can bind to signals generically but still do something useful in your callback. * python/dbus_bindings.pyx: Demarshal the byte type as unsigned chars so that they're not cast to chars and made negative. Thanks to Jakub Stachowski for reporting this and testing the fix. --- python/_dbus.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'python/_dbus.py') diff --git a/python/_dbus.py b/python/_dbus.py index 2376f172..7e17d9f6 100644 --- a/python/_dbus.py +++ b/python/_dbus.py @@ -158,6 +158,8 @@ class Bus(object): args_dict[num] = value except ValueError: raise TypeError("Invalid arg index %s"%snum) + elif key in ("sender_keyword", "path_keyword"): + pass else: raise TypeError("Unknown keyword %s"%(key)) @@ -178,6 +180,12 @@ class Bus(object): match_rule = SignalMatchRule(signal_name, dbus_interface, named_service, path) + for kw in ("sender_keyword", "path_keyword"): + if kw in keywords: + setattr(match_rule, kw, keywords[kw]) + else: + setattr(match_rule, kw, None) + if args_dict: match_rule.add_args_match(args_dict) -- cgit