diff options
-rw-r--r-- | services/presence/Buddy.py | 4 | ||||
-rw-r--r-- | shell/model/BuddyModel.py | 8 |
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') |