Skip to content

Commit

Permalink
Add option name_format to treedoc
Browse files Browse the repository at this point in the history
  • Loading branch information
Mattkmmr authored and Nick-Hall committed Feb 23, 2022
1 parent de3648d commit 297b112
Showing 1 changed file with 18 additions and 3 deletions.
21 changes: 18 additions & 3 deletions gramps/gen/plug/docgen/treedoc.py
Expand Up @@ -64,6 +64,9 @@
{'name': _("Medium"), 'value': "medium"},
{'name': _("Short"), 'value': "short"}]

_NAME_FORMAT = [{'name': _("Given Nickname Surname"), 'value': "1"},
{'name': _("Surname Given Nickname"), 'value': "2"}]

_MARRIAGE = [{'name': _("Default"), 'value': ""},
{'name': _("Above"), 'value': "marriage above"},
{'name': _("Below"), 'value': "marriage below"},
Expand Down Expand Up @@ -147,6 +150,12 @@ def add_menu_options(self, menu):
detail.set_help(_("Detail of information to be shown in a node."))
menu.add_option(category, "detail", detail)

name_format = EnumeratedListOption(_("Name Format"), "1")
for item in _NAME_FORMAT:
name_format.add_item(item["value"], item["name"])
name_format.set_help(_("Select the format to display names"))
menu.add_option(category, "name_format", name_format)

marriage = EnumeratedListOption(_("Marriage"), "")
for item in _MARRIAGE:
marriage.add_item(item["value"], item["name"])
Expand Down Expand Up @@ -281,6 +290,7 @@ def __init__(self, options, paper_style):
get_option = options.menu.get_option_by_name

self.detail = get_option('detail').get_value()
self.name_format = get_option('name_format').get_value()
self.marriage = get_option('marriage').get_value()
self.nodesize = get_option('nodesize').get_value()
self.levelsize = get_option('levelsize').get_value()
Expand Down Expand Up @@ -429,9 +439,14 @@ def write_node(self, db, level, node_type, person, marriage_flag,
name = person.get_primary_name()
nick = name.get_nick_name()
surn = name.get_surname()
name_parts = [self.format_given_names(name),
'\\nick{{{}}}'.format(escape(nick)) if nick else '',
'\\surn{{{}}}'.format(escape(surn)) if surn else '']
if self.name_format == "1":
name_parts = [self.format_given_names(name),
'\\nick{{{}}}'.format(escape(nick)) if nick else '',
'\\surn{{{}}}'.format(escape(surn)) if surn else '']
elif self.name_format == "2":
name_parts = ['\\surn{{{}}}'.format(escape(surn)) if surn else '',
self.format_given_names(name),
'\\nick{{{}}}'.format(escape(nick)) if nick else '']
self.write(level+1, 'name = {{{}}},\n'.format(
' '.join([e for e in name_parts if e])))
for eventref in person.get_event_ref_list():
Expand Down

0 comments on commit 297b112

Please sign in to comment.