Difference between revisions of "DescendantsLines"

From Gramps
Jump to: navigation, search
(Tree compression and or modification)
m
 
(115 intermediate revisions by 9 users not shown)
Line 1: Line 1:
[[Image:DescendantsLines.png|thumb|300px|Lines of descendants chart]]
+
{{Third-party plugin}}
[[Image:DescendantsLines-m-ep-.png|thumb|300px|DescendantsLines, Left-aligned text style, example Gramps data, inc_marriages and inc_places.]]
+
[[File:DescendantsLines GalileoGenealogy.png|thumb|right|450px|Descendants Lines - Galileo Galilei's Genealogy example]]
[[Image:JohnShakespeare-DescendantsLines.png|thumb|300px|Shakespeare family tree, DescendantsLines, inc_marriages]]
+
The {{man label|Descendants Lines}} Graphical Report addon generates a graphical descendants tree using orthogonal edges and routing ("square edges") in vertical mode only in which children in a family are ordered from left to right following the Gramps child order; and families are ordered right to left, top to bottom, following the Gramps family order.
[[Image:JohnShakespeare-DescendantsLines-ep.png|thumb|300px|Shakespeare family tree, DescendantsLines, Left-aligned text style, including event places]]
 
'''DescendantsLines''' is an in-development addon for Gramps which generates a graphical descendants tree using orthogonal edges and routing ("square edges").
 
  
== Characteristics ==
+
== Usage ==
DescendantsLines presents an orthogonal family tree, currently in vertical mode only. In DescendantsLines, vertical mode, children in a family are ordered from left to right following the Gramps child order; and families are ordered right to left, top to bottom, following the Gramps family order.
+
 
 +
* Open Gramps
 +
* Select the report using the menu option {{man menu|Reports -> Graphical Reports -> Descendants Lines...}}
 +
* On the Report Options tab choose the output path for the {{man label|Destination:}} <code>$GRAMPSHOME/Descendants Lines.png</code>(default).
 +
** Note: That ''Document Options'' {{man label|Filename:}} option will contain an empty file after the report is run.
 +
* Note: If the script is run in "debug mode" it generates copious terminal output such as "Unknown event type: ..." or "Unknown spouse: ...". These warnings are harmless.
 +
 
 +
=== Options ===
  
== History ==
+
{{man label|Descendants Lines}} has the following option tabs available to change:
2007: Adam Sampson has written a standalone python script for parsing data.gramps ([[GRAMPS XML]]). [http://offog.org/darcs/misccode/familytree]
 
  
2010: this script needs some updates for avoiding minor issues.
+
==== Paper Options ====
 +
See also [[Gramps_{{man version}}_Wiki_Manual_-_Reports - part 4#Common options|common options]]
 +
{{-}}
 +
==== Report Options ====
 +
[[File:DescendatsLines1_report.png|thumb|right|450px|Report Options]]
 +
* {{man label|Center Person:}}
 +
* {{man label|Output format:}}  - The output format (PNG, SVG, PDF or PS)
 +
* {{man label|Destination:}} <code>$GRAMPSHOME/Descendants Lines.png</code>(default). The output filename
 +
* {{man label|Generations:}} - Maximum number of generations to include. (0 for unlimited)
 +
** {{man label|[ ] Use d'Aboville descendant numbering System}} - Whether to use [[Genealogical Numbering Systems#d'aboville|d'Aboville]] descendant numbering system.
 +
** {{man label|[ ] Include an image}}
 +
* {{man label|Max Image height:}}
 +
* {{man label|Max Image width:}}
 +
* {{man label|Image Location:}}
 +
{{-}}
  
A modified script is available on the addons repository. [http://gramps-addons.svn.sourceforge.net/viewvc/gramps-addons/trunk/contrib/DescendantsLines/]
+
==== Report Options(2) ====
 +
[[File:DescendatsLines2_report2.png|thumb|right|450px|Report Options (2)]]
 +
* {{man label|[ ] Colour Name by Gender}} - Whether to use colored names indicating person gender in the output.
 +
* {{man label|[ ] Use alternate events if primary events are not found}} - for example, if there is no Birth event, a Baptism or Christening event may be substituted. For Death Events, a Burial may be substituted.
 +
* {{man label|[ ] Sort Events by Date}}
 +
* {{man label|Text Style:}} - The predefined output style
 +
* {{man label|Maximum Note Length:}} - limits the length of notes.
 +
{{-}}
  
== Libraries ==
+
==== Display Options ====
The program DescendantsLines, as the script in which it is based, is written in Python, using PyCairo and the Python XML library. Many Gramps modules are also used.
+
[[File:DescendatsLines3_display.png|thumb|right|450px|Display Options]]
 +
* {{man label|[ ] Box around Person's block}}
 +
* {{man label|[ ] All Person's blocks have the same height}}
 +
* {{man label|[ ] All Person's blocks have the same width}}
 +
* {{man label|[ ] Colour blocks by Generation}}
 +
* {{man label|Descend block colour intensity:}}
 +
* {{man label|Spouse block colour intensity:}}
 +
{{-}}
  
== Current limitations ==
+
==== Display Formats ====
<!-- # No option for name display format -->
+
[[File:DescendatsLines4_display-formats.png|thumb|right|450px|Display Formats]]
# Partial quoting of xml-syntax-like data. Data which resembles xml syntax (tags, etc) may cause error.
+
* {{man label|Name Display Format:}} - The name format.  See [[Gramps_{{Version manual}}_Wiki_Manual_-_Reports_-_part_2|Formatting]] for more detail.
# Script ignores role on event (was added in 2007)
 
# Script ignores localized date handlers (using ISO date format, date quality in english)
 
# Memory limitation with a large database (DOM parsing)
 
# The last pixel column of each secondary line of each entry is wrong coloured (red instead black)
 
# The addon DescendantsLines does not use the Gramps document interface. (perhaps the Gramps document interface options should be hidden)
 
# DestinationOption does not have the usual error handling and user checking (e.g. for overwriting files)
 
# Size limit: Cairo surface size limit. (32767 for height and 32767 for width [http://comments.gmane.org/gmane.comp.lib.cairo/21068])
 
# Some PDF output size limit (currently crossing this limit will result in an empty PDF file)
 
  
== Installation ==
+
* {{man label|Descendant Display Format:}} - the default settings provide for several event types and their dates and places.  By changing the contents of this box, you can elect to include Events of various types, and include the dates or places and their format.  See [[Gramps_{{Version manual}}_Wiki_Manual_-_Reports_-_part_2|Formatting]] for more detail.
=== Gramps 3.3 version ===
+
* {{man label|Spouse Display Format:}} - the default settings provide for several event types and their dates and places. By changing the contents of this box, you can elect to include Events of various types, and include the dates or places and their format. See [[Gramps_{{Version manual}}_Wiki_Manual_-_Reports_-_part_2|Formatting]] for more detail.
The Gramps 3.3 version of DescendantsLines can be installed through the Gramps Plugin Manager.
+
{{-}}
  
=== Gramps 3.4 version ===
 
To use the Gramps 3.4 version of DescendantsLines, on Gramps Trunk, now gramps34:
 
# Create the directory $GRAMPSHOME/gramps/gramps34/plugins/DescendantsLines/ .
 
# Copy the files DescendantsLines.py and DescendantsLines.gpr.py from Gramps-addons trunk svn to the directory $GRAMPSHOME/gramps/gramps34/plugins/DescendantsLines/ .
 
  
== Usage ==
+
==== Replace Options ====
 +
[[File:DescendatsLines5_replace.png|thumb|right|450px|Replace Options]]
 +
* {{man label|Replace Display Format 'Replace this'/'with this':}} ie: United States of America/USA
 +
{{-}}
 +
 
 +
==== Spouse and Family Options ====
 +
[[File:DescendatsLines6_spouse.png|thumb|right|450px|Spouse and Family Options]]
 +
* {{man label|Vertical edge descendant to spouse-bar}}
 +
* {{man label|Vertical edge spouse-bar to spouse}}
 +
* {{man label|Vertical space spouse-bar to other spouse}}
 +
* {{man label|Horizontal space descendant to spouse}}
 +
* {{man label|Horizontal space family to family}}
 +
* {{man label|Horizontal distance spouse to family edge}}
 +
{{-}}
  
# Open Gramps and generate the report -- Reports -> Graphical Reports -> Descendants Lines. Choose the output path on "Destination" (default $GRAMPSHOME/DescendantsLines.png). The "Filename" option will contain an empty file after the report is run.
+
==== Children Options ====
# The script currently runs in "debug mode" so it generates copious terminal output such as "Unknown event type: ..." or "Unknown spouse: ...". These warnings are harmless.
+
[[File:DescendatsLines7_children.png|thumb|right|450px|Children Options]]
 +
* {{man label|OL_PAD}} - The number of ??? pad
 +
* {{man label|Vertical edge spouse-bar to child-bar}}
 +
* {{man label|Children distance}}
 +
* {{man label|Vertical edge child to child-bar}}
 +
* {{man label|MIN_C_WIDTH}}
 +
* {{man label|Space around text}}
 +
* {{man label|Space between lines of text}}
 +
{{-}}
  
=== Options ===
+
==== Header and Footer Options ====
The options for the addon DescendantsLines are:
+
[[File:DescendatsLines8_header.png|thumb|right|450px|Header and Footer Options]]
* S_DOWN - The length of the vertical edges from descendant to spouse-bar
+
* {{man label|Title text}}
* S_UP - The length of the vertical edges from spouse-bar to spouse
+
* {{man label|Footer text}}
* S_VPAD - Length of vertical padding spacing between spouse and spouse-bar (?)
+
* {{man label|Title and footer coefficient}}
* FL_PAD - Length of padding spacing between S_UP edges (vertical edges from spouse-bar to spouse) and O_DOWN edges (vertical edges from spouse-bar to child-bar)
+
{{-}}
* OL_PAD
 
* O_DOWN - The length of the vertical edges from spouse-bar to child-bar
 
* C_PAD - Length of padding spacing between children
 
* F_PAD - Length of padding spacing between families (?)
 
* C_UP - The length of the vertical edges from child to child-bar
 
* SP_PAD - Length of padding spacing between spouses
 
* MIN_C_WIDTH
 
* TEXT_PAD
 
* TEXT_LINE_PAD
 
* output_fmt - The output format (PNG, SVG, PDF or PS)
 
* output_fn - The output filename
 
* max_gen - Maximum number of generations to include. (0 for unlimited)
 
* use_colors - Whether to use colored names indicating person gender in the output.
 
* name_format - The name format
 
* inc_places - Whether to include event places in the output
 
* inc_marriages - Whether to include marriage information in the output
 
* inc_dnum - Whether to use d'Aboville descendant numbering system
 
* style - The predefined output style
 
  
There are option and tree combinations which may generate overlapping edges and nodes. If using the inc_marriages option the S_DOWN - S_UP difference may need to be increased by 5-15 units depending on the tree.
+
==== Privacy Options ====
 +
[[File:DescendatsLines9_privacy.png|thumb|right|450px|Privacy Options]]
 +
* {{man label|[ ] Protect People, Images or Events that are marked Private}}
 +
* {{man label|Privacy text:}} <code>Private</code>(default)
 +
{{-}}
  
 
=== Examples ===
 
=== Examples ===
 +
[[File:DescendantsLines.png|thumb|right|450px|Lines of descendants chart]]
 +
[[File:DescendantsLines-m-ep-.png|thumb|right|450px|DescendantsLines, Left-aligned text style, example Gramps data, inc_marriages and inc_places.]]
 +
[[File:JohnShakespeare-DescendantsLines.png|thumb|right|450px|Shakespeare family tree, DescendantsLines, inc_marriages]]
 +
[[File:JohnShakespeare-DescendantsLines-ep.png|thumb|right|450px|Shakespeare family tree, DescendantsLines, Left-aligned text style, including event places]]
 
* [[File:DescendantsLines-m-ep.pdf]] -- DescendantsLines, example Gramps data, inc_marriages and inc_places, PDF output.
 
* [[File:DescendantsLines-m-ep.pdf]] -- DescendantsLines, example Gramps data, inc_marriages and inc_places, PDF output.
 
* [[File:DescendantsLines-left.pdf]] -- DescendantsLines, Left-aligned text style, example Gramps data, use_colors, inc_marriages and inc_places, PDF output.
 
* [[File:DescendantsLines-left.pdf]] -- DescendantsLines, Left-aligned text style, example Gramps data, use_colors, inc_marriages and inc_places, PDF output.
 
* [[File:Charlemagne-DescendantsLines.pdf]] -- DescendantsLines addon, inc_marriages and inc_places, PDF output, presenting a family tree of Charlemagne starting from Chloderic King of Cologne.
 
* [[File:Charlemagne-DescendantsLines.pdf]] -- DescendantsLines addon, inc_marriages and inc_places, PDF output, presenting a family tree of Charlemagne starting from Chloderic King of Cologne.
* [[File:PepinOfHerstal-DescendantsLines-left-dnum.pdf]] --DescendantsLines Gramps addon, Left-aligned text style, d'Aboville numbering (inc_dnum), descendants of Pepin of Herstal or Pepin II, PDF output. Data from http://www.genealogyforum.com/gedcom/gedr1434.htm.
+
* [[File:PepinOfHerstal-DescendantsLines-left-dnum.pdf]] --DescendantsLines Gramps addon, Left-aligned text style, d'Aboville numbering (inc_dnum), descendants of Pepin of Herstal or Pepin II, PDF output. Data from Charlemagne GEDCOM at [http://www.genealogyforum.com/gedcom/gedr1434.htm] [https://web.archive.org/web/20081203144416/http://www.genealogyforum.com/gedcom/gedr1434.htm]
  
== Tree compression and or modification==
+
=== Tree compression and or modification===
SVG format trees can be compressed and or modified manually using the program Inkscape, using the select and path tools. PNG format trees can be compressed manually by manipulating the image.
+
SVG format trees can be compressed and or modified manually using the program Inkscape, using the select and path tools; or using other SVG manipulating program. PNG format trees can be compressed manually by manipulating the image.
  
 
== Development ==
 
== Development ==
 
There is an in-development migration of this Gtk/cairo code to a draw plugin working into Gramps (font, style, path, canvas, output formats). This migration, DescendantsLines, does not use the Document interface of Gramps.
 
There is an in-development migration of this Gtk/cairo code to a draw plugin working into Gramps (font, style, path, canvas, output formats). This migration, DescendantsLines, does not use the Document interface of Gramps.
  
Draft version is available on [[Addons_development|Addons]] repository.  [http://gramps-addons.svn.sourceforge.net/viewvc/gramps-addons/trunk/contrib/DescendantsLines/]
+
Draft version is available on [[Addons_development|Addons]] repository.  [https://github.com/gramps-project/addons-source/tree/master/DescendantsLines addons-source/tree/master/DescendantsLines]
  
 
The idea is keeping Gramps XML parsing, but with a copy of the active database and use of current report environment (output formats, style, path).
 
The idea is keeping Gramps XML parsing, but with a copy of the active database and use of current report environment (output formats, style, path).
  
 
=== Ideas ===
 
=== Ideas ===
 +
Feel free to contribute or improve DescendantsLines.
  
* Add option to include event places. (done in Gramps-addons)
+
* This addon may with time become a general orthogonal family tree drawing resource for Gramps, for a View, etc., and outside Gramps as well. The PyCairo code can be connected to a view.
* Add option to include marriage information. (done in Gramps-addons)
 
* Using the library get_event_or_fallback() methods from gen.utils. (done in Gramps-addons)
 
* Add optional generation limit. (done in Gramps-addons)
 
* Make the XML export smaller. Use filter. (done in Gramps-addons)
 
* Add option for output format. (PNG, SVG, PDF or PS) (done in Gramps-addons)
 
* Add boolean option use_colors. (done in Gramps-addons)
 
* Use gen.display.name.displayer. (done in Gramps-addons)
 
* Add option for name display format. (done in Gramps-addons trunk)
 
* Add style variables and option, ref. text alignment, etc. (done in Gramps-addons)
 
* Use Gramps family order. (done in Gramps-addons)
 
* Add option to use d'Aboville descendants numbering system. (done in Gramps-addons trunk)
 
 
* Think of optional tree compression algorithms.
 
* Think of optional tree compression algorithms.
 
* Add option to include divorces.
 
* Add option to include divorces.
Line 106: Line 127:
 
* Add option to include spouse ancestries.
 
* Add option to include spouse ancestries.
 
** Add option to include arbitrary spouse ancestries.
 
** Add option to include arbitrary spouse ancestries.
 +
* Add option to include arbitrary ancestries.
 
* Add option to include notes.
 
* Add option to include notes.
 
* Add option to include sources.
 
* Add option to include sources.
 
* Add option to include images.
 
* Add option to include images.
 +
* Add horizontal mode.
 +
* Add optional text wrap width.
 +
* Add optional text width with use of ellipses.
 +
* Cairo provides hyperlink support. Names could be hyperlinks to html complete individual reports or to web report pages.
 +
* The hardcoded number option limits can be altered by users, by altering the code.
  
The hardcoded number option limits can be altered by users, by altering the code.
+
==== Command Line Interface ====
 +
 
 +
Gramps provides a cli support for running reports and tools [[Gramps {{Version manual}} Wiki Manual - Command Line]].
 +
 
 +
* {{bug|4114}}: Would like to use stdin and stdout for command line import/export.
 +
 
 +
=== Current limitations ===
 +
* The addon DescendantsLines does not use the Gramps document interface (''Document Options''). (perhaps the Gramps document interface options should be hidden)
 +
* DestinationOption does not have the usual error handling and user checking (e.g. for overwriting files)
 +
* Partial quoting of xml-syntax-like data. Data which resembles xml syntax (tags, etc) may cause error.
 +
* Script ignores role on event (was added in 2007)
 +
* Script ignores localized date handlers (using ISO date format, date quality in english)
 +
* Memory limitation with a large database (DOM parsing)
 +
* The last pixel column of each secondary line of each entry is wrong coloured (red instead black)
 +
* Size limit: Cairo surface size limit. (32767 for height and 32767 for width [http://comments.gmane.org/gmane.comp.lib.cairo/21068])
 +
* Some PDF output size limit (currently crossing this limit will result in an empty PDF file)
  
 
=== Needs ===
 
=== Needs ===
Line 126: Line 168:
 
<!--* a basic persons list print for draw report: this avoids empty returns when generating the report and could help to check what is missing (see above).
 
<!--* a basic persons list print for draw report: this avoids empty returns when generating the report and could help to check what is missing (see above).
 
* output path and format are hardcoded: $GRAMPSHOME/DescendantsLines.png .-->
 
* output path and format are hardcoded: $GRAMPSHOME/DescendantsLines.png .-->
 
  
 
'''FINISHED''' - it works fine!
 
'''FINISHED''' - it works fine!
Line 132: Line 173:
 
==== Pass 2: use draw report environment ====
 
==== Pass 2: use draw report environment ====
  
# Generate a plugins/docgen/PNGDrawDoc.py file [http://www.gramps-project.org/bugs/view.php?id=4447]
+
# Generate a plugins/docgen/PNGDrawDoc.py file {{bug|4447}}
 
# Move Gtk code to draw report (if possible)
 
# Move Gtk code to draw report (if possible)
 
# Move cairo code to draw report (if possible)
 
# Move cairo code to draw report (if possible)
Line 140: Line 181:
 
==== Pass 2 (Alternate): use of user-defined (mega)-widgets ====
 
==== Pass 2 (Alternate): use of user-defined (mega)-widgets ====
  
# Have a look at mega-widget request and implementation [http://www.gramps-project.org/bugs/view.php?id=2393]
+
# Have a look at mega-widget request and implementation {{bug|2393}}
 
# Output path through mega-widget
 
# Output path through mega-widget
 
# Clean-up, pylint, etc ...  
 
# Clean-up, pylint, etc ...  
Line 147: Line 188:
  
 
# Use a DestinationOption
 
# Use a DestinationOption
# Ignore standard Filename option [http://www.gramps-project.org/bugs/view.php?id=5545]
+
# Ignore standard Filename option {{bug|5545}}
 +
 
 +
=== Development History ===
 +
*2007: Adam Sampson created a standalone python script for parsing data.gramps ([[Gramps XML]]). [http://offog.org/darcs/misccode/familytree][https://web.archive.org/web/20150915215133/http://offog.org/git/misccode/familytree]
 +
*2010: this script needs some updates for avoiding minor issues.
 +
 
 +
A modified script is available from the sourceforge addons repository. [https://sourceforge.net/p/gramps-addons/code/HEAD/tree/trunk/contrib/DescendantsLines/]
  
== Command Line Interface ==
+
=== Libraries ===
 +
The program DescendantsLines, as the script in which it is based, is written in Python, using the following prerequistes PyCairo and the Python XML library. Many Gramps modules are also used.
  
Gramps provides a cli support for running reports and tools [http://www.gramps-project.org/wiki/index.php?title=Gramps_3.2_Wiki_Manual_-_Command_Line].
+
== Issues ==
 +
* See [[DescendantsLines#Current_limitations|Current limitations]]
  
* use stdin and stdout for command line import/export [http://www.gramps-project.org/bugs/view.php?id=4114]
+
* {{bug|5545}}  Add a way for CATEGORY_DRAW reports to turn Gramps Document Interface Options off
 +
* {{bug|5823}} DescendentsLines does not display a marriage date when one spouse is unknown
 +
* {{bug|5965}} report produced with stale name from previous gramps session
 +
* {{bug|10390}} Display options in DescendantsLines graphical report do not work as advertised
  
 +
* Help button does not link here.
  
 +
See: [https://gramps-project.org/bugs/tag_view_page.php?tag_id=275 Tag: DescendantsLines] on Bugtracker
  
 +
===inc_marriages option?===
 +
This page mentions a "inc_marriages" option but none of the option tabs have that setting , was it removed? Or is it now called "Spouse Display Format"
  
Feel free to contribute or improve it.
+
{{man tip|There are option and tree combinations which may generate overlapping edges and nodes.|If using the <code>inc_marriages</code> option the <code>[[DescendantsLines#S_.26_F_Options|S_DOWN - S_UP]]</code> difference may need to be increased by 5-15 units depending on the tree.}}
  
 
== See also ==
 
== See also ==
 
* [[Addon:Family Tree]] - generates horizontal orthogonal graphical trees.
 
* [[Addon:Family Tree]] - generates horizontal orthogonal graphical trees.
 +
* [[Addon:TimelinePedigreeView]] - displays horizontal orthogonal graphical trees.
  
 
[[Category:Plugins]]
 
[[Category:Plugins]]
 
[[Category:Developers/General]]
 
[[Category:Developers/General]]
 +
[[Category:Reports]]

Latest revision as of 23:45, 20 September 2020

Gramps-notes.png

Please use carefully on data that is backed up, and help make it better by reporting any comments or problems to the author, or issues to the bug tracker
Unless otherwise stated on this page, you can download this plugin by following these instructions.
Please note that some Addons have prerequisites that need to be installed before they can be used.
This Addon/Plugin system is controlled by the Plugin Manager

Descendants Lines - Galileo Galilei's Genealogy example

The Descendants Lines Graphical Report addon generates a graphical descendants tree using orthogonal edges and routing ("square edges") in vertical mode only in which children in a family are ordered from left to right following the Gramps child order; and families are ordered right to left, top to bottom, following the Gramps family order.

Usage

  • Open Gramps
  • Select the report using the menu option Reports -> Graphical Reports -> Descendants Lines...
  • On the Report Options tab choose the output path for the Destination: $GRAMPSHOME/Descendants Lines.png(default).
    • Note: That Document Options Filename: option will contain an empty file after the report is run.
  • Note: If the script is run in "debug mode" it generates copious terminal output such as "Unknown event type: ..." or "Unknown spouse: ...". These warnings are harmless.

Options

Descendants Lines has the following option tabs available to change:

Paper Options

See also common options

Report Options

Report Options
  • Center Person:
  • Output format: - The output format (PNG, SVG, PDF or PS)
  • Destination: $GRAMPSHOME/Descendants Lines.png(default). The output filename
  • Generations: - Maximum number of generations to include. (0 for unlimited)
    • [ ] Use d'Aboville descendant numbering System - Whether to use d'Aboville descendant numbering system.
    • [ ] Include an image
  • Max Image height:
  • Max Image width:
  • Image Location:


Report Options(2)

Report Options (2)
  • [ ] Colour Name by Gender - Whether to use colored names indicating person gender in the output.
  • [ ] Use alternate events if primary events are not found - for example, if there is no Birth event, a Baptism or Christening event may be substituted. For Death Events, a Burial may be substituted.
  • [ ] Sort Events by Date
  • Text Style: - The predefined output style
  • Maximum Note Length: - limits the length of notes.


Display Options

Display Options
  • [ ] Box around Person's block
  • [ ] All Person's blocks have the same height
  • [ ] All Person's blocks have the same width
  • [ ] Colour blocks by Generation
  • Descend block colour intensity:
  • Spouse block colour intensity:


Display Formats

Display Formats
  • Name Display Format: - The name format. See Formatting for more detail.
  • Descendant Display Format: - the default settings provide for several event types and their dates and places. By changing the contents of this box, you can elect to include Events of various types, and include the dates or places and their format. See Formatting for more detail.
  • Spouse Display Format: - the default settings provide for several event types and their dates and places. By changing the contents of this box, you can elect to include Events of various types, and include the dates or places and their format. See Formatting for more detail.



Replace Options

Replace Options
  • Replace Display Format 'Replace this'/'with this': ie: United States of America/USA


Spouse and Family Options

Spouse and Family Options
  • Vertical edge descendant to spouse-bar
  • Vertical edge spouse-bar to spouse
  • Vertical space spouse-bar to other spouse
  • Horizontal space descendant to spouse
  • Horizontal space family to family
  • Horizontal distance spouse to family edge


Children Options

Children Options
  • OL_PAD - The number of ??? pad
  • Vertical edge spouse-bar to child-bar
  • Children distance
  • Vertical edge child to child-bar
  • MIN_C_WIDTH
  • Space around text
  • Space between lines of text


Header and Footer Options

Header and Footer Options
  • Title text
  • Footer text
  • Title and footer coefficient


Privacy Options

Privacy Options
  • [ ] Protect People, Images or Events that are marked Private
  • Privacy text: Private(default)


Examples

Lines of descendants chart
DescendantsLines, Left-aligned text style, example Gramps data, inc_marriages and inc_places.
Shakespeare family tree, DescendantsLines, inc_marriages
Shakespeare family tree, DescendantsLines, Left-aligned text style, including event places

Tree compression and or modification

SVG format trees can be compressed and or modified manually using the program Inkscape, using the select and path tools; or using other SVG manipulating program. PNG format trees can be compressed manually by manipulating the image.

Development

There is an in-development migration of this Gtk/cairo code to a draw plugin working into Gramps (font, style, path, canvas, output formats). This migration, DescendantsLines, does not use the Document interface of Gramps.

Draft version is available on Addons repository. addons-source/tree/master/DescendantsLines

The idea is keeping Gramps XML parsing, but with a copy of the active database and use of current report environment (output formats, style, path).

Ideas

Feel free to contribute or improve DescendantsLines.

  • This addon may with time become a general orthogonal family tree drawing resource for Gramps, for a View, etc., and outside Gramps as well. The PyCairo code can be connected to a view.
  • Think of optional tree compression algorithms.
  • Add option to include divorces.
  • Add option to include spouse parents.
  • Add option to include spouse ancestries.
    • Add option to include arbitrary spouse ancestries.
  • Add option to include arbitrary ancestries.
  • Add option to include notes.
  • Add option to include sources.
  • Add option to include images.
  • Add horizontal mode.
  • Add optional text wrap width.
  • Add optional text width with use of ellipses.
  • Cairo provides hyperlink support. Names could be hyperlinks to html complete individual reports or to web report pages.
  • The hardcoded number option limits can be altered by users, by altering the code.

Command Line Interface

Gramps provides a cli support for running reports and tools Gramps 5.1 Wiki Manual - Command Line.

  • 4114: Would like to use stdin and stdout for command line import/export.

Current limitations

  • The addon DescendantsLines does not use the Gramps document interface (Document Options). (perhaps the Gramps document interface options should be hidden)
  • DestinationOption does not have the usual error handling and user checking (e.g. for overwriting files)
  • Partial quoting of xml-syntax-like data. Data which resembles xml syntax (tags, etc) may cause error.
  • Script ignores role on event (was added in 2007)
  • Script ignores localized date handlers (using ISO date format, date quality in english)
  • Memory limitation with a large database (DOM parsing)
  • The last pixel column of each secondary line of each entry is wrong coloured (red instead black)
  • Size limit: Cairo surface size limit. (32767 for height and 32767 for width [3])
  • Some PDF output size limit (currently crossing this limit will result in an empty PDF file)

Needs

Pass 1: generate a tmp XML with only data needed for the report, to load it as input

  1. Enable Person selection (Gramps ID) - done
  2. Generate a temp Gramps XML database matching 'IsDescendantFamilyOf' filter rule - done
  3. Input path - done (need to set @[email protected]: path_to_SVN/src on const.py)
  4. Clean-up - done
  • simple Gramps XML template with events, persons, families objects (only export primary event role reference).
  • 'localized' dates (does not follow last DTD, which uses english and ISO format).

FINISHED - it works fine!

Pass 2: use draw report environment

  1. Generate a plugins/docgen/PNGDrawDoc.py file 4447
  2. Move Gtk code to draw report (if possible)
  3. Move cairo code to draw report (if possible)
  4. Output path
  5. Clean-up, pylint, etc ...

Pass 2 (Alternate): use of user-defined (mega)-widgets

  1. Have a look at mega-widget request and implementation 2393
  2. Output path through mega-widget
  3. Clean-up, pylint, etc ...

Pass 2 (Alternate): use a DestinationOption

  1. Use a DestinationOption
  2. Ignore standard Filename option 5545

Development History

  • 2007: Adam Sampson created a standalone python script for parsing data.gramps (Gramps XML). [4][5]
  • 2010: this script needs some updates for avoiding minor issues.

A modified script is available from the sourceforge addons repository. [6]

Libraries

The program DescendantsLines, as the script in which it is based, is written in Python, using the following prerequistes PyCairo and the Python XML library. Many Gramps modules are also used.

Issues

  • 5545 Add a way for CATEGORY_DRAW reports to turn Gramps Document Interface Options off
  • 5823 DescendentsLines does not display a marriage date when one spouse is unknown
  • 5965 report produced with stale name from previous gramps session
  • 10390 Display options in DescendantsLines graphical report do not work as advertised
  • Help button does not link here.

See: Tag: DescendantsLines on Bugtracker

inc_marriages option?

This page mentions a "inc_marriages" option but none of the option tabs have that setting , was it removed? Or is it now called "Spouse Display Format"

Tango-Dialog-information.png
There are option and tree combinations which may generate overlapping edges and nodes.

If using the inc_marriages option the S_DOWN - S_UP difference may need to be increased by 5-15 units depending on the tree.


See also