From d778d45b13eb261d623d426097bf36bf6470a398 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Wed, 26 Jul 2006 16:00:28 +0000 Subject: Load the current page when joining an active. Get back page sharing to work. --- (limited to 'activities/browser') 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): -- cgit v0.9.1