Changes

Jump to: navigation, search

DescendantsLines

3,445 bytes added, 02:27, 23 August 2016
Installation
[[Image:DescendantsLines.png|thumb|300px|Lines of descendants chart]][[Image:DescendantsLines{{Third-m-ep-.png|thumb|300px|DescendantsLines, example Gramps data, inc_marriages and inc_places.]][[Image:JohnShakespeare-DescendantsLines.png|thumb|300px|Shakespeare family tree, DescendantsLines]][[Image:JohnShakespeare-DescendantsLines-ep.png|thumb|300px|Shakespeare family tree, DescendantsLines, including event places]]'''DescendantsLines''' is an in-development addon for Gramps which generates a graphical descendants tree using orthogonal edges and routing ("square edges").party plugin}}
== History ==2007: Adam Sampson has written a standalone python script for parsing data.gramps ([[GRAMPS XML]]). [http://offog.org/darcs/misccode/familytree]{{out of date}}
2010[[Image: this script needs some updates for avoiding minor issuesDescendantsLines.png|thumb|300px|Lines of descendants chart]][[Image:DescendantsLines-m-ep-.png|thumb|300px|DescendantsLines, Left-aligned text style, example Gramps data, inc_marriages and inc_places.]][[Image:JohnShakespeare-DescendantsLines.png|thumb|300px|Shakespeare family tree, DescendantsLines, inc_marriages]][[Image:JohnShakespeare-DescendantsLines-ep.png|thumb|300px|Shakespeare family tree, DescendantsLines, Left-aligned text style, including event places]]
A modified script '''DescendantsLines''' is available on the addons repository. [http://grampsan in-addons.svn.sourceforge.net/viewvc/gramps-addons/trunk/contrib/DescendantsLines/] == Libraries ==The program DescendantsLines, as the script in development addon for Gramps which it is based, is written in Python, generates a graphical descendants tree using PyCairo orthogonal edges and the Python XML library. Many Gramps modules are also usedrouting ("square edges").
== Limitations Characteristics ==# No option for name display format# Partial quoting of xml-syntax-like dataDescendantsLines presents an orthogonal family tree, currently in vertical mode only. Data which resembles xml syntax (tagsIn DescendantsLines, etc) may cause error.# Script ignores role on event (was added in 2007)# Script ignores localized date handlers (using ISO date formatvertical mode, date quality children 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 family are ordered from left to right following the Gramps document interface. (perhaps the Gramps document interface options should be hidden)# DestinationOption does not have the usual error handling child order; and user checking (e.g. for overwriting files) == Installation ===== Gramps 3.3 version ===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 DescendantsLinesfamilies are ordered right to left, on Gramps Trunktop to bottom, now gramps34:# Create following 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/ family order.
== Usage ==
* S_VPAD - Length of vertical padding spacing between spouse and spouse-bar (?)
* 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
* C_UP - The length of the vertical edges from child to child-bar
* SP_PAD - Length of padding spacing between spouses
* MIN_C_WIDTH- Minimal width of child cells* TEXT_PAD- Length of text padding* TEXT_LINE_PAD- Length of text line padding
* 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.
=== Examples ===
* [[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: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 Charlemagne GEDCOM at http://www.genealogyforum.com/gedcom/gedr1434.htm.
 
 
== Development History ==
*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.
 
A modified script is available on the addons repository. [http://sourceforge.net/p/gramps-addons/code/HEAD/tree/trunk/contrib/DescendantsLines/]
 
== Libraries ==
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.
 
== Current limitations ==
<!-- # No option for name display format -->
# 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)
# 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 ==
=== Gramps 4.x version ===
Installed through the Gramps Plugin Manager.
 
=== Gramps 3.3 version ===
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/ .
 
== 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_development|Addons]] repository as '''unstable''' (beta). [httphttps://github.com/gramps-project/addons.svn.sourceforge.net-source/tree/viewvcmaster/grampsDescendantsLines addons-addonssource/trunktree/contribmaster/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).
* 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 a 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.
* 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.
* 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.
 
The hardcoded number option limits can be altered by users, by altering the code.
=== Needs ===
==== Pass 2: use draw report environment ====
# Generate a plugins/docgen/PNGDrawDoc.py file [http://www.gramps-project.org/bugs/view.php?id={{bug|4447]}}
# Move Gtk code to draw report (if possible)
# Move cairo code to draw report (if possible)
==== 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={{bug|2393]}}
# Output path through mega-widget
# Clean-up, pylint, etc ...
# Use a DestinationOption
# Ignore standard Filename option{{bug|5545}}
== Command Line Interface ==
Gramps provides a cli support for running reports and tools [http://www[Gramps 4.gramps2 Wiki Manual -project.org/wiki/index.php?title=Gramps_3.2_Wiki_Manual_-_Command_LineCommand Line]].
* {{bug|4114}}: Would like to use stdin and stdout for command line import/export [http://www.gramps-project.org/bugs/view.php?id=4114]
Feel free to contribute or improve it.
== Issues ==
* {{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
Feel free to contribute or improve it== See also ==* [[Addon:Family Tree]] - generates horizontal orthogonal graphical trees.* [[Addon:TimelinePedigreeView]] - displays horizontal orthogonal graphical trees.
[[Category:Plugins]]
[[Category:Developers/General]]
[[Category:Reports]]

Navigation menu