diff --git a/src/plugins/view/geoview.py b/src/plugins/view/geoview.py index 212acdbcb..3500f7287 100644 --- a/src/plugins/view/geoview.py +++ b/src/plugins/view/geoview.py @@ -748,8 +748,7 @@ class GeoView(HtmlView): - - + @@ -771,14 +770,6 @@ class GeoView(HtmlView): HtmlView._define_actions_fw_bw(self) self.forward_action.set_sensitive(False) self.back_action.set_sensitive(False) - self._add_action('OpenStreetMap', 'gramps-geo-mainmap', - _('_OpenStreetMap'), - callback=self._select_openstreetmap_map, - tip=_("Select OpenStreetMap Maps")) - self._add_action('Google', 'gramps-geo-altmap', - _('_Google Maps'), - callback=self._select_google_map, - tip=_("Select Google Maps.")) self._add_action('AddPlace', gtk.STOCK_ADD, _('_Add Place'), callback=self._add_place, @@ -789,6 +780,15 @@ class GeoView(HtmlView): callback=self._link_place, tip=_("Link the location centred on the map to a place in " "Gramps. Double click the location to centre on the map.")) + self.provider_action = gtk.ActionGroup(self.title + "/Provider") + self.provider_action.add_toggle_actions([ + ('Provider', 'gramps-geo-mainmap', _("_Provider"), "P", + _("Select the maps provider. You can choose " + "between OpenStreetMap and Google maps"), + self._change_provider, + ) + ]) + self._add_action_group(self.provider_action) self.lock_action = gtk.ActionGroup(self.title + "/SaveZoom") self.lock_action.add_toggle_actions([ ('SaveZoom', 'gramps-lock', _("_SaveZoom"), "L", @@ -997,22 +997,6 @@ class GeoView(HtmlView): self.without = 0 self._createmapstraction(self.displaytype) - def _select_openstreetmap_map(self, handle): # pylint: disable-msg=W0613 - """ - Make openstreetmap the default map. - """ - self.usedmap = "openstreetmap" - self._change_map("openstreetmap") - self._ask_year_selection(self.last_year) - - def _select_google_map(self, handle): # pylint: disable-msg=W0613 - """ - Specifies google is the default map - """ - self.usedmap = "google" - self._change_map("google") - self._ask_year_selection(self.last_year) - def _set_lock_unlock(self, state): """ Change the lock/unlock state. @@ -1048,6 +1032,33 @@ class GeoView(HtmlView): self._change_map(self.usedmap) self._set_lock_unlock_icon() + def _change_provider(self, button): + """ + Toogle between the two maps providers. + Inactive ( the default ) is openstreetmap. + Active means Google maps. + """ + if button.get_active(): + self.usedmap = "google" + else: + self.usedmap = "openstreetmap" + self._change_map(self.usedmap) + self._set_provider_icon() + self._ask_year_selection(self.last_year) + + def _set_provider_icon(self): + """ + Change the provider icon depending on the button state. + """ + actionstyles = self.provider_action.get_action('Provider') + widgets = actionstyles.get_proxies() + for widget in widgets : + if isinstance(widget, gtk.ToggleToolButton): + if self.provider_action.get_action('Provider').get_active(): + widget.set_stock_id('gramps-geo-altmap') + else: + widget.set_stock_id('gramps-geo-mainmap') + def _createpageplaceswithoutcoord(self): """ Create a page with the list of all places without coordinates