This project is read-only.

New functionality vs. new features

Jul 29, 2009 at 6:29 PM
Edited Jul 29, 2009 at 6:31 PM

I have read through most of what has been posted in the discussion groups and feature requests listed in the Issue Tracker and I would like to make a distinction between 'features' and 'functionality' in these posts. I know the terms are used interchangeably, but I don't know if we should.

When I have seen references toward menus, buttons, links, GedCom processing and the like, I consider those to be functionality requests. Though these are things I am interested in, I am not a good enough programmer to help much with this type of stuff. I am a database engineer by trade and just dabble in programming. I'll leave this type of stuff out of this post.

When I think of features, I think of things that are pertinent to performing tasks related to collecting and organizing my family history. This includes functionality that is not currently a part of Family.Show.

With that, I would like to list some functionality that I feel is missing (knowing some of it has been mentioned before). I am going to list some of them and probably reference other programs to give an idea of good ways to implement if I know of them. This is not an exhaustive list, just the most important items:

Source citations:


    1. Model after 'Legacy' for either manual entry or a wizard type format (question/answer)
    2. Easily accessible source button beside each screen field that requires sourcing – similar to's online interface

    3. Interface to internet sites to directly pull source information in accepted source reference format

    4. Download source files and pictures (Census pictures, SSDI references, etc) directly into an established or user defined directory structure

Interface directly with internet sites like, Rootsweb and the like:

    1. This is one thing Family Tree Maker 2009 does that almost works correctly when interfacing with

      • Family.Show's family tree will access the API/website to find references for each person

      • The little green leaf or whatever marker would signify that hints are available from

      • Hovering the mouse cursor over the leaf would show how many hints are available for that person

      • Clicking on the leaf will populate either a window or a section of the existing interface with the list and when an item is chosen the appropriate data will appear on screen

      • There should be a selection and verification process for adding individual pieces/any/all of data to your tree

      • Once a hint is processed, it should not appear again

    2. Data transfer from

      • This is the LDS website and has a search engine that can return family tree and history data

      • There are a variety of formats it exports data to

Structured research functionality:

  1. Similar to Legacy's 'Research Guidance' functionality

  2. The process examines missing data/relationships in the family tree and provides structured checklists and direct connections to Internet websites with potential resources

  3. Users should be able to add websites as new one's come online

  4. One thing Legacy doesn't do is pre-populate the form fields for each web site as you go into them

  5. Legacy also does not have a way to add new sites, remove sites and have the ability to store login information so you don't have to enter it in each time manually (like Family Tree Maker 2009 does)


  1. Various formats need to be supported – to file, HTML and/or print

    • Family

    • Descendent

    • Pedigree

    • Individual

    • Timeline

    • Ancestor

    • Lineage

    • Multiple lines of descent

    • Narrative

    • Chronology

    • Ahnentafel

Export to formats other than GedCom:

    1. HTML

    2. XML - I know the main database of this program is XML in a compressed archive format, but we shouldn't have to mess with that

    3. Publish to CD/DVD with a runtime version of the program so other people could be given copies of the family history without having to load programs. Basically, a run from disc capability

Publish directly to web:





  5. many more to consider


Please feel free to add on if anyone sees fit.




Jul 30, 2009 at 1:29 PM
Edited Jul 30, 2009 at 3:07 PM

I've been working on a few changes similar to some of what you describe (see next post for full - and long! - change list)

I have created the following after working with the source code:

  • HTML Reports
  • Support for adopted, foster, natural parents/children
  • Repositories editor with export
  • Sources editor with export
  • Citations editor with export
  • Export places to kml (Google Earth etc)
  • Previous and next person buttons
  • Merge files
  • Gedcom import for working with gedcom files*
  • Ability to filter the tree^

* does not yet export sources and repositories correctly, so import to a program is difficult.

^Unfortunately, I am unsure of the exact definition of all the types of tree you have listed.  However, I have created a right click menu on the visual tree that allows you to hide ancestors, hide decendants, hide siblings, hide aunts, uncles, show all generations, show immediate family only.  I think that allows you to create some of the types of visual reports you have listed.  If you post a link to somewhere describing the various definitions, I'll know better.

Regarding the CD/DVD version, the source code, if you download and run it, it can be "published" to a location.  Those files can then be burned to a CD to allow for a CD installer.  Also, if you have the familyshow.exe, the familyshowlib.dll and the themes directory in a fixed location, e.g. on a cd or a usb pendrive then that is all you need to run the program so long as .Net etc is installed.   I'm sure it would be possible to make the program create such a "resource" disc, but to my mind, click once install is a pretty simple alternative especially as the familyx format is probably the only tree format which pacages pictures and resources with the tree data in one file.

What I do find particularly with publishing directly to web is that each site tends to have a slight twist on the GEDCOM "standard" which is the best way to interface. doesn't correctly recognise "adopted" parents instead using _FREL and _MREL tags which are not in the GEDCOM standard.  I asked if they could provide a list of supported tags and their own self created tags but they never return my message (probably because they want you to use their own software).

The above has taken me since March to create, with over 50 bug fixes from version 3, some pretty major which cause you to lose loads of data.

See this issue thread for pdf file with screenshots:

Remember that all the changes I made were for solely to make the program do what I wanted but it shows what is possible :)




Jul 30, 2009 at 2:56 PM
Edited Aug 1, 2009 at 12:54 AM

Full change log for my customised version:

Change log

Version (2009-07-26) Customised Version

New Features and Changes

New features

• Added ability to export places to a Keyhole Markup Language (KML) file for import into Google Earth etc.

• Added privacy options to HTML Export and Save As actions. When privacy is enabled, living people are exported as "Living Surname" and all other information is removed.


• Added various filtering modes to the tree diagram.

• Added ability to view tree in full screen mode.

• Increased the amount of space available for the diagram area.

• Time slider and zoom slider sensitivities improved. Users can scroll one year at a time with Shift+MouseWheel and zoom gradually with Control+MouseWheel.

• Added status bar with file path and name. It displays a file name for .familyx files if the file is saved.

• Tidied menus and added icons.


• Improved GEDCOM import and export to support more tags and work better with GEDCOM files. GEDCOM Export and GEDCOM Import map additional data fields as used by uses a custom field _FREL and _MREL to describe the relationship type between a parent and a child. GEDCOM Export now used this so that GEDCOM files can export information about adopted/natural/foster children.

• Improved support for GEDCOM 5.5 allowing use of more GEDCOM tags. Not all data is viewable directly in Family.Tree but is preserved in both the .familyx and .ged files. In future, more fields can be simply be added to the list view for viewing and editing in Family.Tree.

• Save to GEDCOM now supports notes. GEDCOM does not support rich text format notes so are stored as plane text in .ged files. To facilitate this, .familyx files now have a plain text note field in addition to the rich text format storage.

• Changed the definition of First Name to Names and Last Name to Surname. This is comparable with the GEDCOM standard. The Names field is used to store however many names an individual has and Surname is their last name. V3 .familyx files can still be opened and in this version, however, the data will be converted to the new format i.e. first name and middle name are mapped to the new Names field and likewise for Last Name to Surname. This also makes it easier to identify people with the same first name and surname (common in older generations)

• On importing a GEDCOM, the person ID is converted to a globally unique ID rather than using the shortened GEDCOM IDs. Often GEDCOM IDs are common across different files so this can cause issues upon merging families.


• Added a repository manager listing all sources with the ability to export an HTML based report of information sources for a person.

• Added a source manager listing all sources with the ability to export an HTML based report of information sources for a person.

• Added a Citations panel for listing citing sources with the ability to export an HTML based report of citations and the respective sources for a person.


• Added next person and previous person navigation buttons.

• Added an Attachment panel so users can attach files to a person.

• Added a visual icons to indicate if a person has citations/sources, photos, notes or attachments.

• Added a More Details panel so that all data can be input without having to use list view.

• Added the ability to allow dates to be described with "ABT", "AFT" or "BEF" for about, after or before to reduce the impact of the limitation of date fields not supporting approximate dates.

• Added ability to view maps by clicking search icon next to location fields.


• Added the ability to export various information to a HTML file for simpler printing. The user can choose to save the whole family, current person or relatives based on generation. If only the current person and immediate family are exported, the html file documents the relationships. Users can also export up to 3 ancestral and 3 descendant generations or export based on a filter on common fields such as age and name. This feature will be developed to allow more advanced filtering and a function to allow users to specify what fields are exported.

• All HTML files are valid to XHTML 1.0 Transitional and CSS 2.1.


• Added the ability to merge two familyx files. Merging files adds people from another tree into the current tree if they do not already appear. Merge adds people from other trees who do not appear in the current tree. Synchronising data between the same person in two files should be done manually. A log file is generated if any people cannot be imported, detailing the reason why. The log file is a html document which can be viewed in a web browser. Sources, citations and repositories are updated during merge.

Save As

• Added the ability to export part of a familyx file. When using Save As, the user can choose to save the whole family, current person or relatives based on generation. Users can also export up to 3 ancestral and 3 descendant generations from the current person.

• Improved close handling giving user option to cancel close, save file or not save file.

• If a file name is specified, the user is no longer prompted to input a new file name when asked to save unless user deliberately selects "Save As..."


• Adoption functionality implemented in the program. Parent child relationships can now be either adopted, natural or foster. Child parent connector lines show different dash styles for natural (solid), adopted (dashed) and foster (dash-dot). Note that GEDCOM does not have a simple standard for dealing with adoption so exported GEDCOM files will simply export all parents’ relationships regardless of type.

• Added function to allow any relationship to be deleted.


• Renamed software to Family.Tree (to allow side by side install of other versions of the software)

• Created a *.msi for simple installation Family.Tree. Installer checks for minimum of .NET 3.5 before installing

• Removed sample data files from build as some of these are in the old family format.

• Removed support for .family files as this added lots of complexity to the program. Users can convert old files using version

List view

• Added more fields to list view.

• Added ability to reorder columns in the list view.

• Added the ability to select which columns are displayed in the list view via a right click context menu.

• Histogram now uses coloured bars.

Photos and Histories

• Renamed Stories to Histories. Histories are rich text equivalent of notes.

• Made changes so pictures can only be added in the Photos and History page, tidying up the user interface and preventing problems with the first dragged image showing up as the users default photo.

• Added scroll bar to photo panel to enable all added photos to be accessed.

• Users can now click to view full sized versions of photos in Windows.

• Users can link images to multiple people via a right click menu on the drop photo area. Adding the same image to multiple people previously needed a unique copy of the file for each individual which increased the file size.


• Renamed Skins to Themes

• Added a Print Theme which is a printer friendly theme.


• Implemented the print method which prints the view of the diagram area. This does not print the full tree but is quicker than Saving to XPS and then printing!

• Added ability to print histories in Photos and Histories.

• When using time slider, the node connectors disappear completely when a person is shown as faded. This makes it clearer on printing trees in the past.


• Removed "Close" from the New User Screen as this option does the same as Add.

• In previous versions, deleting an image would remove references to that image but it would still be packaged in the familyx file. This was inefficient and could lead to overly large familyx files. On saving, the program now only packages images which are present in the tree file. A similar problem with histories has also been resolved.

• Prevented death dates and place of death being added for living people in listview.

• Fixed issues where trees would not load because of problems writing files to the temporary directory.

• Corrected a data binding convertor which was incorrectly holding on to image files which were no longer in use by the application.

• Application now cleans up temporary files on start up and close.

• Fixed marriage relationship imports from GEDCOM files. Previously only some were imported.

• Solved problems with multiple identical relationships being created when connecting two existing people together.

• Fixed keyboard shortcuts.

• Improved handling of unsupported image types. Unsupported image formats are prevented from being dropped onto add photo regions and the user informed. *.png, *.jpg and *.jpeg are supported.

• Improved handling of unsupported file names containing spaces and {}. If an image file or persons name contained a space or {} their history would not load and images would appear as white squares. Image names cannot take {} or spaces in their names whilst these characters are removed before creating the story path. If you used Stories and Photos in a previous version, it is advised to recreate your tree from scratch if you are experiencing these problems.

• History files names take the person’s name and the unique person ID. This prevents a person with the same name getting the same history. This problem also applied to photos.  For photos, adding an image with the same name will result in (#) being appended to the file.

• Improved Theme Compatibility between Windows Versions particularly with XP which showed squares for marriage dates because Calibri is not a system font for XP.

• Fixed issue where dates could not be deleted.

• Fixed issue where ages were being calculated for deceased people when no death date is provided.

• Fixed problem where Time Slider is displayed during Print or Save to XPS, obscuring the view of the tree.



Jul 30, 2009 at 8:56 PM

Good stuff that you added.  Are we going to see the source or executable?  Also, did you make it Unicode compliant?

Here are some things I'd suggest you improve:

  1. The previous/next should not be the person since that could easily be selected from the list.  Previous/Next should be associated with the last/next person selected.  Similar to an undo/redo.
  2. Add undo/redo.
  3. The dates (birth, death, etc.) should allow for a between dates as well.  A Circa checkbox would also be nice.
  4. The validation when connecting people could be improved by filtering out the opposite sex.  Why even display them?
  5. The Enable Privacy is nice.  Add the option to pick and choose which fields are private.  Different people can get different exports.  Add the option to save these settings for future usage.
  6. Add a statistics page, with export, that shows a summary of all the family tree data.  Useful for website summaries.

That's about it for now.



Jul 31, 2009 at 11:42 PM

Hi elyoh (and Bassam),

I am very excited to see someone else is really pounding on this.  From your change log and descriptions of what you have done, you have really taken this project to heart.  I look forward to seeing what you have done and playing around with it.  I wish my coding skills were much better so I could help more, but I think I may be relegated to the realm of ideas and documentation (I'm a former English teacher, so I know I can do that at least to help!)




Jul 31, 2009 at 11:51 PM

By the way, elyoh: would it be possible to get a copy of your version so I can play with it.  I'll try to act as a beta tester for you.