diff --git a/src/DataViews/GeoView.py b/src/DataViews/GeoView.py
index 239a0ef84..f820dbc6d 100644
--- a/src/DataViews/GeoView.py
+++ b/src/DataViews/GeoView.py
@@ -280,6 +280,9 @@ class HtmlView(PageView.PageView):
PageView.PageView.__init__(self, _('HtmlView'), dbstate, uistate)
self.dbstate = dbstate
+
+ self.external_url = False
+ self.need_to_resize = False
def build_widget(self):
"""
@@ -339,9 +342,39 @@ class HtmlView(PageView.PageView):
self.back_action.set_sensitive(self.renderer.can_go_back())
def open(self, url):
+ """ open an url
+ """
self.renderer.open(url)
self.set_button_sensitivity()
-
+
+ def go_back(self, button):
+ self.renderer.go_back();
+ self.set_button_sensitivity()
+ self.external_uri()
+
+ def go_forward(self, button):
+ self.renderer.go_forward();
+ self.set_button_sensitivity()
+ self.external_uri()
+
+ def refresh(self,button):
+ self.renderer.refresh();
+
+ def external_uri(self):
+ uri = self.renderer.get_uri()
+ if self.external_url:
+ self.external_url = False
+ self.need_to_resize = True
+ else:
+ try:
+ if uri.find(self.htmlfile) == -1:
+ # external web page or start_page
+ self.need_to_resize = True
+ else:
+ self.need_to_resize = False
+ except:
+ pass
+
def _on_activate(self, object):
url = self.urlfield.get_text()
if url.find('://') == -1:
@@ -363,8 +396,54 @@ class HtmlView(PageView.PageView):
"""
return 'gramps-geo'
+ def ui_definition(self):
+ """
+ Specifies the UIManager XML code that defines the menus and buttons
+ associated with the interface.
+ """
+ return '''
+
+
+
+
+
+
+
+ '''
+
def define_actions(self):
- pass
+ """
+ Required define_actions function for PageView. Builds the action
+ group information required.
+ """
+ HtmlView._define_actions_fw_bw(self)
+
+ def _define_actions_fw_bw(self):
+ # add the Backward action to handle the Backward button
+ # accel doesn't work in webkit and gtkmozembed !
+ # we must do that ...
+ self.back_action = gtk.ActionGroup(self.title + '/Back')
+ self.back_action.add_actions([
+ ('Back', gtk.STOCK_GO_BACK, _("_Back"),
+ "Left", _("Go to the previous page in the history"),
+ self.go_back)
+ ])
+ self._add_action_group(self.back_action)
+
+ # add the Forward action to handle the Forward button
+ self.forward_action = gtk.ActionGroup(self.title + '/Forward')
+ self.forward_action.add_actions([
+ ('Forward', gtk.STOCK_GO_FORWARD, _("_Forward"),
+ "Right", _("Go to the next page in the history"),
+ self.go_forward)
+ ])
+ self._add_action_group(self.forward_action)
+
+ # add the Refresh action to handle the Refresh button
+ self._add_action('Refresh', gtk.STOCK_REFRESH, _("_Refresh"),
+ callback=self.refresh,
+ accel="R",
+ tip=_("Stop and reload the page."))
def init_parent_signals_for_map(self, widget, event):
# required to properly bootstrap the signal handlers.
@@ -416,8 +495,6 @@ class GeoView(HtmlView):
self.usedmap = "openstreetmap"
self.displaytype = "person"
- self.external_url = False
- self.need_to_resize = False
self.nbmarkers = 0
self.nbpages = 0
@@ -468,34 +545,6 @@ class GeoView(HtmlView):
def change_map(self,usedmap):
self.renderer.execute_script("javascript:mapstraction.swap(map,'"+usedmap+"')");
- def refresh(self,button):
- self.renderer.refresh();
-
- def external_uri(self):
- uri = self.renderer.get_uri()
- if self.external_url:
- self.external_url = False
- self.need_to_resize = True
- else:
- try:
- if uri.find(self.htmlfile) == -1:
- # external web page or start_page
- self.need_to_resize = True
- else:
- self.need_to_resize = False
- except:
- pass
-
- def go_back(self,button):
- self.renderer.go_back();
- self.set_button_sensitivity()
- self.external_uri()
-
- def go_forward(self,button):
- self.renderer.go_forward();
- self.set_button_sensitivity()
- self.external_uri()
-
def ui_definition(self):
"""
Specifies the UIManager XML code that defines the menus and buttons
@@ -532,42 +581,10 @@ class GeoView(HtmlView):
def define_actions(self):
"""
Required define_actions function for PageView. Builds the action
- group information required. We extend beyond the normal here,
- since we want to have more than one action group for the PersonView.
- Most PageViews really won't care about this.
-
- Special action groups for Forward and Back are created to allow the
- handling of navigation buttons. Forward and Back allow the user to
- advance or retreat throughout the history, and we want to have these
- be able to toggle these when you are at the end of the history or
- at the beginning of the history.
+ group information required.
"""
- # add the Backward action to handle the Backward button
- # accel doesn't work in webkit and gtkmozembed !
- # we must do that ...
- self.back_action = gtk.ActionGroup(self.title + '/Back')
- self.back_action.add_actions([
- ('Back', gtk.STOCK_GO_BACK, _("_Back"),
- "Left", _("Go to the previous page in the history"),
- self.go_back)
- ])
- self._add_action_group(self.back_action)
-
- # add the Forward action to handle the Forward button
- self.forward_action = gtk.ActionGroup(self.title + '/Forward')
- self.forward_action.add_actions([
- ('Forward', gtk.STOCK_GO_FORWARD, _("_Forward"),
- "Right", _("Go to the next page in the history"),
- self.go_forward)
- ])
- self._add_action_group(self.forward_action)
-
- # add the Refresh action to handle the Refresh button
- self._add_action('Refresh', gtk.STOCK_REFRESH, _("_Refresh"),
- callback=self.refresh,
- accel="R",
- tip=_("Stop and reload the page."))
+ HtmlView._define_actions_fw_bw(self)
self._add_action('OpenStreetMap', 'gramps-openstreetmap', _('_OpenStreetMap'),
callback=self.select_OpenStreetMap_map,
@@ -610,7 +627,6 @@ class GeoView(HtmlView):
callback=self.event_places,
tip=_("Attempt to view places on the Map for all events."))
- HtmlView.define_actions(self)
def goto_active_person(self,handle=None):
self.geo_places(self.displaytype)