diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2006-06-18 02:06:40 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2006-06-18 02:06:40 (GMT) |
commit | afc587212eb908420b8fb186cecc324753a5bbb1 (patch) | |
tree | 749a2c95911a89e72e99efb8fcf05a5eef10eeb2 /sugar | |
parent | 6d7940949adff699c609b0d11c9a7959087cfab8 (diff) |
Get page sharing back to work
Diffstat (limited to 'sugar')
-rw-r--r-- | sugar/browser/BrowserActivity.py | 29 | ||||
-rw-r--r-- | sugar/p2p/NotificationListener.py | 5 | ||||
-rw-r--r-- | sugar/p2p/model/LocalModel.py | 2 | ||||
-rw-r--r-- | sugar/p2p/model/RemoteModel.py | 2 |
4 files changed, 24 insertions, 14 deletions
diff --git a/sugar/browser/BrowserActivity.py b/sugar/browser/BrowserActivity.py index 1ae183a..905b4eb 100644 --- a/sugar/browser/BrowserActivity.py +++ b/sugar/browser/BrowserActivity.py @@ -1,9 +1,11 @@ +import logging +import xml.sax.saxutils + import dbus import pygtk pygtk.require('2.0') import gtk import geckoembed -import xml.sax.saxutils from sugar.shell import activity from sugar.browser import NotificationBar @@ -25,26 +27,30 @@ class BrowserActivity(activity.Activity): activity.Activity.__init__(self, _BROWSER_ACTIVITY_TYPE) self.uri = uri self._mode = mode + + logging.debug('Start presence service') self._pservice = PresenceService.get_instance() self._pservice.start() + + logging.debug('Track browser activities') self._pservice.connect('service-appeared', self._service_appeared_cb) self._pservice.track_service_type(_BROWSER_ACTIVITY_TYPE) + self._pservice.track_service_type(LocalModel.SERVICE_TYPE) + self._share_service = None self._model_service = None self._notif_service = None self._model = None def _service_appeared_cb(self, pservice, buddy, service): - print 'Got service ' + service.get_type() + print 'appeared ' + service.get_type() if service.get_type() == _BROWSER_ACTIVITY_TYPE: - print 'Activity service found' self._notif_service = service elif service.get_type() == LocalModel.SERVICE_TYPE: - print 'Model service found' - self._model_service = service + if self._mode != BrowserActivity.LEADING: + self._model_service = service if self._notif_service and self._model_service: - print 'Create remote model' self._model = RemoteModel(self._model_service, self._notif_service) self._model.add_listener(self.__shared_location_changed_cb) @@ -75,9 +81,6 @@ class BrowserActivity(activity.Activity): self._notif_bar.set_icon('stock_shared-by-me') self._notif_bar.show() - def _follow(self, service): - self._pservice.track_service_type(LocalModel.SERVICE_TYPE) - def on_connected_to_shell(self): self.set_ellipsize_tab(True) self.set_can_close(True) @@ -107,10 +110,10 @@ class BrowserActivity(activity.Activity): plug.show() vbox.show() - - if self._mode == BrowserActivity.FOLLOWING: - self._follow(self.uri) - + + # FIXME remove, when we join the activity this will happen automatically + self._pservice.track_activity(self.get_id()) + def get_embed(self): return self.embed diff --git a/sugar/p2p/NotificationListener.py b/sugar/p2p/NotificationListener.py index 433b777..b3c03c8 100644 --- a/sugar/p2p/NotificationListener.py +++ b/sugar/p2p/NotificationListener.py @@ -1,8 +1,11 @@ +import logging + from sugar.p2p.Notifier import Notifier -import network +from sugar.p2p import network class NotificationListener: def __init__(self, service): + logging.debug('Start notification listener. Service %s, address %s, port %s' % (service.get_type(), service.get_address(), service.get_port())) server = network.GroupServer(service.get_address(), service.get_port(), self._recv_multicast) diff --git a/sugar/p2p/model/LocalModel.py b/sugar/p2p/model/LocalModel.py index 9d7046d..18a7529 100644 --- a/sugar/p2p/model/LocalModel.py +++ b/sugar/p2p/model/LocalModel.py @@ -1,4 +1,5 @@ import socket +import logging from sugar.presence.Service import Service from sugar.p2p.Notifier import Notifier @@ -50,6 +51,7 @@ class LocalModel(AbstractModel): 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 diff --git a/sugar/p2p/model/RemoteModel.py b/sugar/p2p/model/RemoteModel.py index d11157a..00b3cb6 100644 --- a/sugar/p2p/model/RemoteModel.py +++ b/sugar/p2p/model/RemoteModel.py @@ -1,4 +1,5 @@ import xmlrpclib +import logging from sugar.p2p.NotificationListener import NotificationListener from sugar.p2p.model.AbstractModel import AbstractModel @@ -11,6 +12,7 @@ class RemoteModel(AbstractModel): self._notification_service = notification_service addr = "http://%s:%d" % (service.get_address(), service.get_port()) + logging.debug('Setup remote model ' + addr) self._client = xmlrpclib.ServerProxy(addr) self._setup_notification_listener() |