History and Road Map
====================

Past
----

2015
^^^^

- November: First implementation, simple data types, simple GUI

2016
^^^^

- February: Implemented selection (the same item gets selected in all trees, changing a tab shows the same item)
- March: Implemented remaining local functionality (Copy Branch as Sibling, Copy Children to Siblings, Remove from this Tree, Delete Item)
- August: Created installable python package

2017
^^^^

- May: Implemented new field type *text*
- June: Create deployable packages for Linux and Windows
- June: Made **pre-release v0.0** available
- October: Implemented new field type *node-path*, re-wrote the way nodes move to new parents
- November: Uploaded package to pypi.python.org, *TreeTime* can now be installed using pip

2018
^^^^

- October: Re-implemented the parent selection mechanism. The old cascaded menus have been replaced with single drop down lists.
- October: Re-furbished the GUI and removed a couple of bugs. Slighty changed the data file format. Implemented theme selection. Tested pyqtdeploy for deployment instead of pyinstaller. Updated the description.
- November: Released **version 2018-10**

2019
^^^^

- January: Implemented new field type "URL"

2020
^^^^

- June: Fixed problem with protected cells (typing into a cell without data could cause a crash), and fixed file selection dialog (now only offers .trt files).
- July: Implemented text export - single branches or complete trees can now be exported to txt files.
- August: Implemented time counters - nodes can record the time using a special field of type "timer" (experimental). GUI buttons can start and stop the stopwatch function.
- September: Added move-to-top-level option for first level nodes
- October: Added a dark and a light palette for GUI colours, selectable in addition to the theme selection.
- November: Fixed too slow editing in text fields when tree files are big (>1.5 MB).

2021
^^^^

- January: Released **version 2021.01**.
- January: Bugfixing (timer crash)
- February: Released **version 2021.2**.
- March: New functions "Delete node" and "Remove node from tree" now move descendants one level up.
  "Remove branch" removes the respective branch in all trees, "Delete branch" deletes a
  branch, all child branches and inter-connections in all trees.
- March: If a file with running timers is saved, those timers will be running when the file is loaded.
- March: Added tooltips for main buttons
- March: Implemented HTML export of branches and complete trees
- March: Added auto-delete for orphans
- March: Released **version 2021.3**
- April: Added file option
- April: Implemented four-column layout and rainbow colours for html export
- April: Released **version 2021.4**
- May: Improvement to html and txt export (changed colours, headings have no different sizes)
- May: On export of both html and txt, user can now decide how many tree levels (depth) should be exported.
- May: Released **version 2021.5**
- July: Fixed broken application logo
- July: Implemented CSV export
- August: Released **version 2021.8**
- September: Added new export option "Text to Clipboard"
- November: Added new export option "Html (List) to File"
- December: Added two primitive template files (a text-only single tree and dual tree mindmap)
- December: Released **version 2021.9**

2022
^^^^

- March: Fixed crash bug on non-export
- March 2022: Improved sorting and grouping in html export, changed to five columns
- June 2022: Added a tutorial file
- June 2022: Added first-use dialog when no file is loaded, instead of the file-open dialog
- June 2022: Released **version 2022.1**

2023
^^^^

- February 2023: Added new tree field types "concatenation" and "set".
- February 2023: Implemented adjustable width for the data item and the tree table main view.
- February 2023: Release **version 2023.1**
- April 2023: Removed deprecated tree field ("concatenation"), fixed missing logo.
- May 2023: Ported to PyQt 6.0
- May 2023: Implemented auto-adjusting name column
- June 2023: Created new default theme "Organic", a mix between Fusion and Breeze
- June 2023: Implemented display of tree field definitions and of data field definitions
- July 2023: Release **version 2023.2**
- October 2023: Fixed crash when exporting text to clipboard.

2024
^^^^

- January 2024: Changed node symbol to small circle in text eport (after asking users on social media).
- February 2024: Implemented min, max, min-string, max-string fields.
- March 2024: Implemented longtext data field.
- April 2024: Extended documentation on readthedocs.io. Release **version 2024.1**
- April 2024: Restructured export area, added name-only export. Made all export options (full tree / branch / node with contect) (all fields / names only) available for all file formats and for both file and clipboard export.
- April 2024: Release **version 2024.2**
- Done March 2024: Implemented changeable font size (zoom) of data display
- Done May 2024:  Implemented continuous text and html export
- July 2024: Release **version 2024.3**
- October 2024: Fixed crash bug and improved html output
- November 2024: Improved colours in html output, implemented continuous change to export for textfields even if the focus stays in, fixed broken layout of html export
- December 2024: Changed colours in html output (again?), increased font size
- December 2024: Release **version 2024.4**

2025
^^^^

- January 2025: Changed colours on html export to a seven-colour rainbow palette.
- February 2025: Implemented PNG export
- March 2025: Implemented SVG export
- March 2025: Implemented HTML/Document export
- April 2025: Improvements to image export.
- April 2025: Release **version 2025.1**
- Done June 2025: Bugfix in SVG export (line breaks)
- Done June 2025: Implemented MarkDown export
- Done June 2025: Implemented flexible export (field names / content / node name)
- Done July 2025: Implemented web server for continuous sharing
- Done July 2025: Release **version 2025.2**
- Done October 2025: Added new calcuation field: product
- Done October 2025: Enabled running of multiple instances.
- Done October 2025: Fixed display of max numbers
- Done October 2025: Implemented hidden tree fields
- Done October 2025: Added new calculation field: reciprocal
- Done October 2025: Started structure edit functionality: Implemented type change for data and tree fields, change of visibility for tree fields, changing of data item name and data item field name, editing of tree field names, editing of tree names, parameter list editing for tree fields
- Done November 2025: Implemented deleting of trees, adding of trees, deletion of tree fields, adding of tree fields, adding and deleting of data fields 
- Done November 2025: Implemented new-file button, removed first dialog
- Done November 2025: Release **version 2025.3**
- Done December 2025: Implemented types in meta editor.
- Done December 2025: Fixed bugs: Non-propagating data field definition, double decorators in text export. Removed empty copy-children button.
- Done December 2025: Added checks and error messages to meta editor (recursion check). 
- Done December 2025: Release **version 2025.4**

2026
^^^^

- Done January 2026: New field type "count".
- Done February 2026: Improved text and html export.
- Done March 2026: Implemented TSV export, bugfixes.
- Done March 2026: Release **version 2026.1**


Present
-------

- Bugfixing
- Extend documentation on readthedocs.io
- Add more fields
- Add more examples and more template data files

Future
------

Near Future
^^^^^^^^^^^

- Implement search function

Mid Future
^^^^^^^^^^

- Implement global functions (Linearise Tree, Level-Swap, Merge identical Siblings, Merge Identical Parents/Children)

Far Future
^^^^^^^^^^

- Implement safe usage by multiple simultaneous users
- A whole lot of other fancy things that will probably never get done

