Add extra place displayer options
This commit is contained in:
parent
25e62a7797
commit
fff6a5ce15
@ -293,6 +293,9 @@ register('preferences.invalid-date-format', "<b>%s</b>")
|
||||
register('preferences.iprefix', 'I%04d')
|
||||
register('preferences.name-format', 1)
|
||||
register('preferences.place-auto', True)
|
||||
register('preferences.place-number', False)
|
||||
register('preferences.place-reverse', False)
|
||||
register('preferences.place-lang', '')
|
||||
register('preferences.patronimic-surname', False)
|
||||
register('preferences.no-given-text', "[%s]" % _("Missing Given Name"))
|
||||
register('preferences.no-record-text', "[%s]" % _("Missing Record"))
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2014 Nick Hall
|
||||
# Copyright (C) 2014-2015 Nick Hall
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -29,6 +29,7 @@ Class handling displaying of places.
|
||||
#-------------------------------------------------------------------------
|
||||
from ..config import config
|
||||
from ..utils.location import get_location_list
|
||||
from ..lib import PlaceType
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -53,7 +54,18 @@ class PlaceDisplay(object):
|
||||
if not config.get('preferences.place-auto'):
|
||||
return place.title
|
||||
else:
|
||||
names = [item[0] for item in get_location_list(db, place, date)]
|
||||
lang = config.get('preferences.place-lang')
|
||||
places = get_location_list(db, place, date, lang)
|
||||
names = [item[0] for item in places]
|
||||
|
||||
if config.get('preferences.place-number'):
|
||||
if len(places) > 1 and int(places[0][1]) == PlaceType.NUMBER:
|
||||
names = names[1:]
|
||||
names[0] = places[0][0] + ' ' + names[0]
|
||||
|
||||
if config.get('preferences.place-reverse'):
|
||||
names.reverse()
|
||||
|
||||
return ", ".join(names)
|
||||
|
||||
displayer = PlaceDisplay()
|
||||
|
@ -59,6 +59,7 @@ class PlaceType(GrampsType):
|
||||
HAMLET = 17
|
||||
FARM = 18
|
||||
BUILDING = 19
|
||||
NUMBER = 20
|
||||
|
||||
_CUSTOM = CUSTOM
|
||||
_DEFAULT = UNKNOWN
|
||||
@ -85,6 +86,7 @@ class PlaceType(GrampsType):
|
||||
(HAMLET, _("Hamlet"), "Hamlet"),
|
||||
(FARM, _("Farm"), "Farm"),
|
||||
(BUILDING, _("Building"), "Building"),
|
||||
(NUMBER, _("Number"), "Number"),
|
||||
]
|
||||
|
||||
def __init__(self, value=None):
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2013-2014 Nick Hall
|
||||
# Copyright (C) 2013-2015 Nick Hall
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -28,14 +28,14 @@ from ..lib.date import Today
|
||||
# get_location_list
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
def get_location_list(db, place, date=None):
|
||||
def get_location_list(db, place, date=None, lang=''):
|
||||
"""
|
||||
Return a list of place names for display.
|
||||
"""
|
||||
if date is None:
|
||||
date = Today()
|
||||
visited = [place.handle]
|
||||
lines = [(__get_name(place, date), place.get_type())]
|
||||
lines = [(__get_name(place, date, lang), place.get_type())]
|
||||
while True:
|
||||
handle = None
|
||||
for placeref in place.get_placeref_list():
|
||||
@ -49,14 +49,20 @@ def get_location_list(db, place, date=None):
|
||||
if place is None:
|
||||
break
|
||||
visited.append(handle)
|
||||
lines.append((__get_name(place, date), place.get_type()))
|
||||
lines.append((__get_name(place, date, lang), place.get_type()))
|
||||
return lines
|
||||
|
||||
def __get_name(place, date):
|
||||
def __get_name(place, date, lang):
|
||||
local_name = '?'
|
||||
for place_name in place.get_all_names():
|
||||
name_date = place_name.get_date_object()
|
||||
if name_date.is_empty() or date.match(name_date):
|
||||
name_lang = place_name.get_language()
|
||||
if name_lang == '':
|
||||
local_name = place_name.get_value()
|
||||
if place_name.get_language() == lang:
|
||||
return place_name.get_value()
|
||||
return local_name
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
@ -483,6 +483,7 @@ class GrampsPreferences(ConfigureDialog):
|
||||
self.add_behavior_panel,
|
||||
self.add_famtree_panel,
|
||||
self.add_formats_panel,
|
||||
self.add_place_panel,
|
||||
self.add_text_panel,
|
||||
self.add_prefix_panel,
|
||||
self.add_date_panel,
|
||||
@ -998,12 +999,6 @@ class GrampsPreferences(ConfigureDialog):
|
||||
grid.attach(obox, 1, row, 2, 1)
|
||||
row += 1
|
||||
|
||||
# Automatic place title generation
|
||||
self.add_checkbox(grid,
|
||||
_("Enable automatic place title generation"),
|
||||
row, 'preferences.place-auto', stop=3)
|
||||
row += 1
|
||||
|
||||
# Age precision:
|
||||
# precision=1 for "year", 2: "year, month" or 3: "year, month, days"
|
||||
obox = Gtk.ComboBoxText()
|
||||
@ -1103,6 +1098,31 @@ class GrampsPreferences(ConfigureDialog):
|
||||
row += 1
|
||||
return _('Display'), grid
|
||||
|
||||
def add_place_panel(self, configdialog):
|
||||
row = 0
|
||||
grid = Gtk.Grid()
|
||||
grid.set_border_width(12)
|
||||
grid.set_column_spacing(6)
|
||||
grid.set_row_spacing(6)
|
||||
|
||||
self.add_checkbox(grid, _("Enable automatic place title generation"),
|
||||
row, 'preferences.place-auto', stop=3)
|
||||
row += 1
|
||||
|
||||
self.add_checkbox(grid, _("Suppress comma after house number"),
|
||||
row, 'preferences.place-number', stop=3)
|
||||
row += 1
|
||||
|
||||
self.add_checkbox(grid, _("Reverse display order"),
|
||||
row, 'preferences.place-reverse', stop=3)
|
||||
row += 1
|
||||
|
||||
self.add_entry(grid, _("Language"),
|
||||
row, 'preferences.place-lang')
|
||||
row += 1
|
||||
|
||||
return _('Places'), grid
|
||||
|
||||
def add_text_panel(self, configdialog):
|
||||
row = 0
|
||||
grid = Gtk.Grid()
|
||||
|
Loading…
Reference in New Issue
Block a user