Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/activities
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-07-26 16:00:28 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-07-26 16:00:28 (GMT)
commitd778d45b13eb261d623d426097bf36bf6470a398 (patch)
tree3d59bdfaa215a27b33065b9dc75e6a03a6220ec6 /activities
parente1928878f9fd7bba493b10eacc726a470f531086 (diff)
Load the current page when joining an active.
Get back page sharing to work.
Diffstat (limited to 'activities')
-rw-r--r--activities/browser/BrowserActivity.py41
1 files changed, 25 insertions, 16 deletions
diff --git a/activities/browser/BrowserActivity.py b/activities/browser/BrowserActivity.py
index 690eb06..c62ca71 100644
--- a/activities/browser/BrowserActivity.py
+++ b/activities/browser/BrowserActivity.py
@@ -57,19 +57,22 @@ class BrowserActivity(Activity):
vbox.show()
self._pservice = PresenceService()
- self._pservice.connect('service-appeared', self._service_appeared_cb)
- # Join the shared activity if we were started from one
- if self._initial_service:
- logging.debug("BrowserActivity joining shared activity %s" %
- self._initial_service.get_activity_id())
- self._pservice.join_shared_activity(self._initial_service)
+ if service:
+ service.connect('service-appeared', self._service_appeared_cb)
+
+ services = service.get_services_of_type('_web_olpc._udp')
+ if len(services) > 0:
+ self._notif_service = services[0]
+
+ services = service.get_services_of_type(LocalModel.SERVICE_TYPE)
+ if len(services) > 0:
+ self._model_service = services[0]
+
+ if self._notif_service and self._model_service:
+ self._listen_to_model()
def _service_appeared_cb(self, pservice, service):
- # Make sure the service is for our activity
- if service.get_activity_id() != self._activity_id:
- return
-
if service.get_type() == self._default_type:
self._notif_service = service
elif service.get_type() == LocalModel.SERVICE_TYPE:
@@ -77,8 +80,12 @@ class BrowserActivity(Activity):
self._model_service = service
if not self._model and self._notif_service and self._model_service:
- self._model = RemoteModel(self._model_service, self._notif_service)
- self._model.add_listener(self.__shared_location_changed_cb)
+ self._listen_to_model()
+
+ def _listen_to_model(self):
+ self._model = RemoteModel(self._model_service, self._notif_service)
+ self._model.add_listener(self.__shared_location_changed_cb)
+ self._go_to_shared_location()
def _update_shared_location(self):
address = self.embed.get_address()
@@ -90,9 +97,12 @@ class BrowserActivity(Activity):
if action_id == 'set_shared_location':
self._update_shared_location()
elif action_id == 'goto_shared_location':
- address = self._model.get_value("address")
- self.embed.load_address(address)
- self._notif_bar.hide()
+ self._go_to_shared_location()
+
+ def _go_to_shared_location(self):
+ address = self._model.get_value("address")
+ self.embed.load_address(address)
+ self._notif_bar.hide()
def set_mode(self, mode):
self._mode = mode
@@ -125,7 +135,6 @@ class BrowserActivity(Activity):
self.set_title(embed.get_title())
def __shared_location_changed_cb(self, model, key):
- self.set_has_changes(True)
self._notify_shared_location_change()
def _notify_shared_location_change(self):