Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/presence/Buddy.py
diff options
context:
space:
mode:
authorDan Williams <dcbw@localhost.localdomain>2006-07-23 14:21:00 (GMT)
committer Dan Williams <dcbw@localhost.localdomain>2006-07-23 14:21:00 (GMT)
commit7c996b00114c1cdc6579af57a7da63639b5fe1d5 (patch)
tree340367b4a5f38ccc2db853a1e5996fad0851ba27 /sugar/presence/Buddy.py
parent1d0b4e12b8f6a0ddc7df0c80fe34796d127f80c5 (diff)
More fixes, and convert python PS bindings to more glib style method names
Diffstat (limited to 'sugar/presence/Buddy.py')
-rw-r--r--sugar/presence/Buddy.py56
1 files changed, 41 insertions, 15 deletions
diff --git a/sugar/presence/Buddy.py b/sugar/presence/Buddy.py
index ca26946..7baefdb 100644
--- a/sugar/presence/Buddy.py
+++ b/sugar/presence/Buddy.py
@@ -1,18 +1,19 @@
import gobject
+import gtk
import dbus, dbus_bindings
class Buddy(gobject.GObject):
__gsignals__ = {
- 'IconChanged': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'icon-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
([])),
- 'ServiceAppeared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'service-appeared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
([gobject.TYPE_PYOBJECT])),
- 'ServiceDisappeared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'service-disappeared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
([gobject.TYPE_PYOBJECT])),
- 'JoinedActivity': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'joined-activity': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
([gobject.TYPE_PYOBJECT])),
- 'LeftActivity': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'left-activity': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
([gobject.TYPE_PYOBJECT]))
}
@@ -24,6 +25,7 @@ class Buddy(gobject.GObject):
self._object_path = object_path
self._ps_new_object = new_obj_cb
self._ps_del_object = del_obj_cb
+ self._properties = {}
bobj = bus.get_object(self._PRESENCE_SERVICE, object_path)
self._buddy = dbus.Interface(bobj, self._BUDDY_DBUS_INTERFACE)
self._buddy.connect_to_signal('IconChanged', self._icon_changed_cb)
@@ -31,59 +33,83 @@ class Buddy(gobject.GObject):
self._buddy.connect_to_signal('ServiceDisappeared', self._service_disappeared_cb)
self._buddy.connect_to_signal('JoinedActivity', self._joined_activity_cb)
self._buddy.connect_to_signal('LeftActivity', self._left_activity_cb)
+ self._buddy.connect_to_signal('PropertyChanged', self._property_changed_cb)
+ self._properties = self._buddy.getProperties()
def object_path(self):
return self._object_path
def _emit_icon_changed_signal(self):
- self.emit('IconChanged')
+ self.emit('icon-changed')
return False
def _icon_changed_cb(self):
gobject.idle_add(self._emit_icon_changed_signal)
def _emit_service_appeared_signal(self, object_path):
- self.emit('ServiceAppeared', self._ps_new_object(object_path))
+ self.emit('service-appeared', self._ps_new_object(object_path))
return False
def _service_appeared_cb(self, object_path):
gobject.idle_add(self._emit_service_appeared_signal, object_path)
def _emit_service_disappeared_signal(self, object_path):
- self.emit('ServiceDisappeared', self._ps_new_object(object_path))
+ self.emit('service-disappeared', self._ps_new_object(object_path))
return False
def _service_disappeared_cb(self, object_path):
gobject.idle_add(self._emit_service_disappeared_signal, object_path)
def _emit_joined_activity_signal(self, object_path):
- self.emit('JoinedActivity', self._ps_new_object(object_path))
+ self.emit('joined-activity', self._ps_new_object(object_path))
return False
def _joined_activity_cb(self, object_path):
gobject.idle_add(self._emit_joined_activity_signal, object_path)
def _emit_left_activity_signal(self, object_path):
- self.emit('LeftActivity', self._ps_new_object(object_path))
+ self.emit('left-activity', self._ps_new_object(object_path))
return False
def _left_activity_cb(self, object_path):
gobject.idle_add(self._emit_left_activity_signal, object_path)
- def getProperties(self):
- return self._buddy.getProperties()
+ def _handle_property_changed_signal(self, prop_list):
+ self._properties = self._buddy.getProperties()
- def getIcon(self):
+ def _property_changed_cb(self, prop_list):
+ gobject.idle_add(self._handle_property_changed_signal, prop_list)
+
+ def get_name(self):
+ return self._properties['name']
+
+ def get_ip4_address(self):
+ return self._properties['ip4_address']
+
+ def is_owner(self):
+ return self._properties['owner']
+
+ def get_icon(self):
return self._buddy.getIcon()
- def getServiceOfType(self, stype):
+ def get_icon_pixbuf(self):
+ icon = self._buddy.getIcon()
+ if icon:
+ pbl = gtk.gdk.PixbufLoader()
+ pbl.write(icon)
+ pbl.close()
+ return pbl.get_pixbuf()
+ else:
+ return None
+
+ def get_service_of_type(self, stype):
try:
object_path = self._buddy.getServiceOfType(stype)
except dbus_bindings.DBusException:
return None
return self._ps_new_object(object_path)
- def getJoinedActivities(self):
+ def get_joined_activities(self):
try:
resp = self._buddy.getJoinedActivities()
except dbus_bindings.DBusException: