Add extra place displayer options
This commit is contained in:
@@ -293,6 +293,9 @@ register('preferences.invalid-date-format', "<b>%s</b>")
|
|||||||
register('preferences.iprefix', 'I%04d')
|
register('preferences.iprefix', 'I%04d')
|
||||||
register('preferences.name-format', 1)
|
register('preferences.name-format', 1)
|
||||||
register('preferences.place-auto', True)
|
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.patronimic-surname', False)
|
||||||
register('preferences.no-given-text', "[%s]" % _("Missing Given Name"))
|
register('preferences.no-given-text', "[%s]" % _("Missing Given Name"))
|
||||||
register('preferences.no-record-text', "[%s]" % _("Missing Record"))
|
register('preferences.no-record-text', "[%s]" % _("Missing Record"))
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# 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
|
# 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
|
# 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 ..config import config
|
||||||
from ..utils.location import get_location_list
|
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'):
|
if not config.get('preferences.place-auto'):
|
||||||
return place.title
|
return place.title
|
||||||
else:
|
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)
|
return ", ".join(names)
|
||||||
|
|
||||||
displayer = PlaceDisplay()
|
displayer = PlaceDisplay()
|
||||||
|
@@ -59,6 +59,7 @@ class PlaceType(GrampsType):
|
|||||||
HAMLET = 17
|
HAMLET = 17
|
||||||
FARM = 18
|
FARM = 18
|
||||||
BUILDING = 19
|
BUILDING = 19
|
||||||
|
NUMBER = 20
|
||||||
|
|
||||||
_CUSTOM = CUSTOM
|
_CUSTOM = CUSTOM
|
||||||
_DEFAULT = UNKNOWN
|
_DEFAULT = UNKNOWN
|
||||||
@@ -85,6 +86,7 @@ class PlaceType(GrampsType):
|
|||||||
(HAMLET, _("Hamlet"), "Hamlet"),
|
(HAMLET, _("Hamlet"), "Hamlet"),
|
||||||
(FARM, _("Farm"), "Farm"),
|
(FARM, _("Farm"), "Farm"),
|
||||||
(BUILDING, _("Building"), "Building"),
|
(BUILDING, _("Building"), "Building"),
|
||||||
|
(NUMBER, _("Number"), "Number"),
|
||||||
]
|
]
|
||||||
|
|
||||||
def __init__(self, value=None):
|
def __init__(self, value=None):
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# 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
|
# 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
|
# 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
|
# 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.
|
Return a list of place names for display.
|
||||||
"""
|
"""
|
||||||
if date is None:
|
if date is None:
|
||||||
date = Today()
|
date = Today()
|
||||||
visited = [place.handle]
|
visited = [place.handle]
|
||||||
lines = [(__get_name(place, date), place.get_type())]
|
lines = [(__get_name(place, date, lang), place.get_type())]
|
||||||
while True:
|
while True:
|
||||||
handle = None
|
handle = None
|
||||||
for placeref in place.get_placeref_list():
|
for placeref in place.get_placeref_list():
|
||||||
@@ -49,14 +49,20 @@ def get_location_list(db, place, date=None):
|
|||||||
if place is None:
|
if place is None:
|
||||||
break
|
break
|
||||||
visited.append(handle)
|
visited.append(handle)
|
||||||
lines.append((__get_name(place, date), place.get_type()))
|
lines.append((__get_name(place, date, lang), place.get_type()))
|
||||||
return lines
|
return lines
|
||||||
|
|
||||||
def __get_name(place, date):
|
def __get_name(place, date, lang):
|
||||||
|
local_name = '?'
|
||||||
for place_name in place.get_all_names():
|
for place_name in place.get_all_names():
|
||||||
name_date = place_name.get_date_object()
|
name_date = place_name.get_date_object()
|
||||||
if name_date.is_empty() or date.match(name_date):
|
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 place_name.get_value()
|
||||||
|
return local_name
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
@@ -483,6 +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_text_panel,
|
self.add_text_panel,
|
||||||
self.add_prefix_panel,
|
self.add_prefix_panel,
|
||||||
self.add_date_panel,
|
self.add_date_panel,
|
||||||
@@ -998,12 +999,6 @@ class GrampsPreferences(ConfigureDialog):
|
|||||||
grid.attach(obox, 1, row, 2, 1)
|
grid.attach(obox, 1, row, 2, 1)
|
||||||
row += 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:
|
# Age precision:
|
||||||
# precision=1 for "year", 2: "year, month" or 3: "year, month, days"
|
# precision=1 for "year", 2: "year, month" or 3: "year, month, days"
|
||||||
obox = Gtk.ComboBoxText()
|
obox = Gtk.ComboBoxText()
|
||||||
@@ -1103,6 +1098,31 @@ class GrampsPreferences(ConfigureDialog):
|
|||||||
row += 1
|
row += 1
|
||||||
return _('Display'), grid
|
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):
|
def add_text_panel(self, configdialog):
|
||||||
row = 0
|
row = 0
|
||||||
grid = Gtk.Grid()
|
grid = Gtk.Grid()
|
||||||
|
Reference in New Issue
Block a user