Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--services/presence/Buddy.py4
-rw-r--r--shell/model/BuddyModel.py8
2 files changed, 10 insertions, 2 deletions
diff --git a/services/presence/Buddy.py b/services/presence/Buddy.py
index 3cbd1a5..2d6f35d 100644
--- a/services/presence/Buddy.py
+++ b/services/presence/Buddy.py
@@ -118,6 +118,8 @@ class Buddy(object):
self._services = {}
self._activities = {}
+ self._icon_cache = icon_cache
+
self._nick_name = None
self._address = None
if service is not None:
@@ -137,8 +139,6 @@ class Buddy(object):
if service is not None:
self.add_service(service)
- self._icon_cache = icon_cache
-
def object_path(self):
return dbus.ObjectPath(self._object_path)
diff --git a/shell/model/BuddyModel.py b/shell/model/BuddyModel.py
index 3a83689..9fea19b 100644
--- a/shell/model/BuddyModel.py
+++ b/shell/model/BuddyModel.py
@@ -10,6 +10,8 @@ class BuddyModel(gobject.GObject):
'disappeared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
'color-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
([gobject.TYPE_PYOBJECT])),
+ 'icon-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ ([])),
'current-activity-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
([gobject.TYPE_PYOBJECT]))
}
@@ -23,6 +25,7 @@ class BuddyModel(gobject.GObject):
self._ba_handler = None
self._pc_handler = None
self._dis_handler = None
+ self._bic_handler = None
self._cur_activity = None
self._pservice = PresenceService.get_instance()
@@ -72,6 +75,7 @@ class BuddyModel(gobject.GObject):
self._pc_handler = self._buddy.connect('property-changed', self.__buddy_property_changed_cb)
self._dis_handler = self._buddy.connect('disappeared', self.__buddy_disappeared_cb)
+ self._bic_handler = self._buddy.connect('icon-changed', self.__buddy_icon_changed_cb)
def __buddy_appeared_cb(self, pservice, buddy):
# FIXME: use public key rather than buddy name
@@ -105,8 +109,12 @@ class BuddyModel(gobject.GObject):
return
self._buddy.disconnect(self._pc_handler)
self._buddy.disconnect(self._dis_handler)
+ self._buddy.disconnect(self._bic_handler)
self.__set_color_from_string(_NOT_PRESENT_COLOR)
self._cur_activity = None
self.emit('current-activity-changed', self._cur_activity)
self.emit('disappeared')
self._buddy = None
+
+ def __buddy_icon_changed_cb(self, buddy):
+ self.emit('icon-changed')