From d7541d409a087f54e5267dc4c47fcab31fede709 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Wed, 11 Aug 2010 16:23:15 +0000 Subject: Display the proper label in the palette depending on whether the activity is private and if we have already joined. --- diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py index 0fea384..57e7386 100644 --- a/src/jarabe/desktop/meshbox.py +++ b/src/jarabe/desktop/meshbox.py @@ -35,6 +35,7 @@ from sugar.activity.activityhandle import ActivityHandle from sugar.activity import activityfactory from jarabe.model import neighborhood +from jarabe.model import buddy from jarabe.view.buddyicon import BuddyIcon from jarabe.view import launcher from jarabe.desktop.snowflakelayout import SnowflakeLayout @@ -100,13 +101,8 @@ class ActivityView(hippo.CanvasBox): primary_text=p_text, icon=p_icon) - logging.info('KILL_PS display private activities in the neighborhood') - #private = self._model.activity.props.private - private = False - - logging.info('KILL_PS check if we are already in this activity') - #joined = self._model.activity.props.joined - joined = False + private = self._model.props.private + joined = buddy.get_owner_instance() in self._model.props.buddies if joined: item = MenuItem(_('Resume'), 'activity-start') diff --git a/src/jarabe/model/buddy.py b/src/jarabe/model/buddy.py index 25ca857..249b1f5 100644 --- a/src/jarabe/model/buddy.py +++ b/src/jarabe/model/buddy.py @@ -221,114 +221,6 @@ class BuddyModel(BaseBuddyModel): contact_id = gobject.property(type=object, getter=get_contact_id, setter=set_contact_id) -""" - self._pservice = presenceservice.get_instance() - - self._buddy = None - self._ba_handler = None - self._pc_handler = None - self._dis_handler = None - self._bic_handler = None - self._cac_handler = None - - if not buddy: - self._key = key - # connect to the PS's buddy-appeared signal and - # wait for the buddy to appear - self._ba_handler = self._pservice.connect('buddy-appeared', - self._buddy_appeared_cb) - # Set color to 'inactive'/'disconnected' - self._set_color_from_string(_NOT_PRESENT_COLOR) - self._nick = nick - - self._pservice.get_buddies_async(reply_handler=self._get_buddies_cb) - else: - self._update_buddy(buddy) - - def _set_color_from_string(self, color_string): - self._color = XoColor(color_string) - - def _get_buddies_cb(self, buddy_list): - buddy = None - for iter_buddy in buddy_list: - if iter_buddy.props.key == self._key: - buddy = iter_buddy - break - - if buddy: - if self._ba_handler: - # Once we have the buddy, we no longer need to - # monitor buddy-appeared events - self._pservice.disconnect(self._ba_handler) - self._ba_handler = None - - self._update_buddy(buddy) - - def is_owner(self): - return False - - def is_present(self): - if self._buddy: - return True - return False - - def get_buddy(self): - return self._buddy - - def _update_buddy(self, buddy): - if not buddy: - raise ValueError("Buddy cannot be None.") - - self._buddy = buddy - self._key = self._buddy.props.key - self._nick = self._buddy.props.nick - self._tags = self._buddy.props.tags - self._set_color_from_string(self._buddy.props.color) - self.props.present = True - - self._pc_handler = self._buddy.connect('property-changed', - self._buddy_property_changed_cb) - - def _buddy_appeared_cb(self, pservice, buddy): - if self._buddy or buddy.props.key != self._key: - return - - if self._ba_handler: - # Once we have the buddy, we no longer need to - # monitor buddy-appeared events - self._pservice.disconnect(self._ba_handler) - self._ba_handler = None - - self._update_buddy(buddy) - self.emit('appeared') - - def _buddy_property_changed_cb(self, buddy, keys): - if not self._buddy: - return - if 'color' in keys: - self._set_color_from_string(self._buddy.props.color) - self.emit('color-changed', self.get_color()) - if 'current-activity' in keys: - self.emit('current-activity-changed', buddy.props.current_activity) - if 'nick' in keys: - self._nick = self._buddy.props.nick - self.emit('nick-changed', self.get_nick()) - if 'tags' in keys: - self._tags = self._buddy.props.tags - self.emit('tags-changed', self.get_tags()) - - def _buddy_disappeared_cb(self, buddy): - if buddy != self._buddy: - return - self._buddy.disconnect(self._pc_handler) - self._buddy.disconnect(self._dis_handler) - self._buddy.disconnect(self._bic_handler) - self._buddy.disconnect(self._cac_handler) - self._set_color_from_string(_NOT_PRESENT_COLOR) - self.emit('disappeared') - self._buddy = None - self.props.present = False -""" class FriendBuddyModel(BuddyModel): __gtype_name__ = 'SugarFriendBuddyModel' diff --git a/src/jarabe/model/neighborhood.py b/src/jarabe/model/neighborhood.py index 022a35a..590353a 100644 --- a/src/jarabe/model/neighborhood.py +++ b/src/jarabe/model/neighborhood.py @@ -106,6 +106,14 @@ class ActivityModel(gobject.GObject): name = gobject.property(type=object, getter=get_name, setter=set_name) + def is_private(self): + return self._private + + def set_private(self, private): + self._private = private + + private = gobject.property(type=object, getter=is_private, setter=set_private) + def get_buddies(self): return self._buddies @@ -738,6 +746,7 @@ class Neighborhood(gobject.GObject): activity.props.color = XoColor(properties['color']) activity.props.bundle = bundle activity.props.name = properties['name'] + activity.props.private = properties['private'] if is_new: self.emit('activity-added', activity) -- cgit v0.9.1