New FamilyTreeView Addon

@stuck
This sounds like only the marriages are sorted, not the nth cousins over a whole generation. Sorting the marriages might be possible with a different visualization. I’ll keep the idea in mind.

Here is another visualization idea, using boxes for families instead of people.

1 Like

Hello. I have noticed that expanders for other families don’t show for generations older than the active person.

In this example, the active person is Marie Anne Boudin. You can see that her father Pierre has a second family, but there is no expander.

If I select his mother or father (or anybody upwards it seems), then the expander appears:

Other than that, I have 2 questions:

  • Can you highlight the Active person (a bolder line should be fine)?
  • I have a bit of trouble with the expanders preferences, as not all boxes can be checked… Is it intentional?
1 Like

Thanks for the link! The idea looks interesting, but I’m not sure if this idea could be integrated into FamilyTreeView. Most likely this is more suited for a dedicated project with this idea in mind from the beginning.

Could you add something to the wishlist?

I’d like a presentation mode. Where (unlike the rest of the GUI) living and Private data is suppressed/redacted.

Perhaps the relationship to the home_person could be subbed for the name? And the decade for any date? (e.g., a public Event for living person “from 4 Mar 1961 to 31 Dec 1990” becomes “from 1960s to 1990s” but a Private Event will be omitted entirely)

And opening an Edit dialog is suppressed for Living or Private

1 Like

Yes, when you are ready for a new challenge. :slight_smile:

@Bouscram
Good catch! You are absolutely right. This needs to be fixed.

I also thought about highlighting the active person, and I also thought about a wider stroke. I’ll add that to my list.

This is intentional. You cannot check “Show expanders for subtree visible by default” for “other families” because other families are not visible by default, you can only check “Show expanders for subtree hidden by default” for them.
Similarly, which parents and children are shown must be determined by the generation. Checking or unchecking “Expand subtrees by default” for them would result in either no ancestors/descendants being shown at all for the active person, or a huge number of generations being loaded for ancestors (and descendants), limited only by the data in the database.
If you load a tree like the royal example tree from @emyoulation’s repo, the view would automatically expand parents of parents over and over again, trying to load several thousand people (if I remember correctly).

@emyoulation
This is a great idea. A few questions:

  • Why should public dates be simplified to decades? Do you see this being applied to dates in the timeline of the panel or what do you have in mind?
  • What do you have in mind for the use case? When do you think the user should turn this on? When someone else wants to browse the tree in Gramps (desktop)? In this case, the “guest” user could simply switch views and have full access.
    Or are you thinking of a presentation mode (e.g. for a projector presentation or virtual screen sharing)? In this case it makes sense, but you don’t need to disable opening the edit window. (Perhaps to avoid accidentally revealing private information through that window?)
  • What do you think about how this mode should be enabled/disabled? If someone else should take control, should this mode be somehow locked with a password, so that the “guest” user cannot easily leave the mode?

With the latest version (v0.1.39), I implemented a cache for the name abbreviation and a cache of selected abbreviations that fit the boxes, as they were quite expensive in terms of time to generate large trees.

Using these caches, I measured a 38% reduction in time to build a visualization of the royal example tree. This is especially useful when using use expanders in large trees where the view needs to be reloaded many times.

@Woody You reported that it takes “a few minutes” to load the tree (although this was with up to 100 generations). Please let me know if you see any performance improvement when using the expanders.

Since the caches deal with name abbreviations, please keep an eye on the abbreviated names and report anything weird after this update.

In the long run, the abbreviation algorithm will most likely need to be optimized like the NameDisplay in core Gramps. I’m also hoping to implement some partial reuse of the view, so it doesn’t have to be built from scratch every time. But that is, by my estimation, a pretty complex thing to do.

The simplification of dates would only be for Living or Private Persons. (Or Family Events with a living/private person.) So you might see a living “Jane Smith, born 18 Aug 1957 with a thumbnail” show in presentation mode a Female color rectangle and a generic outline with “2nd cousin, born 1950s”

The use case is:

  1. demonstrating to a group of genealogists. Where I can navigate my personal database to deceased relatives in this view… which gives the audience an contextual overview before switching to a different view
  2. presenting to family members during holidays/reunions. Where some have exaggerated privacy paranoia
  3. navigating for tutorial videos

Disabling the edits for living/private is because I almost always accidentally twitch a wrong click during fast navigation during presentations.

To start, this should be a proof-of-concept, simply an option in the View configuration. If it could be expanded to the whole program, other enable/disable GUI could be considered. (Including but not limited to: passworded settings, a separate View-only or Presentation version of Gramps)

1 Like

Here is an example
You can trace the lines better.

1 Like

The descendant tree is built up super quickly. I only counted to four, then everything was there.
A third is missing in the screenshot
It starts with a person born in 1620 and ends with people born in 1980. I can’t count the number in the display (maybe there’s a way to display it somehow?) There are already a few hundred. Maybe a thousand.
The names are all displayed well.

1 Like

@Woody
Thanks for the example. I’ll think about an alternative placement of the boxes and lines.

Thanks for testing. Glad it works fast and smoothly.

I’ll put it on my list. Have you personally planned some of the use cases where you could use and try an initial mock-up? I could take that into account when deciding when to work on what.

1 Like

Hello again.

I have a tricky one for you: my family tree has a lot of multiple connections (for instance married cousins have the same grand parents - but sometimes the common ancestor is two or three generations above).
The “Graphic View” is to my knowledge the only visualization which correctly displays them (because it is a graph view, not a tree).
Do you think you could work on that? This is really not a priority, more a friendly challenge… :wink:

1 Like

@Bouscram
Thank you for continuing to provide feedback. This is very welcome!

I thought about this and decided that in this case the person is added to the tree multiple times. I cannot think of a general way to display such a person only once without creating many crossing lines. I could implement some graying out of all duplicate persons and show only one copy as usual. And some interface to jump to the instance of that person in the tree.

There are also some other things you will notice in this case:

  • Expanders currently work per person (per person handle), not per person box, so if you expand the parents of a person that is displayed multiple times, the parents will expand in all instances of that person.
  • The experimental feature of jumping to the other end of a connection also works with the person handles, so you may jump to a different instance of the person or family that the line you clicked actually connects to.

There may be other cases where something similar happens. These are the ones that just came to mind without checking the code.

First of all @ztlxltl , I want say you are making a great UI tool! It really looks as a modern tree with good interface and usability!
I’m not sure, maybe its already done, maybe you already know about this trouble, but text isnt unreadable on some themes. Probably its not a high-priority issue, its just FYI.

o

Another problem is probably mainly my own. I often use “estimated”/“calculated” terms in dates. As a result my dates look trunkated:


Is it possiple replace these words to some signs or even hide? Maybe replace them to “~” for both cases?

The next question: is it OK that each the next (older) generation has bigger distance than the previous one? It look not very good as for me.

And the last one question: do you have some plans to add buttons to expand/collapse some branches of tree? Maybe this is the reason why distance between generations is different?

Im sorry if I repeat some questions if any. You can just ignore them.
Thank you again!

1 Like

This has come up in other places too. I’m aware of a helper function to choose a contrasting color which was done as part of the fix for bug 11799; maybe it will help here?

3 Likes

And one more very interesting feature, but unfortunately not for all genealgs, its a bit specific.
Sometimes I make research of relationships between people using gramps associations. I make a lot of difficult filters, then I export people to GV, then use python script to convert it to dot (looks like). That script also includes associated people. Then I import it to yED. And only then I am ready to some research. But even now I can only see nodes (fullnames) and edges (relationship name) - thats all.
I just imagine how great it would be to have an option “Show associative people” the your treeview! And then each associative person will show generations of his ancestors/descendants as the main tree. But it is unusual usage of the tree, I understand not everyone needs this feature. Just hope something similar feature will appear anywhere in Gramps.

1 Like

@Urchello
Thank you very much for your motivating words!

Several users have reported this. I’ve looked into it, but it’s not as easy to fix as I thought. (There are quick fixes, but I’m looking for a long term solution.)

This also happens for ranges and “after”/“before”, maybe even when a special calendar is used for a particular date. I’m not sure how to deal with this. I was thinking of implementing a short date formatter that uses “~”, “<”, “>” and the like to save space (similar to the idea of abbreviating long names).

There is an experimental config to use an adaptive approach to calculate the generation distance. I only got positive feedback from one user, so I’m not sure if there are any problems with special cases. Once a few people have tested this experimental approach, I’ll make it the default.

Actually, I added those two days ago (see here). Maybe you need to update FamilyTreeView? I plan to add more expanders to expand other parents of a person and siblings of ancestors.

1 Like