GeoView : Added configuration window.
svn: r14238
This commit is contained in:
@@ -239,6 +239,11 @@ class GeoView(HtmlView):
|
|||||||
"""
|
"""
|
||||||
The view used to render html pages.
|
The view used to render html pages.
|
||||||
"""
|
"""
|
||||||
|
CONFIGSETTINGS = (
|
||||||
|
('preferences.alternate-provider', False),
|
||||||
|
('preferences.provider-in-toolbar', False),
|
||||||
|
)
|
||||||
|
|
||||||
def __init__(self, dbstate, uistate):
|
def __init__(self, dbstate, uistate):
|
||||||
HtmlView.__init__(self, dbstate, uistate, title=_("GeoView"))
|
HtmlView.__init__(self, dbstate, uistate, title=_("GeoView"))
|
||||||
self.dbstate = dbstate
|
self.dbstate = dbstate
|
||||||
@@ -336,6 +341,75 @@ class GeoView(HtmlView):
|
|||||||
self.filter.pack_start(self.hpaned, True, True)
|
self.filter.pack_start(self.hpaned, True, True)
|
||||||
self.signal_map = {'place-add': self._place_changed,
|
self.signal_map = {'place-add': self._place_changed,
|
||||||
'place-update' : self._place_changed}
|
'place-update' : self._place_changed}
|
||||||
|
self.init_config()
|
||||||
|
|
||||||
|
def can_configure(self):
|
||||||
|
"""
|
||||||
|
We have a configuration window.
|
||||||
|
"""
|
||||||
|
return True
|
||||||
|
|
||||||
|
def _get_configure_page_funcs(self):
|
||||||
|
"""
|
||||||
|
The function which is used to create the configuration window.
|
||||||
|
"""
|
||||||
|
return [self.geoview_options]
|
||||||
|
|
||||||
|
def config_connect(self):
|
||||||
|
"""
|
||||||
|
This method will be called after the ini file is initialized,
|
||||||
|
use it to monitor changes in the ini file
|
||||||
|
"""
|
||||||
|
self._config.connect("preferences.alternate-provider",
|
||||||
|
self.config_update)
|
||||||
|
self._config.connect("preferences.provider-in-toolbar",
|
||||||
|
self.config_update)
|
||||||
|
|
||||||
|
def config_update(self, client, cnxn_id, entry, data):
|
||||||
|
if self._config.get('preferences.alternate-provider'):
|
||||||
|
self.usedmap = "google"
|
||||||
|
else:
|
||||||
|
self.usedmap = "openstreetmap"
|
||||||
|
if self._config.get('preferences.provider-in-toolbar'):
|
||||||
|
self.provider_hide_show(True)
|
||||||
|
else:
|
||||||
|
self.provider_hide_show(False)
|
||||||
|
self._change_map(self.usedmap)
|
||||||
|
self._set_provider_icon(self._config.get('preferences.alternate-provider'))
|
||||||
|
self._ask_year_selection(self.last_year)
|
||||||
|
|
||||||
|
def provider_hide_show(self, state):
|
||||||
|
"""
|
||||||
|
Function that hide or show the provider button in the toolbar
|
||||||
|
"""
|
||||||
|
actionstyles = self.provider_action.get_action('Provider')
|
||||||
|
widgets = actionstyles.get_proxies()
|
||||||
|
for widget in widgets :
|
||||||
|
if isinstance(widget, gtk.ToggleToolButton):
|
||||||
|
if state:
|
||||||
|
widget.show()
|
||||||
|
else:
|
||||||
|
widget.hide()
|
||||||
|
|
||||||
|
def geoview_options(self, configdialog):
|
||||||
|
"""
|
||||||
|
Function that builds the widget in the configuration dialog
|
||||||
|
"""
|
||||||
|
table = gtk.Table(2, 2)
|
||||||
|
table.set_border_width(12)
|
||||||
|
table.set_col_spacings(6)
|
||||||
|
table.set_row_spacings(6)
|
||||||
|
configdialog.add_text(table,
|
||||||
|
_('If the alternate provider is selected,'
|
||||||
|
' then we use googlemaps else we use openstreetmap.'), 1)
|
||||||
|
configdialog.add_checkbox(table,
|
||||||
|
_('Alternate provider.'),
|
||||||
|
2, 'preferences.alternate-provider')
|
||||||
|
configdialog.add_checkbox(table,
|
||||||
|
_('Add provider selection to toolbar.'),
|
||||||
|
3, 'preferences.provider-in-toolbar')
|
||||||
|
|
||||||
|
return _('Map provider'), table
|
||||||
|
|
||||||
def _place_changed(self, handle_list):
|
def _place_changed(self, handle_list):
|
||||||
"""
|
"""
|
||||||
@@ -893,61 +967,63 @@ class GeoView(HtmlView):
|
|||||||
self._savezoomandposition(500) # every 500 millisecondes
|
self._savezoomandposition(500) # every 500 millisecondes
|
||||||
self.endinit = True
|
self.endinit = True
|
||||||
self.filter_toggle(None, None, None, None)
|
self.filter_toggle(None, None, None, None)
|
||||||
|
if not self._config.get('preferences.provider-in-toolbar'):
|
||||||
|
self.provider_hide_show(False)
|
||||||
self._geo_places()
|
self._geo_places()
|
||||||
|
|
||||||
def __create_styles_menu_actions(self):
|
#def __create_styles_menu_actions(self):
|
||||||
"""
|
# """
|
||||||
Function creating a menu and actions that are used as dropdown menu
|
# Function creating a menu and actions that are used as dropdown menu
|
||||||
from the menutoolbutton
|
# from the menutoolbutton
|
||||||
"""
|
# """
|
||||||
# disable msg=W0612 # i is unused
|
# # disable msg=W0612 # i is unused
|
||||||
# pylint: disable-msg=W0612
|
# # pylint: disable-msg=W0612
|
||||||
menu = gtk.Menu()
|
# menu = gtk.Menu()
|
||||||
#select the stylesheets to show
|
# #select the stylesheets to show
|
||||||
self.stylesheetdata = {}
|
# self.stylesheetdata = {}
|
||||||
stylelist = []
|
# stylelist = []
|
||||||
for style in CSS_FILES:
|
# for style in CSS_FILES:
|
||||||
stylelist.append([style[0], style[1]])
|
# stylelist.append([style[0], style[1]])
|
||||||
for i, stylesheet in zip(range(len(stylelist)), stylelist):
|
# for i, stylesheet in zip(range(len(stylelist)), stylelist):
|
||||||
key = ""
|
# key = ""
|
||||||
for word in stylesheet[0].split(' '):
|
# for word in stylesheet[0].split(' '):
|
||||||
key += word.capitalize()
|
# key += word.capitalize()
|
||||||
key = key.replace(' ','')
|
# key = key.replace(' ','')
|
||||||
add_menuitem(menu, stylesheet[0], stylesheet[1] ,
|
# add_menuitem(menu, stylesheet[0], stylesheet[1] ,
|
||||||
_make_callback(self._set_mapstylesheet,
|
# _make_callback(self._set_mapstylesheet,
|
||||||
stylesheet[1]))
|
# stylesheet[1]))
|
||||||
self.stylesheetdata[key] = [stylesheet[0], stylesheet[1]]
|
# self.stylesheetdata[key] = [stylesheet[0], stylesheet[1]]
|
||||||
return menu
|
# return menu
|
||||||
|
|
||||||
def _mapstyle_label(self):
|
#def _mapstyle_label(self):
|
||||||
"""
|
# """
|
||||||
return the current label for the menutoolbutton
|
# return the current label for the menutoolbutton
|
||||||
"""
|
# """
|
||||||
return self.stylesheet
|
# return self.stylesheet
|
||||||
|
|
||||||
def _set_mapstylesheet(self, obj):
|
#def _set_mapstylesheet(self, obj):
|
||||||
"""
|
# """
|
||||||
Set the style of the map view
|
# Set the style of the map view
|
||||||
"""
|
# """
|
||||||
self.stylesheet = obj
|
# self.stylesheet = obj
|
||||||
self._set_mapstylelabel(obj)
|
# self._set_mapstylelabel(obj)
|
||||||
|
|
||||||
def _set_mapstylelabel(self, obj):
|
#def _set_mapstylelabel(self, obj):
|
||||||
"""
|
# """
|
||||||
Set the style label in the selection button.
|
# Set the style label in the selection button.
|
||||||
"""
|
# """
|
||||||
for stylesheet in self.stylesheetdata.keys():
|
# for stylesheet in self.stylesheetdata.keys():
|
||||||
if obj == self.stylesheetdata[stylesheet][1]:
|
# if obj == self.stylesheetdata[stylesheet][1]:
|
||||||
self.stylesheetlbl.set_text(self.stylesheetdata[stylesheet][0])
|
# self.stylesheetlbl.set_text(self.stylesheetdata[stylesheet][0])
|
||||||
|
|
||||||
def _gotostyle(self, obj): # pylint: disable-msg=W0613
|
#def _gotostyle(self, obj): # pylint: disable-msg=W0613
|
||||||
"""
|
# """
|
||||||
Change the style of the map view
|
# Change the style of the map view
|
||||||
"""
|
# """
|
||||||
if not self.uistate.get_active('Person'):
|
# if not self.uistate.get_active('Person'):
|
||||||
return
|
# return
|
||||||
self.filter_toggle(None, None, None, None)
|
# self.filter_toggle(None, None, None, None)
|
||||||
self._geo_places()
|
# self._geo_places()
|
||||||
|
|
||||||
def _goto_active_person(self, handle=None): # pylint: disable-msg=W0613
|
def _goto_active_person(self, handle=None): # pylint: disable-msg=W0613
|
||||||
"""
|
"""
|
||||||
@@ -1071,10 +1147,10 @@ class GeoView(HtmlView):
|
|||||||
else:
|
else:
|
||||||
self.usedmap = "openstreetmap"
|
self.usedmap = "openstreetmap"
|
||||||
self._change_map(self.usedmap)
|
self._change_map(self.usedmap)
|
||||||
self._set_provider_icon()
|
self._set_provider_icon(button.get_active())
|
||||||
self._ask_year_selection(self.last_year)
|
self._ask_year_selection(self.last_year)
|
||||||
|
|
||||||
def _set_provider_icon(self):
|
def _set_provider_icon(self, state):
|
||||||
"""
|
"""
|
||||||
Change the provider icon depending on the button state.
|
Change the provider icon depending on the button state.
|
||||||
"""
|
"""
|
||||||
@@ -1082,7 +1158,7 @@ class GeoView(HtmlView):
|
|||||||
widgets = actionstyles.get_proxies()
|
widgets = actionstyles.get_proxies()
|
||||||
for widget in widgets :
|
for widget in widgets :
|
||||||
if isinstance(widget, gtk.ToggleToolButton):
|
if isinstance(widget, gtk.ToggleToolButton):
|
||||||
if self.provider_action.get_action('Provider').get_active():
|
if state:
|
||||||
widget.set_stock_id('gramps-geo-altmap')
|
widget.set_stock_id('gramps-geo-altmap')
|
||||||
else:
|
else:
|
||||||
widget.set_stock_id('gramps-geo-mainmap')
|
widget.set_stock_id('gramps-geo-mainmap')
|
||||||
|
Reference in New Issue
Block a user