Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-08-11 16:23:15 (GMT)
committer Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-08-20 13:02:28 (GMT)
commitd7541d409a087f54e5267dc4c47fcab31fede709 (patch)
tree95777f92cfbbbda87f38faa0927569e028f274a6
parent2ceb241121d907f666c83928406f35f34f2f751f (diff)
Display the proper label in the palette depending on whether the activity
is private and if we have already joined.
-rw-r--r--src/jarabe/desktop/meshbox.py10
-rw-r--r--src/jarabe/model/buddy.py108
-rw-r--r--src/jarabe/model/neighborhood.py9
3 files changed, 12 insertions, 115 deletions
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)