Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorDan Williams <dcbw@localhost.localdomain>2006-09-22 21:37:16 (GMT)
committer Dan Williams <dcbw@localhost.localdomain>2006-09-22 21:37:16 (GMT)
commitd12c57895ccc310f51fb5ccaa3e8bad2bfdcb788 (patch)
tree1c95bb9495c0653cccd9b5ce8be41ade9b5340a8 /shell
parent188394f09f788b19303909738adfff8ec8c788c0 (diff)
Add color-changed and current-activity-changed signals
Diffstat (limited to 'shell')
-rw-r--r--shell/model/BuddyModel.py20
1 files changed, 17 insertions, 3 deletions
diff --git a/shell/model/BuddyModel.py b/shell/model/BuddyModel.py
index 3d28c1b..0606ca4 100644
--- a/shell/model/BuddyModel.py
+++ b/shell/model/BuddyModel.py
@@ -7,7 +7,11 @@ _NOT_PRESENT_COLOR = "#888888,#BBBBBB"
class BuddyModel(gobject.GObject):
__gsignals__ = {
'appeared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'disappeared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([]))
+ 'disappeared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'color-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ ([gobject.TYPE_PYOBJECT])),
+ 'current-activity-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ ([gobject.TYPE_PYOBJECT]))
}
def __init__(self, name=None, buddy=None):
@@ -81,9 +85,17 @@ class BuddyModel(gobject.GObject):
self.emit('appeared')
def __buddy_property_changed_cb(self, buddy, keys):
+ if not self._buddy:
+ return
+
# all we care about right now is current activity
- curact = self._buddy.get_current_activity()
- self._cur_activity = self._pservice.get_activity(curact)
+ if 'curact' in keys:
+ curact = self._buddy.get_current_activity()
+ self._cur_activity = self._pservice.get_activity(curact)
+ self.emit('current-activity-changed', self._cur_activity)
+ if 'color' in keys:
+ self.__set_color_from_string(self._buddy.get_color())
+ self.emit('color-changed', self.get_color())
def __buddy_disappeared_cb(self, buddy):
if buddy != self._buddy:
@@ -91,5 +103,7 @@ class BuddyModel(gobject.GObject):
self._buddy.disconnect(self._pc_handler)
self._buddy.disconnect(self._dis_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