Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorDan Williams <dcbw@localhost.localdomain>2006-07-26 00:04:15 (GMT)
committer Dan Williams <dcbw@localhost.localdomain>2006-07-26 00:04:15 (GMT)
commit164add907d263a39c8b4b90b0ac0b262445de7fd (patch)
tree0873015efe6ebd0c50985711ada07c215b552a9c /sugar
parente5065263a9e9a8e2295d46effab39ce35d7a1349 (diff)
Make shareActivity work
Diffstat (limited to 'sugar')
-rw-r--r--sugar/activity/Activity.py9
-rw-r--r--sugar/chat/ActivityChat.py4
-rw-r--r--sugar/p2p/model/LocalModel.py15
-rw-r--r--sugar/presence/Activity.py7
-rw-r--r--sugar/presence/PresenceService.py11
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)