RelGraphReport: Add an option to omit "irrelevant" family nodes
This commit is contained in:
parent
1c430a6b91
commit
cfa278886b
@ -144,6 +144,7 @@ class RelGraphReport(Report):
|
|||||||
self.use_roundedcorners = get_value('useroundedcorners')
|
self.use_roundedcorners = get_value('useroundedcorners')
|
||||||
self.adoptionsdashed = get_value('dashed')
|
self.adoptionsdashed = get_value('dashed')
|
||||||
self.show_families = get_value('showfamily')
|
self.show_families = get_value('showfamily')
|
||||||
|
self.show_family_leaves = get_value('show_family_leaves')
|
||||||
self.use_subgraphs = get_value('usesubgraphs')
|
self.use_subgraphs = get_value('usesubgraphs')
|
||||||
self.event_choice = get_value('event_choice')
|
self.event_choice = get_value('event_choice')
|
||||||
self.occupation = get_value('occupation')
|
self.occupation = get_value('occupation')
|
||||||
@ -373,13 +374,18 @@ class RelGraphReport(Report):
|
|||||||
if family is None:
|
if family is None:
|
||||||
continue
|
continue
|
||||||
if fam_handle not in families_done:
|
if fam_handle not in families_done:
|
||||||
families_done.add(fam_handle)
|
if not self.show_family_leaves:
|
||||||
|
family_members = {family.father_handle, family.mother_handle}.union(
|
||||||
|
child_ref.ref for child_ref in family.child_ref_list) - {None}
|
||||||
|
if len(family_members.intersection(person_handles)) < 2:
|
||||||
|
continue
|
||||||
self.__add_family(fam_handle)
|
self.__add_family(fam_handle)
|
||||||
|
families_done.add(fam_handle)
|
||||||
# If subgraphs are not chosen then each parent is linked
|
# If subgraphs are not chosen then each parent is linked
|
||||||
# separately to the family. This gives Graphviz greater
|
# separately to the family. This gives Graphviz greater
|
||||||
# control over the layout of the whole graph but
|
# control over the layout of the whole graph but
|
||||||
# may leave spouses not positioned together.
|
# may leave spouses not positioned together.
|
||||||
if not self.use_subgraphs:
|
if not self.use_subgraphs and fam_handle in families_done:
|
||||||
self.doc.add_link(p_id, family.get_gramps_id(), "",
|
self.doc.add_link(p_id, family.get_gramps_id(), "",
|
||||||
self.arrowheadstyle,
|
self.arrowheadstyle,
|
||||||
self.arrowtailstyle)
|
self.arrowtailstyle)
|
||||||
@ -839,6 +845,11 @@ class RelGraphOptions(MenuReportOptions):
|
|||||||
_("Whether to include dates and/or places"))
|
_("Whether to include dates and/or places"))
|
||||||
add_option("event_choice", self.event_choice)
|
add_option("event_choice", self.event_choice)
|
||||||
|
|
||||||
|
show_family_leaves = BooleanOption(_("Show all family nodes"), True)
|
||||||
|
show_family_leaves.set_help(_("Show family nodes even if the output "
|
||||||
|
"contains only one member of the family."))
|
||||||
|
add_option("show_family_leaves", show_family_leaves)
|
||||||
|
|
||||||
url = BooleanOption(_("Include URLs"), False)
|
url = BooleanOption(_("Include URLs"), False)
|
||||||
url.set_help(_("Include a URL in each graph node so "
|
url.set_help(_("Include a URL in each graph node so "
|
||||||
"that PDF and imagemap files can be "
|
"that PDF and imagemap files can be "
|
||||||
|
Loading…
Reference in New Issue
Block a user