Add a couple more place displayer options

This commit is contained in:
Nick Hall 2015-05-31 17:54:21 +01:00
parent fff6a5ce15
commit 2f4682acbd
3 changed files with 38 additions and 2 deletions

View File

@ -295,6 +295,7 @@ register('preferences.name-format', 1)
register('preferences.place-auto', True) register('preferences.place-auto', True)
register('preferences.place-number', False) register('preferences.place-number', False)
register('preferences.place-reverse', False) register('preferences.place-reverse', False)
register('preferences.place-restrict', 0)
register('preferences.place-lang', '') register('preferences.place-lang', '')
register('preferences.patronimic-surname', False) register('preferences.patronimic-surname', False)
register('preferences.no-given-text', "[%s]" % _("Missing Given Name")) register('preferences.no-given-text', "[%s]" % _("Missing Given Name"))

View File

@ -56,6 +56,15 @@ class PlaceDisplay(object):
else: else:
lang = config.get('preferences.place-lang') lang = config.get('preferences.place-lang')
places = get_location_list(db, place, date, lang) places = get_location_list(db, place, date, lang)
if config.get('preferences.place-restrict') > 0:
index = _find_populated_place(places)
if index is not None:
if config.get('preferences.place-restrict') == 1:
places = places[:index+1]
else:
places = places[index:]
names = [item[0] for item in places] names = [item[0] for item in places]
if config.get('preferences.place-number'): if config.get('preferences.place-number'):
@ -68,4 +77,12 @@ class PlaceDisplay(object):
return ", ".join(names) return ", ".join(names)
def _find_populated_place(places):
populated_place = None
for index, item in enumerate(places):
if int(item[1]) in [PlaceType.HAMLET, PlaceType.VILLAGE,
PlaceType.TOWN, PlaceType.CITY]:
populated_place = index
return populated_place
displayer = PlaceDisplay() displayer = PlaceDisplay()

View File

@ -483,7 +483,7 @@ class GrampsPreferences(ConfigureDialog):
self.add_behavior_panel, self.add_behavior_panel,
self.add_famtree_panel, self.add_famtree_panel,
self.add_formats_panel, self.add_formats_panel,
self.add_place_panel, self.add_places_panel,
self.add_text_panel, self.add_text_panel,
self.add_prefix_panel, self.add_prefix_panel,
self.add_date_panel, self.add_date_panel,
@ -1098,7 +1098,7 @@ class GrampsPreferences(ConfigureDialog):
row += 1 row += 1
return _('Display'), grid return _('Display'), grid
def add_place_panel(self, configdialog): def add_places_panel(self, configdialog):
row = 0 row = 0
grid = Gtk.Grid() grid = Gtk.Grid()
grid.set_border_width(12) grid.set_border_width(12)
@ -1117,6 +1117,20 @@ class GrampsPreferences(ConfigureDialog):
row, 'preferences.place-reverse', stop=3) row, 'preferences.place-reverse', stop=3)
row += 1 row += 1
# Place restriction
obox = Gtk.ComboBoxText()
formats = [_("Full place name"),
_("-> Hamlet/VillageTown/City"),
_("Hamlet/VillageTown/City ->")]
list(map(obox.append_text, formats))
active = config.get('preferences.place-restrict')
obox.set_active(active)
obox.connect('changed', self.place_restrict_changed)
lwidget = BasicLabel("%s: " % _('Restrict'))
grid.attach(lwidget, 0, row, 1, 1)
grid.attach(obox, 1, row, 2, 1)
row += 1
self.add_entry(grid, _("Language"), self.add_entry(grid, _("Language"),
row, 'preferences.place-lang') row, 'preferences.place-lang')
row += 1 row += 1
@ -1178,6 +1192,10 @@ class GrampsPreferences(ConfigureDialog):
active = obj.get_active() active = obj.get_active()
config.set('behavior.check-for-updates', active) config.set('behavior.check-for-updates', active)
def place_restrict_changed(self, obj):
active = obj.get_active()
config.set('preferences.place-restrict', active)
def date_format_changed(self, obj): def date_format_changed(self, obj):
config.set('preferences.date-format', obj.get_active()) config.set('preferences.date-format', obj.get_active())
OkDialog(_('Change is not immediate'), OkDialog(_('Change is not immediate'),