Added option for subgraph positioning of spouses (requested by Loic Olichon)

svn: r8878
This commit is contained in:
Stéphane Charette 2007-08-27 06:45:53 +00:00
parent 2da4eb7c95
commit 33a27c64a0
2 changed files with 20 additions and 2 deletions

View File

@ -1,3 +1,7 @@
2007-08-26 Stephane Charette <stephanecharette@gmail.com>
* src/plugins/FamilyLines.py: Added option for subgraph positioning of
spouses (requested by Loic Olichon)
2007-08-26 Brian Matherly <brian@gramps-project.org>
* src/plugins/WebCal.py: Added (contribution from Thom Sturgill)
* src/plugins/Makefile.in: Add WebCal.py

View File

@ -109,6 +109,7 @@ class FamilyLinesReport(Report):
self.colSep = options.handler.options_dict['FLcolSep' ]
self.direction = options.handler.options_dict['FLdirection' ]
self.ratio = options.handler.options_dict['FLratio' ]
self.useSubgraphs = options.handler.options_dict['FLuseSubgraphs' ]
self.followParents = options.handler.options_dict['FLfollowParents' ]
self.followChildren = options.handler.options_dict['FLfollowChildren' ]
self.removeExtraPeople = options.handler.options_dict['FLremoveExtraPeople' ]
@ -693,21 +694,28 @@ class FamilyLinesReport(Report):
# get the parents for this family
family = self.db.get_family_from_handle(familyHandle)
fgid = family.get_gramps_id()
fatherHandle = family.get_father_handle()
motherHandle = family.get_mother_handle()
if self.useSubgraphs and fatherHandle and motherHandle:
self.write(' subgraph cluster_%s\n' % fgid)
self.write(' {\n')
# see if we have a father to link to this family
fatherHandle = family.get_father_handle()
if fatherHandle:
if fatherHandle in self.peopleToOutput:
father = self.db.get_person_from_handle(fatherHandle)
self.write(' %s -> %s // father: %s\n' % (fgid, father.get_gramps_id(), father.get_primary_name().get_regular_name()))
# see if we have a mother to link to this family
motherHandle = family.get_mother_handle()
if motherHandle:
if motherHandle in self.peopleToOutput:
mother = self.db.get_person_from_handle(motherHandle)
self.write(' %s -> %s // mother: %s\n' % (fgid, mother.get_gramps_id(), mother.get_primary_name().get_regular_name()))
if self.useSubgraphs and fatherHandle and motherHandle:
self.write(' }\n')
# link the children to the family
for childRef in family.get_child_ref_list():
if childRef.ref in self.peopleToOutput:
@ -789,6 +797,7 @@ class FamilyLinesOptions(ReportOptions):
'FLcolSep' : 0.20,
'FLdirection' : 'RL',
'FLratio' : 'compress',
'FLuseSubgraphs' : 0,
'FLfollowParents' : 0,
'FLfollowChildren' : 0,
'FLremoveExtraPeople' : 1,
@ -863,6 +872,9 @@ class FamilyLinesOptions(ReportOptions):
else:
self.ratio.set_active(0)
self.useSubgraphs = gtk.CheckButton(_("Use subgraphs to display spouses closer together"))
self.useSubgraphs.set_active(self.options_dict['FLuseSubgraphs'])
dialog.add_frame_option(title, _('Width' ), self.width , _('Width of the graph in inches. Final image size may be smaller than this if ratio type is "Compress".'))
dialog.add_frame_option(title, _('Height' ), self.height , _('Height of the graph in inches. Final image size may be smaller than this if ratio type is "Compress".'))
dialog.add_frame_option(title, _('DPI' ), self.dpi , _('Dots per inch. When planning to create .gif or .png files for the web, try numbers such as 75 or 100 DPI.'))
@ -870,6 +882,7 @@ class FamilyLinesOptions(ReportOptions):
dialog.add_frame_option(title, _('Columns spacing' ), self.colSep , _('The minimum amount of free space, in inches, between individual columns.'))
dialog.add_frame_option(title, _('Graph direction' ), self.direction , _('Left-to-right means oldest ancestors on the left, youngest on the right. Top-to-bottom means oldest ancestors on the top, youngest on the botom.'))
dialog.add_frame_option(title, _('Ratio' ), self.ratio , _('See the GraphViz documentation for details on the use of "ratio". '))
dialog.add_frame_option(title, None, self.useSubgraphs, _('Subgraphs can help GraphViz position spouses closer together, but can also cause longer lines and larger graphs.'))
# ******** PEOPLE OF INTEREST **********
title = _("People of Interest")
@ -1068,6 +1081,7 @@ class FamilyLinesOptions(ReportOptions):
else:
self.options_dict['FLdirection' ] = 'BT'
self.options_dict['FLratio' ] = self.ratio.get_active_text()
self.options_dict['FLuseSubgraphs' ] = int(self.useSubgraphs.get_active() )
self.options_dict['FLfollowParents' ] = int(self.followParents.get_active() )
self.options_dict['FLfollowChildren' ] = int(self.followChildren.get_active() )
self.options_dict['FLremoveExtraPeople' ] = int(self.removeExtraPeople.get_active() )