New FamilyTreeView Addon (Thread 2)

In consultation with @emyoulation, the original thread about FamilyTreeView (FTV) has been split at the v0.1.65 anouncement due to the thread’s length (>330 comments). The discussion can be continued here.

The addon seems to work, but should not be considered stable yet. Please back up your data before using this addon.

You can find the source code of the FamilyTreeView addon on Github. There, you can also find installation instructions.

I haven’t been very active online the last few weeks, but I continued to work on the customizable boxes to add a new dimension of flexibility to FamilyTreeView. I finally implemented everything I had on my todo list for this feature and fixed all the bugs. (The user interface (config window) was by far the most difficult part for me.) The new feature is available in v0.1.65 of FamilyTreeView.

With this new feature, the user can change the width of the boxes and choose what information to display in the person and family boxes. There are 4 predefined definitions: Minimal, Compact, Regular, Detailed. You cannot change them, but you can make a copy of them and then modify (and rename) the copy. The predefined definitions may change in the future, as they should provide a useful default set of options to choose from. I’m open to suggestions for improving the predefined box definitions.
Only advanced users should feel the need to create a custom definition, which is also possible with this new update. You could create different definitions for the boxes for different use cases, e.g. for working on the tree, for browsing the tree, or for printing the visualization of FTV.

[ Expand me! ] Screenshots of the 4 predefined box definitions

Minimal:
image

Compact:

Regular:

Detailed (Yes, the image of the main family in the example tree shows a person, not a family.):

The following item types are available. They can be added to the boxes once or multiple times. The order of the items can be customized:

  • Image (also for family boxes, or avatar if no image is available, flexibility requested by @SNoiraud here and @hamkg here)
  • Name (also for family boxes, i.e. the names of the spouses separated by a dash)
  • Alternative name (person boxes only)
  • Birth or fallback (person boxes only)
  • Death or fallback (person boxes only)
  • Birth and death or fallbacks (person boxes only, useful for “1855 - 1911”)
  • Marriage or fallback (family boxes only)
  • Divorce or fallback (family boxes only)
  • Marriage and divorce or fallback (family boxes only)
  • Any other event type (person and family boxes, see below for details)
  • Relationship calculated based on the active person or home person (person boxes only) [added in v0.1.68]
  • Attributes (person and family boxes)
  • Gender (person boxes only)
  • Relationship type (family boxes only)
  • Gramps ID (person and family boxes)
  • Tags (person and family boxes, see below for details)
  • There is also a “gutter” item type that adds empty space of customizable size to visually separate other elements in the boxes.
  • … (I’m open to your suggestions for item types you’re missing. Also, I plan to implement extensibility, similar to the badges, so everyone can code their own box item types.)

For images, you can set the size of the image.
For all text based items, you can select individually how many lines should be reserved/used for this item. Example: Select more lines if you don’t want names to be abbreviated, if you want full place/descriptions to be displayed or you display an attribute which typically has a long text. (Note that you can also increase the width of the person box if a box gets too tall.) Or, select fewer lines if you want a compact visualization.

For all events (or fallbacks) you have the following options:

  • The event type you want to display (only for "event"items: death, burrial, occupation, etc.)
  • How to display the type of the event: name of the event type, a symbol, no indication of the event type, onyl display the event type (name or symbol) if there is no other information to be displayed.
  • Which event to show if there are multiple (e.g. first, second or last occupation)
  • Display the date of the event (full date or just the year)
  • Display the place of the event (requested by @hamkg here; There is also a new option to set the place format on the Apearence page (requested by @DaveSch here))
  • Display the description of the event
  • Display the tags of the event

There are different visualization methods for tags (of persons or families, but also for the tags of events):

  • Display only the colors of the tags
    • You can optionally combine tags of the same color (with or without showing the number of tags with that color).
  • Display only the name of the tag
  • Display the name and color of the tag
    If the name of a tag is not displayed, the color is visualized by a colored circle. If the name is displayed, the background of the text has the tag’s color and the text color is black or white (depending on the contrast).

Besides the obvious enhancement by adding customizability, with this update FTV also measures the line height of the current font on the current screen. I’m quite optimistic that this is a more robust approach than the previous method of computing/guessing the line height based on the ppi. I hope this will fix the issues on high dpi/ppi screens (e.g. @Woody, @roptat). Hopefully this will also fix the font issues reported by @SNoiraud here. I’m looking forward to feedback from those who had suboptimal display prior to this update.

Currently there are the following limitations and possible improvements to the new feature:

  • The user interface for configuring the box contents is not yet perfect.
  • All items are in one column, so you cannot put items next to each other, e.g. the image next to the other content. I have this on my list, but the config user interface for the current customizability is already quite complex (~1000 lines of code just for the UI, >60% of new lines in this update).

Since this is a big update and adds a lot of flexibility, I can’t test all possibilities and use cases. Feel free to give me feedback and suggestions to further improve this feature.

5 Likes

image FamilyTreeView (FTV) version 0.1.65 (or newer) available by adding the @ztlxltl repository to your Addon Manager projects:

FamilyTreeView
https://raw.githubusercontent.com/ztlxltl/FamilyTreeView/dist/gramps52

The addon is in the Beta testing stage, not yet in general release. So you must adjust the default Status and Audience filters to see the listings.

Visit the FTV @ztlxltl GitHub Repository to read the docs, view the source code, or report Issues

For other curated “Projects” see the thread:

2 Likes

@ztlxltl there are a huge amount of different settings! its a great job!

Several things which I would like to add:

  1. When I made upgrade, Ive received an exception. I did not save it, but it was stacktrace something about _child()… Sorry, I dont remember.
  2. Detailed box has some artefacts like “text” word and brackets “[” “]”.

    PS: looks like I understand what “text” means.
    Can I suggest one additional setting: disable/enable words “calculated/evaluated/about”? But not “before” and “after”.

Thanks again!

1 Like

The options for defining the boxes are marvellous and a greatly appreciated addition! Thanks!
The “text” thing mentioned by @Urchello: I noticed the same, if no place for an event is recorded, I get e.g for a birth.

  • 1825-11-03 text
    in the box (the intended asterisk shows up as a bullet here for some reason). Don’t know if “text” can be eliminated somehow?

I’ll play around with the possibilites and learn about them.
Again, thanks!

1 Like

@Urchello Thanks for your feedback!

If you haven’t restarted Gramps since the error occurred, you may be able to find the error in the log

That sounds strange. I’ll look into it.

Can you upload a screenshot of where they appear?

I think you have suggested something similar before. Unfortunately, I’m using Gramps’ language-dependent date formatter. I’m not sure if I can easily change the way the date is displayed. I have this on my list but it is not a high priority.

1 Like

@hamkg
Thanks for the positive feedback.

Thanks for the hint. I’m sure I can fix this soon.

1 Like

@Urchello @hamkg
I just pushed a fix. Can you test with v0.1.66?

2 Likes

its before death date

The Death event inside the Person card:
Screenshot from 2025-02-15 21-38-58

1 Like

Looks really good but I can’t seem to get the Historical Context to show up as a selectable option in the Events timeline drop-down of the panel even though the tab for them is appearing in the configuration options now.

1 Like

This is the simple symbol given by Gramps for burial (it resembles a coffin). :wink:

1 Like

The same I see also before Burial date

1 Like

yes, I suggested change words to characters like a coffin )))
But optional hiding them is also good solution. They use a lot of space, thats why only Detailed Box is acceptable for me.

1 Like

The Historical Context is not yet integrated into FTV’s timeline (and it’s not a high priority at the moment).

Gramps adds all Gramplet config pages to the config window of the current view. Most likely that’s why you see it there. This page/tab is not created or added by the FamilyTreeView addon.

1 Like

You can also copy/duplicate one of the other predefined box definitions and add more lines to the events or make the boxes wider if the other info (like alternative name etc.) is not interesting for you in your usual workflow.

1 Like

Looks like the better way is add characters for “about”,“after”,“before”,“calculated”,“estimated”, … in Gramps core settings. Then date formatter will use them. By default these words will be replaced to the same: “about” → “about” and so on. But anybody can change default word to any custom character. What do you think?

@ztlxltl If they make sense not only for me:

  1. I use (I think not only me) Caste person attributes to save there Caste like:
    a Cossack, a peasant, a nobleman, a prince. I thought about ways how is it possible to show caste-tree to see which branches are Cossacks, peasants and so on… What about adding a setting when box changes color or image according to specified Caste? So, all Cossacks Boxes will have photo like this:

    peasants will show another photo…
    Another Gramps users use another attributes. For example children count. It is a good way to show different images for religion attribute, or different children amounts.

It will look like this:

So, functionally the settings will look like below:
Checkbox on/off to overwrite people images with custom below:
Choose Attribute name … Choose Attribute value … Choose image path …
Choose Attribute name … Choose Attribute value … Choose image path …
Choose Attribute name … Choose Attribute value … Choose image path …
Choose Attribute name … Choose Attribute value … Choose image path …
Add more button

@Urchello
I think this is a very specific/niche enhancement request. I’m not sure I’m even going to implement something like this.

If it is really something many users use, the better approach would be to maybe store this information (the image) in the database somehow. Some ideas (all of which are outside the scope of FTV, but maybe a another developer would like to implement one of them if a discussion (e.g. in a different forum thread) has reached a consensus):

  • Add types and/or tags to media references. There are attributes that can be used, but I feel that this is not ideal.
  • Add media references to attributes and/or tags.

I’m not sure these ideas are perfect, maybe there are better options that will come up in a dedicated discussion thread.

1 Like

I don’t wish to sound ungrateful but implementing a new SVG export icon in the Windows version (New FamilyTreeView Addon - #338 by ztlxltl) doesn’t seem to have been done in v0.1.65. Can that not be done after all?

1 Like

The “Export the tree as SVG” toolbar icon has a NotFound/caution placeholder on Fedora 37 too.

1 Like