diff options
author | Dan Williams <dcbw@localhost.localdomain> | 2006-07-26 00:04:15 (GMT) |
---|---|---|
committer | Dan Williams <dcbw@localhost.localdomain> | 2006-07-26 00:04:15 (GMT) |
commit | 164add907d263a39c8b4b90b0ac0b262445de7fd (patch) | |
tree | 0873015efe6ebd0c50985711ada07c215b552a9c /sugar | |
parent | e5065263a9e9a8e2295d46effab39ce35d7a1349 (diff) |
Make shareActivity work
Diffstat (limited to 'sugar')
-rw-r--r-- | sugar/activity/Activity.py | 9 | ||||
-rw-r--r-- | sugar/chat/ActivityChat.py | 4 | ||||
-rw-r--r-- | sugar/p2p/model/LocalModel.py | 15 | ||||
-rw-r--r-- | sugar/presence/Activity.py | 7 | ||||
-rw-r--r-- | sugar/presence/PresenceService.py | 11 |
5 files changed, 18 insertions, 28 deletions
diff --git a/sugar/activity/Activity.py b/sugar/activity/Activity.py index e65474b..a31d059 100644 --- a/sugar/activity/Activity.py +++ b/sugar/activity/Activity.py @@ -192,11 +192,6 @@ class Activity(gtk.Window): def get_default_type(self): return self._default_type - def set_shared(self): - """Mark the activity as 'shared'.""" - if not self._shared: - self._shared = True - def get_shared(self): return self._shared @@ -205,7 +200,9 @@ class Activity(gtk.Window): return self._has_focus def _internal_on_share_cb(self): - """Callback when the dbus service object tells us the user has shared our activity.""" + """Callback when the dbus service object tells us the user wishes to share our activity.""" + if not self._shared: + self._shared = True self.share() def get_id(self): diff --git a/sugar/chat/ActivityChat.py b/sugar/chat/ActivityChat.py index aab83c1..9e74f8d 100644 --- a/sugar/chat/ActivityChat.py +++ b/sugar/chat/ActivityChat.py @@ -18,9 +18,9 @@ class ActivityChat(GroupChat): if ps_activity is not None: service = ps_activity.get_service_of_type(ActivityChat.SERVICE_TYPE) if service is not None: - self._service_appeared_cb(self._pservice, None, service) + self._service_appeared_cb(self._pservice, service) - def _service_appeared_cb(self, pservice, buddy, service): + def _service_appeared_cb(self, pservice, service): if service.get_activity_id() != self._activity.get_id(): return if service.get_type() != ActivityChat.SERVICE_TYPE: diff --git a/sugar/p2p/model/LocalModel.py b/sugar/p2p/model/LocalModel.py index 21ee9df..5be542b 100644 --- a/sugar/p2p/model/LocalModel.py +++ b/sugar/p2p/model/LocalModel.py @@ -44,16 +44,7 @@ class LocalModel(AbstractModel): # FIXME this is duplicated with StreamReader def _setup_server(self, service): - started = False - tries = 10 port = service.get_port() - while not started and tries > 0: - try: - logging.debug('Start model server on port %d' % (port)) - p2p_server = network.GlibXMLRPCServer(("", port)) - p2p_server.register_instance(ModelRequestHandler(self)) - started = True - except(socket.error): - port = port + 1 - tries = tries - 1 - service.set_port(port) + logging.debug('Start model server on port %d' % (port)) + p2p_server = network.GlibXMLRPCServer(("", port)) + p2p_server.register_instance(ModelRequestHandler(self)) diff --git a/sugar/presence/Activity.py b/sugar/presence/Activity.py index 43e6755..761017e 100644 --- a/sugar/presence/Activity.py +++ b/sugar/presence/Activity.py @@ -66,13 +66,6 @@ class Activity(gobject.GObject): def get_icon(self): return self._buddy.getIcon() - def get_service_of_type(self, stype): - try: - object_path = self._buddy.getServiceOfType(stype) - except dbus.exceptions.DBusException: - return None - return self._ps_new_object(object_path) - def get_services(self): resp = self._activity.getServices() servs = [] diff --git a/sugar/presence/PresenceService.py b/sugar/presence/PresenceService.py index b64934d..44fd3c7 100644 --- a/sugar/presence/PresenceService.py +++ b/sugar/presence/PresenceService.py @@ -181,7 +181,16 @@ class PresenceService(gobject.GObject): return None return self._new_object(owner_op) - def register_service(self, name, stype, properties={"":""}, address="", port=-1, domain=u"local"): + def share_activity(self, activity, stype, properties={}, address=None, port=-1, domain=u"local"): + actid = activity.get_id() + if address == None: + address = u"" + serv_op = self._ps.shareActivity(actid, stype, properties, address, port, domain) + return self._new_object(serv_op) + + def register_service(self, name, stype, properties={}, address=None, port=-1, domain=u"local"): + if address == None: + address = u"" serv_op = self._ps.registerService(name, stype, properties, address, port, domain) return self._new_object(serv_op) |