Skip to content

A third-party addon for Gramps providing a navigable tree representation of ancestors, descendants and other related persons.

License

Notifications You must be signed in to change notification settings

ztlxltl/FamilyTreeView

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FamilyTreeView FamilyTreeView icon

FamilyTreeView is a third-party addon for Gramps. It provides a navigable tree representation of ancestors, descendants and other related persons.

Note that this addon is currently under development and should not be considered stable. It has not been thoroughly tested and interfaces are likely to change. Back up your data before using this addon.

Features:

  • Tree visualization of relatives of the active person
  • Info box pop-up with basic information on a person / family
  • Side panel with detailed information on a person / families including a timeline
  • Name abbreviation algorithm to fit long names into the fix-sized boxes (AbbreviatedNameDisplay)
  • Badges for customizable display of interesting / important information (new / custom badges can be registered)
  • Intuitive zoom centered at mouse pointer position
  • Mini map for orientation

Screenshot: screenshot

This repository includes the following addons, which are registered individually:

  • FamilyTreeView, the main addon of this repository
  • FamilyTreeView Example Badges, registers example badges which can be activated in FamilyTreeView's configuration window
  • Children Quick View, quick view/report listing children, used as a callback example for clicking on badges
  • AbbreviatedNameDisplay Inspector Gramplet, lists the abbreviations of the names of the active person (audience=DEVELOPER)

Installation

FamilyTreeView uses GooCanvas to draw the tree. If you are using Gramps' Graph View, all requirements are satisfied already. (In contrast to Graph View, FamilyTreeView doesn't require Graphviz.)

There are two options for adding FamilyTreeView to Gramps. The first lets Gramps know about the provided prebuilds. The second downloads the source code to the right location for Gramps to find. If you have problems with the first option, you can always use the robust alternative of downloading the source code.

Important

Back up your data before installing.

Making Gramps aware of the pre-builds

  1. Open Gramps
  2. Click on the puzzle piece icon to open the Addon Manager
  3. Go to the "Projects" tab
  4. Click the plus at the bottom left
  5. Enter FamilyTreeView as the project name
  6. Enter the following URL: https://raw.githubusercontent.com/ztlxltl/FamilyTreeView/dist/gramps52
  7. Click OK, go to the "Addons" tab and select "All statuses" in the last dropdown menu (usually "Stable" is selected). This is necessary because this addon should not be considered stable.
  8. Select "FamilyTreeView" in the second dropdown menu (usually "All projects" is selected). Alternatively, you can search for FamilyTreeView.
  9. I recommended to install all three of the addons of this repository (which are explained above). Click the "Install" button of each of the addons.

If you have problems, you can always use the robust alternative of downloading the source code:

Downloading the source code

  1. Find your Gramps user directory. It's usually located here:
    • Linux / MacoOS (built) / other POSIX: ~/.gramps (e.g. /home/<username>/.gramps)
    • Windows: %AppData%\gramps (e.g. C:\Users\<username>\AppData\Roaming\gramps)
    • MacOS Application Package: /Users/<username>/Library/Application Support/gramps
  2. Go to the subdirectory gramps52/plugins, e.g. ~/.gramps/gramps52.
  3. Clone or download the repository to this subdirectory, e.g. ~/.gramps/gramps52/FamilyTreeView or C:\Users\<username>\AppData\Roaming\gramps\gramps52\FamilyTreeView. To do this, click on the green "Code" button on FamilyTreeView's repository on Github and
    • copy the URL to clone it (I assume you know how to do this if you choose to clone it.)
      or
    • click "Download ZIP" to download a ZIP of the source code directly. After the download finished, extract the ZIP file in the subdirectory mentioned above. You can check to make sure that this README.md is in the correct location: e.g. ~/.gramps/gramps52/FamilyTreeView/README.md or C:\Users\<username>\AppData\Roaming\gramps\gramps52\FamilyTreeView\README.md

TODOs, ideas & known issues

If you have feedback or bug reports that are not listed below or tracked by a Github issue, you can create a new issue or contact me directly (e.g. via the Gramps Forum).

  • tree:
    • move siblings closer together if positioning of their descendants allow it
    • reduce large generation gaps for generation ~7+ if they are not needed for connecting lines
    • expanders (expand more ancestors / descendants / relatives of a specific person / family)
      • expand ancestor of a person (which are not visible due to selected maximum generation)
      • expand descendants of a family (which are not visible due to selected minimum generation)
      • expand other families / spouses of a person
      • expand siblings of a person
      • expand parents and siblings of spouse of active person
      • expand other parents of active person or ancestor
      • maybe more
  • context menus (edit, add new person as parent, spouse, child etc.)
  • implement "add relative" button functionality
  • panel:
    • more info (persons and families: media overview; persons: e.g. families, spouses and children)
    • context menu and go to buttons (opt.) next to names in the panel (incl. timeline)
    • context menu on events in timeline (e.g. edit event)
    • badges in info box and panel (separately (de)activatable in config)
    • ticks for negative time (e.g. birth of spouses where marriage is 0)
    • if birth is uncertain, no range
    • option to hide large gaps in timeline (x years removed)
    • better ui design of panel
  • adaptive canvas size based on content and padding based on zoom and ScrolledWindow's size
  • more customization options
  • hight of info box should adjust to content
  • find a good way to include a search bar (e.g. SearchWidget from graph view), add zoom buttons
  • better solution for positioning SVGs on canvas
  • make mini map clickable to jump to a different location
  • right-to-left direction (similar to pedigree view) as an alternative to top-to-bottom
  • better info for marriage (and likely other events) in timeline
  • overlapping lines from families to children appear thicker when zoomed out
  • badge priority / not too many badges
  • shadow on hover of person and family boxes
  • performance test for large trees and possible improvement
  • tests for AbbreviatedNameDisplay
  • translation
  • color coding
  • alternative centering of single child
  • generalize ui code to support different styles / themes for different visualizations of persons and families
  • all the other TODOs in the code

Once the major open items are resolved and the most important TODO features are implemented, this addon may be moved to Gramps' official addon repository and bugs as well as feature requests will be tracked in the Gramps bug tracker.

About

A third-party addon for Gramps providing a navigable tree representation of ancestors, descendants and other related persons.

Topics

Resources

License

Stars

Watchers

Forks

Languages