-
-
-
Double-click this file name in your Windows file explorer to run Treebard. First install Python 3.8 or greater, and pip install Pillow. Install the SQLite terminal tool. All of which my grannie could do. There's no excuse for not giving yourself the Treebard GPS experience.
-
-
-
This module handles creating new sources, citations, and assertions, and includes a class that opens assertions tables on the assertions tab.
-
-
-
This module enables the user to change color schemes app-wide instantly without restarting the app, and includes the Colorizer class which displays the color scheme controls in the preferences > colors tab.
-
-
-
This module takes care of letting the user choose date formats, storing and editing dates, and there's a class that populates the preferences > dates tab with controls.
-
-
-
Provides the Treebard developer with 1) a printing tool that lets the dev make print statements that include line numbers and descriptive strings, without extra typing, and 2) an easy way to make timestamped copies of any Python file when things are going well, in case the dev should want to roll back to this version.
-
-
-
This is a class that displays controls on the little TabBook where the person image gallery is opened, on the right side of the person tab. The user can record, prioritize, and delete to do list items specific to the tree where the do list appears.
-
-
-
This module contains classes and functions that display messages in Treebard. Actually the basic error message usually used is the `open_message` function in widgets.py.
-
-
-
This module populates the nuclear families table on the person tab above the conclusions table.
-
-
-
These are file utilities that allow the user to create, copy, rename, and delete family trees.
-
-
-
This module creates the conclusions table on the persons tab, which displays the user's conclusions about events and attributes linked to the current person.
-
-
-
This module creates a dialog which can display images linked to a current person, current place or current source.
-
-
-
This module will allow the user to perform simple modifications to images such as resizing, cropping, adding borders and text, or to link captions to an image.
-
-
-
This module populates the preferences > media tab where the user can add and delete images from the tree, link and unlink images from persons, places, and sources, or delete an image from the tree altogether. Also the user can add his own default images--instead of Treebard's built-in default images--to display for persons, places and sources which have no images of their own, and the user can opt out of viewing any such default images at all.
-
-
-
The purpose of this module will be to let the user link and unlink any two Treebard elements to each other.
-
-
-
This module initializes display of specific parts of the Treebard interface.
-
-
-
These are strings imported to the various modules where error messages are used.
-
-
-
This module contains a class that opens Treebard's notes dialog, where the user can create, delete, link and edit notes. In Treebard, any note can be linked to any number of elements instead of the user's having to copy and paste notes that have to be repeated from element to element.
-
-
-
These are strings used to populate the right-click context-sensitive help dialogs.
-
-
-
This module opens the splash screen and opening dialog when the app is first started.
-
-
-
This tool works on its own but could be incorporated into the Treebard GUI. As developer, I use it to generate fictional names, birth dates and death dates when adding people to the tree for testing purposes. This simple tool is the only thing that prevents me from creating tree people with names like "Fardwick Pleabargain Cheesebottom IV".
-
-
-
This module takes care of sorting through a person's various names and appellations as well as letting the user create and delete people while also being able to add and even resize images to persons as they are being added to the tree.ab.
-
-
-
This module lets the user create places and place names. It has a class that populates the new and duplicate places dialog which gives the user a chance to make places with the same name without having them be the same place. Nested places are taken care of, such as "Paris, France" vs. "Paris, Texas" so they are two completely different places. Also, Treebard allows Dallas to have two different enclosing places--e.g. "Texas, USA" and "Republic of Texas"--to be Dallas' parent place without creating two different Dallases.
-
-
-
SQLite queries are imported from here so the Python code will be more readable.
-
-
-
This module creates a dialog that allows the user to tell Treebard where sources were found. Multiple repositories are allowed for a single source. Locators such as library call numbers and website URLs can be recorded.
-
-
-
This module creates and operates the right-click menu which includes a context-sensitive help menu.
-
-
-
In addition to tracking related people, Treebard lets the user add unrelated people to the database along with the role they played in family events such as "flower girl", "arresting officer" or "neighbor". These folks are treated exactly like anyone else in the tree, which will come in handy when Doris next door turns out to be AUNT Doris.
-
-
-
This module contains a resizing function and a mousewheel scrolling class which are imported to other modules.
-
-
-
This class has been used to create a person search dialog and can be used to create search tools for other elements also.
-
-
-
Most of the custom widgets created for Treebard have been moved to widgets.py, but this module still contains a function used to operate the tooltips that appear in the status bar.
-
-
-
There are a few utilities here that are imported to other modules.
-
-
-
Treebard uses custom widgets that can be detected by sub-class so that color schemes can be instantly changed app-wide without restarting the app. This feature's various reincarnations have landed us in the just-put-it-all-in-the-same-module zone, so this is a big file.
-
-
-
-
-
The tables in this database store data that is used app-wide no matter which tree project is currently open. On the other hand, databases which store information specific to a single family tree always have the extension `.tbd`.
-
-
-
This empty database has all the official Treebard schemas. It is copied when the user makes a new tree, and the copy is given a name suggested by the user.
-
-
-
This is the family tree I'm currently working with while creating a video series on how to use Treebard GPS, which will appear at Rumble.com hopefully soon. This will be an attempt to actually use the Treebard GUI to create a real family tree based on real documents. During this process, missing and/or inadequate features will be created or rewritten in order for the video series to continue.
-
-
-
This is a hodge-podge of imaginary characters, some related to each other, some linked to public domain images, and mostly created during development for testing purposes. There was an initial attempt to create a storyline for the first few persons that were input. It's actually a pretty interesting story. No connection to the persons depicted in the public domain photos of whoever was actually in those photos.
-
-
-
This very small family tree was an initial attempt to build a family tree using the Treebard GUI based on real people and real documents. This file should work fine and could be continued at any time.
-
-
-
This is an exact copy of default_new_tree.db. It exists to serve as a backup in case the original gets mangled somehow.
-
-
-
This is an exact copy of treebard.db. It is just a backup copy in case the original becomes unusable.
-
-
-
-
-
These are the images that the user adds to the tree which can be linked to persons, places, and sources.
-
-
-
These are Treebard's built-in default images which display for persons, places or sources that the user has not linked any images to.
-
-
-
The two-tone icons I've been using on Treebard's icon menu were created by interactivemania. These are the copies I use, as well as the image used on Treebard's splash screen.
-
-
-
These are images use on the SE-corner resizing button, the title bar resizing and close buttons, and the Treebard logo.
-
-
-
These are the public domain tree images that take turns appearing on Treebard's opening dialog right after the splash screen closes.
-
-
-
This is the specially-formatted icon that displays the Treebard logo on title bars and browser tabs.
-
-
-
These are extra copies of Treebard's default images.
-
-
-
This is the collection of two-tone menubar icons I use in Treebard's main view. The collection is included here in order to comply with interactivemania's licensing requirements.
-
-
-
-
-
This README file and the Unlicense are the only parts of Treebard GPS which still exist at the Github repo. The README file is the most comprehensive and up-to-date summary of what Treebard is all about.
-
-
-
Treebard GPS is free, open-source, public domain software. You can use this code for any purpose without permission, paying royalties, restriction or acknowledgment of where you got the code. You can donate for Treebard's contribution to your project (if you can find me). "No corporate empires were harmed in the making of this app."
-
-
-
I've added to this file of instructive example just about every time I had to look up how to do anything with SQLite. By now I rarely have to look anywhere else for examples of how to use SQLite.
-
-
- GEDCOM, a lowest common denominator which software developers have held themselves beholden to since 1984.
- Expert, a cross between a has-been and a big drip.
- Committee, a group of control freaks who will save the world together if they can ever agree on what to name their organization.
- Conspiracy, when two or more people decide to do something together which will have an effect on something. Of course, this never happens.
- Discouragement Fraternity, a fictional army of zombie robots that rises up to prevent any threat to the status quo, at every point on the globe and at every time in history, primarily by the use of propaganda and ridicule which have mostly replaced former tools such as inquisitions and burnings-at-the-stake.
- Do-it-yourself, an odd notion from the cave days that could save the world but it's not gonna be tried. Related to think for yourself.
Why Github wasn't right for Treebard
Terminology:
Here are the two simple steps needed for using Github or any other version control: 1) become a real programmer or plan on becoming a real programmer, and 2) use Github or some other version control. When you don't know what to do or have a problem, learn more despite the pain as if your livelihood depends on it; it probably does.
Here are the two main reasons that the Treebard project exists: 1) to show that a genealogist who has no interest in becoming a real programmer can still write his own genealogy software, and 2) to demonstrate features of GUI and data storage for genieware which are better than what's offered by the software that's already available.
Version control is absolutely essential to teams of real programmers working together on a project. Before there was version control, there still had to be some home-grown system of version control, and these systems were klunky and unmanageable for teams. Github and Friends provide a klunky and unmanageable system for real programmers which becomes less klunky and unmanageable, the more you happen to be a real programmer.
The very purpose of Treebard is to raise the bar for genieware from the currently low setting that could possibly be blamed on 1) developers' rush to put out a product, and 2) the reliance on a text file called GEDCOM for data transfer among apps, instead of a universal relational database structure being used by all developers.
Here at Treebard University we don't feel that standards committees are going to get this job done. The larger the committee and the better connected its members are in the 'genealogy community', the less likely that there's any hope that anything of substance will come out of it except tweaklets. The little changes that committees of well-meaning perfectionists are actually able to agree on serve mainly to preserve the status quo and uphold whatever flawed framework got there first, because the larger and more important the committee, the more careful the committee has to be to not step on anybody's toes. The only conspiracy involved in this process of changing as little as possible as slowly as possible is human nature and the natural desire to please vested interests while trying to pacify the masses so they won't march on city hall or start making demands. And because "someone's working on this problem", the very existence of the committee tends to keep concerned individuals from trying to solve the problem themselves.
And then there's the problem of how monoculture and monopolistic concerns are taking over the internet. You should go to a third world country and try connecting to any website that has to connect to all kinds of google fonts and statistics collection sites before actually showing you what you came to see on the website. Good luck with that unless you're in a big city or have a good antenna on top of a very tall bamboo pole. Let's not make a list of how many genealogy sites have been bought up by a*****y.com. We must not mention these things. We don't want to talk about how Github and VS Code are owned by convicted monopolizer Microsoft. We don't want to discuss how ubiquitous Chrome and Chromium have become, how hard it is for anyone to compete with YouTube--this is a lot of googlestuff in case you've been living under a rock--and under no circumstances do we want to even allude to all the censorship and blacklisting that has become such an everyday, accepted feature of the new corporate internet.
So to simply answer the question of why I'm not keeping my code at Gitbub any more, or why I don't have a Facebook group (or a Facebook account, or a Twitter account...), well, the answer is simple.
I don't want to.
