ReadMe File for TreeLine

an information storage program

by Doug Bell
Version 1.2.1 (stable release)
November 4, 2008

Contents


Background

Features

Legal Issues

System Requirements
    Linux
    Windows

Installation
    Linux
    Windows

Using TreeLine

Revision History

Questions, Comments, Criticisms?

Background

Do you have lots of sticky notes lying around with various useful information jotted down? Or many lists of books, movies, links, website logins, personal contacts, or things to do? Can you find them when you need them? Well, I often couldn't. So here's my answer.

Some would call TreeLine an Outliner, others would call it a PIM. Basically, it just stores almost any kind of information. A tree structure makes it easy to keep things organized. And each node in the tree can contain several fields, forming a mini-database. The output format for each node can be defined, and the output can be shown on the screen, printed, or exported to HTML.

Since I'm not in the software business, I'm making this program free for anyone to use, distribute and modify, as long as it is not incorporated into any proprietary programs. If you like the software, feel free to let others know about it. And let me know what you think - see the Questions, Comments, Criticisms? section for contact information.


Features

General

  • Stores almost any type of information, including plain text, HTML, numbers, dates, times, booleans, URLs, etc.
  • The tree structure helps keep things organized.
  • Each node can have several fields that form a mini-database.
  • Several node types, with different sets of fields, can be included in one file.
  • The node format, including fields, output lines and tree-view icon, can be defined for each node type.

Views

  • The left-hand view defaults to a tree view but can show a flat list of descendants of the current node.
  • The left flat view also shows the results of filtering operations.
  • The right-hand view can show one of three views - for showing output, editing node data and editing node titles.
  • The right-hand view is normally split to show data from the parent node and its children.
  • If multiple nodes are selected, the right-hand view shows all of their data.
  • The output view can be set to show indented output from all descendant nodes.

Navigation

  • There is a quick incremental search command to find a matching node title.
  • There is a find command that searches through all node data.
  • Previous and next selection commands toggle selections to quickly move between parts of the tree.

Formatting

  • The dialog for data type configuration has several tabs to easily set all type, field and output parameters.
  • Formatting information can be copied from another TreeLine file.

File Handling

  • Undo and redo commands are available for all modifying operations.
  • TreeLine files are XML by default, but there are options for automatically compressing or encrypting the files.
  • Document templates for new files are preformatted to cover basic needs.
  • The formatted output can be printed with parent/child lines and headers and footers.

File Import and Export

  • The data can be exported to HTML.
  • An XSLT file can be exported to work with the XML TreeLine files.
  • Tab-delimited tables and tab-indented text files can be imported and exported. Plain text files and Treepad files can be imported.
  • Mozilla and XBEL format bookmark files can be imported and exported.
  • Generic XML files can be imported and exported, allowing TreeLine to function as a crude XML editor.
  • ODF text documents can be imported and exported as outlines.
  • Batch file conversions can be done from a command line interface.

Linking Objects

  • Clicking on URL fields in the output view opens the link in an external web browser.
  • There are internal link fields that select another node based on a reference or a keyword.
  • An executable link can run an external program or open a file when clicked.

Data Manipulation

Customization

  • There are many options for customizing both general and file-based attributes.
  • There are editors for keyboard shortcuts and toolbar commands.
  • The user interface and documentation are available in English, French, German, Portuguese, Russian and Spanish.

Legal Issues

TreeLine is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either Version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. See the LICENSE file provided with this program for more information.


System Requirements

Linux

TreeLine requires the following libraries and programs:

Windows


Installation

Linux

Extract the source files from the treeline tar file, then change to the TreeLine directory in a terminal. For a basic installation, simply execute the following command as root: "python install.py"

To see all install options, use: "python install.py -h"

To install TreeLine with a different prefix (the default is /usr/local), use: "python install.py -p /prefix/path"

To install language translations for TreeLine, download the "treeline-i18n-..." tar file that matches the version number of the main TreeLine file (ignore the letter suffix on the translation version number). To install the program and translation files simultaneously, extract the translation file from the same directory where the main treeline tar file was extracted and run the install command as described above. If TreeLine is already installed, extract the translation file to any directory and run the translation's install command as described above.

Windows

Simply execute the downloaded installation file (treeline-x.x.x-install.exe). It will install the program with its libraries and optionally create file associations and shortcuts.

To use TreeLine's spell checker, an external program (aspell or ispell) must be installed (see the System Requirements section).

To install language translations for TreeLine, download the "treeline-i18n-..." exe file that matches the version number of the main TreeLine file (ignore the letter suffix on the translation version number). To install the translation files, simply execute the translation file.

If you wish to modify the source code or write your own PyQt programs for Windows, do not use the above procedure. Instead, you need to install Python (see www.python.org), Qt (see www.trolltech.com), and PyQt (see www.riverbankcomputing.co.uk). Then extract the source code files from the Linux version (treeline tar file) to a directory of your choice and execute the treeline.py file.


Using TreeLine


Contents


Getting Started
    Introduction
    Templates
    Example Files

Basics
    Left Pane Views
    Right Pane Views
    Commands

Tree Navigation
    Keyboard Shortcuts
    Selection
    Searching

Tree Editing
    Edit Menu
    Shortcuts
    Right Pane Views
    Spell Check

Formatting and Node Types

Field Types

Tree Data Manipulation

Printing
    Print Options
    Page Setup
    Printer Font
    Header and Footer
    Print Preview
    Printing Problems

File Handling
    File Compression
    File Encryption
    Auto Save
    Saved Tree States
    Command Line

File Import

File Export
    General Information
    HTML
    Delimited Text
    Bookmark Files
    Generic XML
    XSLT
    ODF Text Document

Customizations
    Options
    Fonts
    Keyboard Shortcuts
    Toolbars
    Colors
    Tree Icons

Plugins
    Description
    Installation
    Interface

Common Problems
    Closed Panes
    XML Error
    Printing

Getting Started

Introduction

TreeLine is a more complex program than it appears at first glance. Reading much of this documentation is highly recommended in order to learn to use it effectively.

The
Basics section describes views and selections. To learn how to move around and change the tree, refer to the Tree Navigation and Tree Editing sections. Next, its time to go beyond using TreeLine with only simple text for each node. To learn about setting up custom data for each node, refer to the Formatting and Node Types and the Field Types sections.

Templates

When starting a new file, the templates dialog gives a choice of nodes with a single line of text or with long text. The single line template only has a node title, while the long text options have a title and a multiple line text field in each node. For long text, you can also choose between plain text, which preserves line breaks, and HTML text, which allows more complex formatting.

There are a few more specific options, including canned setups for personal contact information a book list and a to-do list.

Example Files

Various TreeLine sample files can be opened by using the "File->Open Sample" command. They include (roughly in order of increasing complexity):


Basics

Left Pane Views

The default view in the left pane is the "Tree View". Parent nodes can be opened and closed to display or hide their indented descendant nodes.

The other tab in the left pane is the "Flat View". It displays all of the descendants of the nodes that are selected in the "Tree View" in a flat list. It also shows the results of filtering operations (see the
Filtering section).

Right Pane Views

The right pane is tabbed to show one of three different views of the data. The "Data Output" view shows the formatted text for each node and is read-only (see Figure 1). The "Data Editor" view shows a text edit box for each data field within a node (see Figure 2). The "Title List" view shows a list of node titles that can be modified using typical text editor methods.

When a parent node is selected in the tree, the the right view will default to showing information about the selected node in an upper pane and information about the selected node's children in the lower pane. The "View->Show Child Pane" command will toggle the display of the child nodes. If the selected node has no children, the view will show a single pane with information about the selected node only.

When multiple nodes are selected in the tree, the right view will not display any child node information. It will instead show information about every selected node.

When the "View->Show Output Descendants" command is toggled, the "Data Output" tab will show an indented list with information about every descendant of a single selected node.

The initial state of the views can be controlled by changing the startup conditions in "Tools->General Options".

By default, the number of nodes displayed simultaneously in the "Data Editor" view is limited. Buttons in a heading allow the next or previous set of nodes to be displayed. This provides a convenient way to page through the node information without slowing the program by trying to display too many fields. The number of pages to display can be set in "Tools->General Options".

Commands

Most of the menu and tool-bar commands apply to the items selected in the left view. In general, they perform an operation on the nodes themselves or on the descendants of the nodes. Multiple nodes can be selected by holding down the "Ctrl" and "Shift" buttons when clicking with the mouse.

To add information to a new TreeLine document, use the "Edit->Add Child" command to create a new node. Then combinations of the add and insert commands may be used for additional nodes. Alternatively, new node titles may be typed into the "Title List" view in the right pane.


Tree Navigation

Keyboard Shortcuts

There are several keyboard commands that can be used for tree navigation. The up and down arrow keys move the selection. The left and right arrows open and close the current node. Holding the CTRL and SHIFT keys with "J" or "K" moves between siblings, skipping children. The CTRL key and "U" moves to an item's parent. The "Home", "End", "Page Up" and "Page Down" keys can be used to move quickly through the tree. The CTRL and SHIFT keys can be held with the "Page Up" and "Page Down" keys to move the tree view even when a different pane is focused.

All of these keys and the keyboard shortcuts for pull-down menu commands can be customized by using the "Tools->Set Keyboard Shortcuts" command. The shortcut editor has tabs for menu and non-menu based commands. Simply type the new key sequence with the appropriate field selected.

Another way to move through the tree is to type the first letter of a visible node title. Hitting the letter again moves to the next possibility.

Selection

Multiple nodes can be selected by holding down the CTRL or the SHIFT keys when changing the active node. Individual nodes are added or removed from the selection when the CTRL key is held. The selection of all nodes between the old and new active nodes are toggled when SHIFT is held. The active node can be changed by using the mouse or by using any of the keyboard navigation methods.

The "View->Previous Selection" and "View->Next Selection" commands can be used to toggle through a history of selections, allowing faster navigation through the tree.

By default, the selection sequence doesn't matter. However, if the general option for multiple selection is changed to "Selection Order", nodes selected with CTRL key held are output in the order selected.

Searching

There are two ways to search for nodes. These methods can find nodes that are buried in the tree structure. The first is the "Tools->Find" command. Keywords can be entered in a modeless dialog box. A node is found if the keywords are matched in any of the node's fields. The matching text will highlight in the "Data Output" pane.

The next method is an incremental search, started by typing CTRL + "/". Then type the search string, which shows up in the lower status bar area. The search will progress as the string is being typed. The incremental search only finds text in the node's titles. The previous search can be repeated with the "F3" key and backward with "Shift-F3".

By default, parent nodes will automatically open and close when found with the search methods, by typing the first letter, and with the "next sibling" keyboard command. This behavior can be disabled in "Tools->General Options".


Tree Editing

Edit Menu

The commands in the "Edit" menu (except for undo and redo) operate on the selected nodes in the left tree view. The cut, copy and paste commands can be an exception to this, since they operate on the right view when something is selected there. And keep in mind that, in general, the descendants of the selected nodes are also affected.

Paste will add a copied nodes as the last child of the selected node. If more than one node is selected, additional copies are added under each selected node.

The "Edit->Paste Node Text" command renames the selection based on either the text in the clipboard or the title of the top node in the clipboard.

Shortcuts

There are several shortcuts for use in tree editing. Drag and drop will move or copy nodes to become a children of the destination node. Clicking on a selected node will rename it. Pressing the enter key will insert a new node, and pressing the delete key will remove the selected nodes. If desired, these shortcuts can be disabled in "Tools->General Options".

Right Pane Views

In the right pane, the "Data Editor" view provides the most direct way to edit the data within a node. If the edited field is used in the title formatting, the node title in the tree will show the changes. The field editor will scroll, allowing multiple lines of text to be entered.

There are items in the "Data Editor" box context menus to add HTML font tags around selected text. These tags include bold, italics, underline, size and color. Note that the fields must be set to display HTML content (see the
Field Types section) for this to be effective.

An external editor can also be invoked from a "Data Editor" box context menu. After the text editor saves changes and is closed, the changed text will be in the text box. The EDITOR environment variable can be used to specify the editor to start, or, if the variable doesn't exist, TreeLine will prompt for an executable to set as the default.

Also in the right pane, the "Title List" view is useful to quickly rename child titles or to add new child nodes. A text list of new nodes can even be pasted directly into this view.

Spell Check

There is a spell check command in the "Tools" menu. Use of this command requires an external program to be installed (either aspell or ispell - see the System Requirements section). If there are any misspelled words in the selected branch, a dialog will allow the word to be ignored, added to the dictionary, replaced with a suggestion or edited. This will spell check the text in all data fields of each node.

By default, the spell check will use dictionaries for the current operating system language. If using aspell, there is an option under "Tools->File Options" to specify an alternate two-letter language code for the current TreeLine file. Note that the appropriate aspell dictionary files must be installed and that this option does not work with ispell.


Formatting and Node Types

Setting Nodes to a Type

By default, a new TreeLine document contains two node types: "ROOT" and "DEFAULT". The type is shown at the top of each node box in the "Data Editor" right-hand view. The creation of new types and the customization of types is described below. To set the selected nodes to a specific type, use the "Data->Set Item Type" menu. Alternately, to set a series of child and descendant nodes to a specific type, use the "Data->Set Descendant Types" command. The resulting dialog box allows the selected nodes, their children, all descendants, or descendants matching logical conditions to be set to the highlighted type. The dialog box can be left open while the tree selection is changed to set more nodes.

Type List

The "Type List" is the first tab of the "Data->Configure Types Dialog". The list of data types can be modified by the buttons on the right. New types can be added, and existing types can be copied, renamed or deleted.

Type Config

"Type Config" is the second tab of the "Data->Configure Types Dialog". It contains a selection for the default child type. If set, this will be the initial type used for new children with this type of parent. If set to "[None]", children will default to either the type of their siblings or their parent.

The "Change Icon" button allows the selection of a custom tree icon for this data type. The "Clear Select" button on the icon dialog can be used to set the icon to "None", so that no icon will be displayed for this type. To avoid showing any tree icons, the "Show icons in the tree view" general option can be unset.

Field List

The "Field List" is the third tab of the "Data->Configure Types Dialog". The list of fields within a data type can be modified by using the buttons on the right. New fields can be added, and existing fields can be moved up and down in the list, renamed or deleted.

Field Config

"Field Config" is the fourth tab of the "Data->Configure Types Dialog" (see Figure 3). The field type and its output format string can be set (see the Field Types section for details). Extra prefix and suffix text to be output with the field can also be set, and a default field value for new nodes can be entered. There is a choice between plain text, which preserves line breaks, and HTML text, which allows various formatting options. Finally, the number of lines displayed in the editor for the field can be specified.

Output

"Output" is the last tab of the "Data->Configure Types Dialog" (see Figure 4). The left half of the dialog shows the fields. The right half shows the formatting for the title (used for the node text in the tree view) and the node output. The formatting consists of text lines with embedded fields. The fields are shown as "{*field_name*}". The field that is selected in the list can be added to a format at the cursor position with the ">>" keys. The format field reference at the cursor can be removed with the "<<" keys.

Title Formatting

When a node in the tree is renamed, the program attempts to match the title formatting pattern to set the appropriate fields. If the title formatting is too complex, it may not correctly guess the intent. Things like adjacent fields with no characters separating them should be avoided unless you do not wish to rename nodes from the tree.

If the text data used for a tree view title has multiple lines, only the first line will be used as the title.

Skipped Output Lines

If a line in the output formatting contains one or more fields and all of those fields for a given node are empty, the line is skipped. No blank line or embedded text will be output for that line. Note that this does not apply to a line without any fields (only embedded text). Also, when a line ending with a <br/> or an <hr/> tag is skipped, the ending tag is retained.

HTML Tags

Simple HTML formatting tags can be used in node output formats. Commonly used tags include "<b>bold</b>", "<u>underline</u>", "line break<br/>", "<hr/>horizontal line", and various font tags. Complex block tags should generally be avoided. When the "Allow HTML rich text in formats" file option is disabled, formatting tags are treated as plain text. For an example of tag use, see the "sample_color_items" file (by using the "File->Open Sample" command).

A line break is automatically output after each formatting line, unless the "Add line breaks after each line" file option is unset. In addition, the "Add blank lines between nodes" file option determines whether there is also an automatic blank line between node outputs. A line break tag ("<br>") can be used at the end of the formatting to get the same effect, or a horizontal line tag ("<hr>") may be used instead to separate the nodes.

Formatting Examples

Here is an example of output formatting for a book list:

<hr/>"{*Title*}"
(c) {*Copyright*}, Rating: {*Rating*}
{*PlotDescription*}

Sample files with various kinds of formatting are included in the program distribution. They can be opened by using the "File->Open Sample" command. They are also listed in the
Example Files section.

Other Field References

References to fields that are not contained within the node can be added to the output. Pushing the "Show Advanced" button on the "Output" tab of the configure dialog makes a reference level selection become visible.

If the reference level is changed to "File Info Reference", fields containing file meta-data can be added to the output. These include the file name, path, size, and modified time. These are shown as "{*!field_name*}" in the title and output format editors.

There are field references to various ancestor nodes (parents, grandparents, etc.). These require the data type of the reference to be specified. This selection determines the field names that are available, but the data from any type with a matching field name will be shown in the output. References to fields from parent and grandparent nodes are shown as "{**field_name*}" and "{***field_name*}", respectively. There are also general ancestor references, shown as "{*?field_name*}", that take data from the closest ancestor with a matching field.

References to child nodes can also be added. These also require that the child data type be specified. The child data becomes embedded in the parent output. The child data is delimited with a separator string defined as a file option. The separator defaults to a comma and a space, but can be set to <br> or anything else.

Finally, a "Child Count" reference can be added. This field will show the number of children ("Level1" field) or grandchildren ("Level2" field) of a node. These are shown as {*#Level1*} in the format editors.

For examples of these fields, see the "sample_other_fields" file (by using the "File->Open Sample" command).

Sibling Prefix and Suffix

Pushing the "Show Advanced" button on the "Type Config" tab of the configure dialog makes a sibling text section become visible, with settings for sibling prefix and suffix tags. These tags can often be left blank, but are useful for creating tables or bulleted lists. These tags will be placed before and after sibling groups of the proper type. For example, to create an output table, the sibling prefix tag could be set to "<table border="1">" and the suffix tag could be set to "</table>". Then, the output format could be set to:

<tr><td>"{*Title*}"</td><td>(c) {*Copyright*}</td></tr>

Also see the "sample_table_booklist" example file (by using the "File->Open Sample" command).

Siblings should generally be of the same type, or at least have the same prefix and suffix tags.

Link Reference Field

One of the fields for each type is designated as the link reference field. By default, it is the first field in the list. Pushing the "Show Advanced" button on the "Type Config" tab of the configure dialog shows the selector for this field.

The link reference field is used for internal link references and for the arrange and flatten by reference commands. The contents of this field should generally be unique if usage of these functions is planned.

Generic and Derived Types

Data types can be set to derive their field settings from a generic type. This allows types with different output formatting to always use the same set of fields. Any changes to the generic's list of fields and field types are automatically reflected in the fields of all derived types. This does not apply to a field's output formatting, which can still be set independently.

There are two methods for creating derived types. First, a derived option can be selected when copying a type on the "Type List" tab of the "Data->Configure Types Dialog". Alternately, a generic type can be specified from the derived type's "Type Config" tab of the dialog if the advanced functions are shown.

Conditional Types

Conditional expressions can be used to automatically assign a data type based on each node's content. Conditions can be assigned only to a generic type and its associated derived types. This allows the automatic assignment of different output formatting or different icons depending on each node's field data.

The conditional dialog box is accessed from a button on the "Type Config" tab of the "Data->Configure Types Dialog" if the advanced functions are shown. Each line of the condition includes a field, an operator and a comparison value (see
Figure 5). The operators include equality, greater than, less than, starts with, ends with, and contains. There are also True and False operators that will toggle the type of all nodes simultaneously.

For special field types such as dates, times, and booleans, the comparison value should be entered in the same format that is used in the Data Editor window. In general, the starts with, ends with, and contains operators should not be used for these special fields, since the comparison is done using an internal data representation. Dates and times also support a special comparison value of "now", which is always interpreted as the current date and time.

The "Add New Rule" button is used to add additional condition lines. The lines can be joined with "and" or "or" operators. The "Remove Rule" button deletes the last condition line. If only a single line is present, the "Remove Rule" button completely removes the condition.

Conditions do not have to be set for all types in a family. If no conditions are true for a node, the program will select a blank condition over a false one.

For an example, see the "sample_conditional_todo" file (by using the "File->Open Sample" command).

Copying Formats

Another method for changing data type formatting is to copy the formats from another TreeLine file. This is done with the "Data->Copy Types from File" command. All types from the chosen file are copied. Any types in the current file with matching names are overwritten, but types with unique names are retained.


Field Types

Field Options

The field type and options are set in the "Field Config" tab of the "Data->Configure Types Dialog" (see Figure 3). The field type may be set to text, number, choice, combination, auto choice, date, time, boolean, URL, path, internal link, executable link, unique ID, email, or picture. Prefix and suffix text can be entered and will show up whenever the data is not blank.

There are also settings for text content handling that can be set to allow HTML rich text in the field data or to preserve line breaks (ignoring HTML code). If HTML rich text is used, carriage returns are ignored and non-escaped "<", ">" and "&" symbols do not display. There is also a general option available that makes new fields default to HTML content. For an example of rich text use, see the "sample_char_format" file (by using the "File->Open Sample" command).

Several of the field types use a formatting string to define their output. For a list of available formatting characters, use the "Format Help" button. Entries in the data editor which do not match the format will cause the field name label to show in bold, and the output for that field will be replaced by "#####".

Text Type

The default field type is a text field. These fields are edited using edit boxes in the data editor view. The edit box height expands when redisplayed after adding several lines of text. The edit box height can also be set explicitly in the "Field Config" tab.

Choice, Combination and Boolean Types

The choice and combination field types allow for the selection of text items from a pull-down edit list. The formatting strings for these types list the items separated with the "/" character (use "//" to get a literal "/" in an item). Choice is used to select a single item and combination to select multiple items. The pull-down edit list for combination allows items to be added or removed. Also, the initial text of an item can be typed and auto-completed.

The boolean field type is similar to choice, but defaults to options such as "True/False", "yes/no" and "1/0".

There is also an AutoChoice field type. Like Choice, it provides pull-down selection items, but it does not have a formatting string. The pull-down is automatically populated with all previously used entries.

Number Type

In the number type, special characters in the format define the display of the numbers. The format uses a string of "#" (optional digit) and "0" (required digit) characters to define the output formatting. For example, pi formatted with "#.#" is "3.1" and formatted with "00.00" is "03.14". Regardless of the formatting, digits to the left of the decimal point are not truncated, since that would display an incorrect result. But use care to show enough decimal places (either optional or required) to avoid problems with round-off error.

The radix character can be specified as either "." or "," to handle internationalization. For use as a thousands separator, use "\," or "\.". For example, a large number may be formatted as "#\,###\,###.##" or as "#\.###\.###,##". Press the "Format Help" button from the field format dialog for more formatting details.

Unlike most other formats, the number type also uses the output format for display in the Data Editor. Of course, any new entry with a reasonable format is correctly interpreted (but the correct radix character must be used).

Date and Time Types

In the date, and time field types, special characters in the formats are replaced by elements of the data, similar to number fields. Press the "Format Help" button from the field format dialog for formatting details.

There are also formats for these types under "Tools->General Options->Data Editor Formats". These control how these fields are displayed in the Data Editor view. Generally, entries in the data editor with various formats will be correctly interpreted regardless of this setting, but dates must use the correct day-month-year sequence. Also note that the date editor format does not support days of the week. Entries which cannot be interpreted will cause the field name to show in bold.

A default initial field value of "Now" can be used to get a time-stamp of node creation.

Linking Types

The URL, path, and email field types are used to create links in the output. URL is for a standard web link (defaults to http:// unless otherwise specified), path is for a local file link (defaults to file:///), and email is for a mail link (defaults to mailto:). When clicked in the output window. these links open an external browser or email program. In exported HTML, they act as regular links. Simply enter the desired full path (such as "www.bellz.org/treeline/index.html") in the data editor. In Linux, setting the "BROWSER" environment variable to a string like "mozilla %s" will result in the desired browser being used.

There is also an internal link field type. It creates a clickable link in the Data Output window that selects the next node with matching text in its reference field. If link or reference fields contain multiple lines, each line is treated as a separate link or reference, respectively. If desired, the same field can be used as both the link and reference fields, so that clicking on a keyword in one node's field selects the next node that also has that keyword. If exported to HTML, the internal links function as links to page anchors, but, in cases with duplicate references, they only find the uppermost reference on the page instead of the next one. For an example, see the "sample_intern_links" file (by using the "File->Open Sample" command).

The ExecuteLink field type runs an external program when its link is clicked. The command to run is given by the text of the field. Or the field's prefix may contain the program name, so that the field's text is used for arguments or file names. A general option can disable these links when security is a concern.

The picture field type will show a referenced picture in the output. Enter the path to a local image file in the data editor. Supported image types include JPEG and PNG. GIF is support is optional - it may be supported depending on build options in the Qt library. Of course, when exporting HTML, the picture will show as long as the browser supports the format.

Unique ID Type

A Unique ID field type is automatically loaded with unique numbers. This is often useful for ensuring that the link reference field is always unique.

Initially, the field's format string is set to the desired first number in the series, with optional leading zeros and optional leading or trailing characters. The initial number and the extra characters are useful to avoid duplication of numbers in different files. All nodes of the data type will get an automatically assigned ID. The field format string will always show the next available number, which will be given to the next new node of that type.

Advanced Options

The "Show Advanced" button in the "Field Config" tab of the "Data->Configure Types Dialog" brings up additional settings.

Link fields can display alternate text in place of the target URL. This is done by specifying an alternate text field.

There is also a setting to flag fields as required to be filled in. Those fields will be marked with an asterisk in the data edit view.

Fields can also be set as hidden, to prevent them from showing in the data edit view.


Tree Data Manipulation

Category-based Commands

The "Data" menu contains commands for arranging and flattening the data by category and by reference. These methods are used to automatically add and remove levels of nodes below the current node in the tree.

The "Add Category Level" command allows you to select one or more of the fields that the child nodes have in common. These fields are used to create new parent nodes for the children, grouping them by common categories. For example, in a list of books, picking the "author_first_name" and "author_last_name" fields will result in a tree with the books under new nodes for each unique author.

The "Flatten by Category" command is almost the opposite of "Add Category Level". It eliminates any descendant nodes with children, transferring their data fields to their children. It will rename fields instead of overwriting data with the same field names, but this command is most useful when the children and parents are different types with unique field names.

Reference-based Commands

The "Arrange by Reference" and "Flatten by Reference" commands arrange data nodes by using pointers to the value of their parent's reference data field. These commands rely on nodes having unique values in the reference field, such as an ID number. The "Flatten by Reference" command adds a field containing the parent's ID to each descendant node. It then places all of the nodes under the selected root node. The "Arrange by Reference" command does the opposite, placing each node under the parent with the referenced ID. If there are multiple nodes with the same ID, the nearest node above the child is chosen. Any nodes with lost parents are placed directly under the selected root node.

Sorting

The "Data->Sort" command brings up the sort dialog. It contains options for sorting the entire tree, the selected branches, the selection's children or the selection's siblings. The sorting can be based on specific fields within specified types or on titles only.

Sorting by types allows the selection of several fields to be used as the first key, second key, etc. Multiple types can be selected in the list on the left. The fields that the selected types have in common are listed on the right. The fields to be used as keys are selected in order with the left mouse button and the direction is changed with the right mouse button.

Filtering

The "Data->Conditional Filter" command limits the display of nodes in the flat view based on user-defined rules. First, the type to be filtered is selected. Next, logical rules may be entered based on any of the type's fields (similar to Figure 5). Multiple rules can be linked by the "and" and "or" operators (press the "Add Rule" button). The "True" rule can be used to show all of the nodes of a given type. Only descendant nodes that match the rules will be shown in the "Flat View" pane. The filtering stays in effect for the "Flat View" pane until it is cleared using the "Data->Clear Filtering" command (see Figure 6).

The "Data->Text Filter" command works similarly, except it only prompts for a text search string. Only the nodes that have a match for that string somewhere in their field data are displayed in the "Flat View". Again, the filtering stays in effect for the "Flat View" pane until it is cleared using the "Data->Clear Filtering" command.

Numbering

The "Numbering" command is used to add number fields to descendant nodes. The number fields do not automatically update when the tree is modified - the "Numbering" command must be repeated. In the dialog, a new or existing field name is entered, and the root (selected) node may be included in the numbering if desired. One of three styles may be chosen: outline style restarts numbering for each group of children, section style appends the child's number onto the parent's number, and single level style numbers only the first level of children. The default formats can be used ("I, II..., A, B..., 1, 2..." for outlines; "1, 2..., 1.1, 1.2..." for sections), or custom formats may be specified for each level. The custom formats should contain one of the following characters: "1", "A", "a", "I", or "i". The series will continue from there (using numbers, letters or Roman numerals, respectively). The last occurrence of one of these characters in the format string is used - previous ones are assumed to be part of the format.

Change Selections

Finally, the "Change Selected Data" command allows the values of a data field to be changed simultaneously for all selected nodes. Simply select the desired field and enter the new value. To erase field values, enter a character then delete it - this will indicate that a blank field is desired.


Printing

Print Options

The "File->Print Options dialog's first tab is "General Options". On the left, printing of the entire tree, the selected branches (all descendants) or the selected nodes can be selected. The first two options print all of the descendants with the children indented.

On the right are options for drawing tree structure lines, including the root node, including only open children and keeping the first child with its parent. The tree structure lines are drawn to connect parent and child nodes. They can make parent/child relationships easier to visualize, especially across multiple pages. The lines may not display as desired when using some HTML formatting tags.

By default, TreeLine will avoid breaking pages between a parent and its first child. This behavior can be disabled by disabling the "Keep first child with parent" option.

Page Setup

The second tab of the "Print Options" dialog box is "Page Setup". On the left are settings for page size, orientation and units. On the right are settings for columns, indent offsets, and margins.

Printer Font

The third tab of the "Print Options" dialog box is "Font Selection". The printout will use the same font as the "Data Output" pane if the upper check box is checked. If it is unchecked, a font can be selected specifically for printing.

Header and Footer

The third tab on the "Print Options" dialog is used to set the print header and footer. There are file info fields on the left and six header/footer edit boxes (left, center and right justified) on the right. These fields can be added and combined with other text in the edit boxes, just like in the "Output" tab of the "Data->Configure Data Types" dialog. The header and footer settings are saved with the TreeLine file.

Print Preview

The print preview window can be shown by using the "File->Print Preview" menu or with the button on the "Print Options" dialog. Buttons on the window are used to navigate between pages, open the "Print Options" dialog, or open the print dialog. The print preview will show more detail if its window is made larger.

Printing Problems

Some printing problems, especially problems with margins and word-wrapping, can be eliminated by changing the print font to a font that is better supported by the printer.


File Handling

File Compression

A TreeLine file is in an XML text format. There are also options to work with compressed files (gzip format) to save space. Individual files can be set to compressed mode from either "Tools->File Options" or from the save-as dialog. There is also a general option to set the default mode for new files.

File Encryption

There is a file encryption option to password protect TreeLine files. Individual files can be set to encrypted mode from either "Tools->File Options" or from the save-as dialog. There is also a general option to set the default for new files. The encryption uses the SHA hash function as a stream cipher - it should be fairly secure.

Auto-Save

An auto-save feature can store unsaved files with a "~" appended to the file name. The backup files are automatically removed when the file is saved or TreeLine exits cleanly. The auto-save time interval is set in the general options. Setting the interval to zero disables this feature.

Saved Tree States

When opening a recently used file, TreeLine will restore the states of open and selected nodes. This information is stored in the user's TreeLine configuration file. If desired, this feature can be disabled with a general option.

Command Line

Command line options allow non-interactive file importing and exporting. This allows automated runs to be scheduled. For more details, run "treeline -h" from the command line.


File Import

General Information

A TreeLine file is in an XML text format. Other types of text files can be imported simply by opening them. Opening a file that is not valid TreeLine XML will result in a prompt for the type of import desired.

Delimited Text

TreeLine will open a text file with a tree structure represented by tabs before each line. In this case, only the node title is imported, without any extra fields.

A tab-delimited table can also be imported. It becomes a single level of children under the root node, with each node containing fields from each table column. The first row of the table is used as field names and each subsequent row becomes a node.

Plain Text

There are two types of plain text import. One creates a separate node for each line in the file. The other creates a node for each paragraph, assuming the paragraphs are separated by blank lines. In both cases, the resulting TreeLine file will have all of the text under a single parent, but it is a good starting point. Additional structure can be added later.

Treepad Files

There is also a filter to import files from the Treepad shareware program. Only Treepad text nodes are supported.

Bookmark Files

TreeLine will import bookmark files in both the Mozilla HTML format (Mozilla, Firefox and Netscape browsers) and the XBEL format (Konqueror, Galeon and Elinks browsers). Each bookmark becomes a node with a name and a link field. Some information in the files, such as visited dates and icon references, is not imported. For an example, see the "sample_bookmarks" file (by using the "File->Open Sample" command).

Generic XML

TreeLine will import and export generic XML files. These routines do not have much intelligence - each XML element becomes a node and each XML attribute becomes a field. XML text content become fields named "Element_Data". This lets TreeLine function as a crude XML editor.

ODF Text Document

TreeLine will import Open Document Format (ODF) text documents, from applications such as OpenOffice.org and KWord. The node structure is formed based on the heading styles assigned in the document. Any text under each heading is assigned to that heading's node. The import filter is intended for simple text outlines only. No formatting is maintained, and objects such as tables and pictures are not imported.


File Export

General Information

Files are exported using the "File->Export" command. This will show a dialog box of available export types and options.

HTML

Single-file HTML output is similar to printing, with similar options. It can include the print header and footer in the HTML, and the number of columns can be set.

There is also a multiple-file HTML export that creates a directory structure. Directories are named for the content of the reference data field, which must contain legal file names and not have duplicates under the same parent. Each HTML file is a table of data for a set of siblings, with links to the parent and child pages.

Delimited Text

Data can be exported to tabbed title text and tab-delimited tables. These formats are the same as the corresponding import formats. When exporting to a table, only the first level of children is used, so you may wish to flatten the data before exporting.

Bookmark Files

TreeLine will export bookmark files in both the Mozilla HTML format (Mozilla, Firefox and Netscape browsers) and the XBEL format (Konqueror, Galeon and Elinks browsers).

Generic XML

TreeLine will import and export generic XML files. These routines do not have much intelligence - each node becomes an XML element and each field becomes an XML attribute, except for fields named "Element_Data" that become the element's text. This lets TreeLine function as a crude XML editor.

XSLT

In addition to exporting data, the format for a file can be exported to an XSLT file. This can be used to display the XML data from a native TreeLine file in a compliant browser without exporting the data to HTML. Recent versions of most browsers are XSLT compliant. Note that complex field type formatting will be ignored by the XSLT.

When exporting to XSLT, a link to the XSL file is added to the TreeLine file. Note that the TreeLine file must then be saved. In general, the TreeLine file should have a .xml extension so that the TreeLine file can be opened directly in a compliant browser. After that, the XSL file does not need to be re-exported for data changes (only for formatting changes).

If HTML tags are used in data formats that will be exported to XSLT, they should use xHTML style (<br /> instead of <br>). When exporting, there is a prompt for the name of an optional style sheet (css). This name is stored in the TreeLine file as the default for future exports. Also, the reference to the XSLT file in the TreeLine file may be removed with the "Tools->Remove XSLT Reference" command.

ODF Text Document

TreeLine will export an outline to an Open Document Format (ODF) text document, compatible with OpenOffice.org and KWord. The title of each node is assigned a heading style at the appropriate level. Any other text in the output of each node becomes normal text under the heading. The export filter is intended for simple text outlines only. Any HTML formatting is stripped, and objects such as tables and pictures are not supported.


Customizations

Options

TreeLine's behavior can be modified with several settings available in "Tools->General Options". Most of these options are covered elsewhere in this document.

Fonts

Fonts used in the tree views, the output view and the editor views can be set in the "Tools->Set Fonts" menu.

Keyboard Shortcuts

Keyboard shortcuts can be customized by using the "Tools->Set Keyboard Shortcuts" command. The shortcut editor has tabs for menu and non-menu based commands. Simply type the new key sequence with the appropriate field selected.

Toolbars

An editor to customize the toolbars is available from "Tools->Customize Toolbars". The number of toolbars can be set and the buttons on each can be defined.

Colors

User interface colors can be set using the last three items in the "Tools menu. If the "Use Default System Colors" command is enabled, the user background and text color settings are overridden.

Tree Icons

There is an icons directory in the user configuration directory ("~/.treeline-1.x/icons" on Linux, "Documents and Settings\<user>\Application Data\bellz\treeline-1.x\icons" on Windows). Image files (PNG or BMP) placed into this directory are available for use as tree icons.


Plugins

Description

TreeLine has an interface to plugin extension modules. This allows extensions to be written by various coders that provide functionality needed by a few users without adding bloat to the main application. The plugins can add new menu items, access the TreeLine data and read and write TreeLine Files.

Currently available plugins are listed on the "Downloads" page of the TreeLine web site.

Installation

The plugins are installed by copying their Python file (*.py) to a plugins directory. This can be a directory in the TreeLine installation ("<prefix>/lib/treeline/plugins/" on Linux or "TreeLine\lib\plugins\" on Windows) or in the user configuration directory ("~/.treeline-1.x/plugins/" on Linux, "Documents and Settings\<user>\Application Data\bellz\treeline-1.x\plugins\" on Windows). A list of loaded plugins can be found using the "Help->About Plugins" command.

Interface

Information about writing new plugins can be found in the "plugininterface.py" file in the TreeLine source code.


Common Problems

Closed Panes

If one of the view panes is not visible when it should contain data, it has probably been collapsed to a size of zero. This can apply to the left pane and to the upper and lower right panes. To fix this, look for a thin stripe along one of the view borders that can be dragged back into its proper position.

XML Error

An error message, "Error loading XML Parser", typically means that TreeLine could not find a necessary XML library. Under Linux, Python uses external libraries for parsing. Installing either the expat library or the PyXML package should fix the problem. Under Windows, Python includes a parser, so this error should not be seen unless files are missing or corrupt.

Printing

Some printing problems, especially problems with margins and word-wrapping, can be eliminated by changing the print font to a font that is better supported by the printer.


Revision History


November 4, 2008 - Release 1.2.1 (stable release)

Bug Fixes:

  • Fix the loss of entered text when the renaming of a node is ended by a command that changes the selected node.
  • Problems with opening files with Unicode file names from the command line or from a file association have been fixed.
  • Fixed problems with JPEG and GIF image support in the Windows binary build.
  • When commands change the tree view, it no longer scrolls vertically unless the current node is not visible.
  • Fixed problems with files set to both compressed and encrypted modes. But note that compressing an encrypted file still does not significantly reduce its size.
  • Problems on the Macintosh platform with detecting the text encoding and with setting the default theme have been fixed.

June 17, 2008 - Release 1.2.0 (new stable release)

Notes:

  • This is a new stable release, ending the 1.1.x development series.
  • This release is only available in English and French. The 1.0.2 release is still available, including German, Portuguese, Russian and Spanish translations. Volunteers to update the translations are welcome.

Updates:

  • The French translations of the GUI and the ReadMe file have been updated.

Bug Fixes:

  • When restoring an auto-saved backup file, TreeLine no longer replaces a the main file with the backup if the backup is not a valid TreeLine file.
  • Fixed a minor bug in the Configure Data Types dialog caused by unselecting a field in the Output pane.

Major New Features Since 1.0.x:

  • TreeLine was extensively rewritten to port it to the Qt4 library (previous versions used Qt3.x on Linux and Qt2.3 on Windows). Benefits include updated widgets and removal of the non-commercial license exception in Windows.
  • Preformatted templates have been added for new TreeLine documents. User-created templates can also be added.
  • The content of right-hand views varies based on the selection and other options. A single selection still shows panes with the parent and its children, but a multiple selection will show all of the selected nodes in a single pane. Also, the Data Output view can optionally show an indented view of all descendants, and the Data Editor view splits the display into pages to speed up display.
  • More commands can make use of a multiple selection instead of just using the single active node. Also, an option can set the sequence of showing and exporting multiple selections to either tree order or selection order.
  • There is a tab on the left-hand view for a flat node list showing the selected nodes and all of their descendants. It is most useful for showing the results of filtering. There is a conditional filter for specific rules and a text filter that searches all fields for a string.
  • Several dialogs have been reworked for usability. The Configure Data Types and Print Options dialogs use tabs for better organization. The Configure dialog also has initially hidden advanced features and is now modeless, so it can be left open while applying configuration changes. The Sort, Export and Print Preview dialogs have also been updated.
  • Navigation through the tree is simplified by new commands that step through the selection history. Also, search strings are now highlighted in the Data Output view for text searches.
  • New dialogs have been added to customize keyboard shortcuts and tool bar buttons. There is also a directory for user-defined tree icons.
  • New file import and export options convert between an outline and an Open Document Format (ODF) text document, compatible with OpenOffice.org and KWord. Formatting is not maintained.
  • A Unique ID field type has been added that is automatically loaded with unique numbers. It is useful for link references.

January 15, 2008 - Release 1.1.10 (unstable development snapshot)

Notes:

  • This is an unstable development snapshot. It is nearly ready to become a stable release, but it could still contain bugs. Testing and bug reports are appreciated.
  • The French translation of the GUI is the only one completed so far. None of the documentation translations have been updated.
  • On Linux, running TreeLine requires Qt version 4.1 or higher and PyQt version 4.0 or higher. Binary packages may not be available yet for these libraries in some distributions.
  • If you've installed previous development releases, it is recommended that you delete the old configuration file ("~/.treeline-1.1/treelinerc" on Linux, "Documents and Settings\<login>\Application Data\bellz\treeline-1.1\treeline.ini" on Windows) before running this release.

Updates:

  • Exporting to HTML directories has been improved. The file names are generated from the reference field (were from the first field). Internal links to nodes now work properly in the exported files.
  • When saving a new file, the Save-As dialog now defaults to the top directory in the recent file list.
  • A translation of the GUI in French is now available. The i18n installation file is a separate download.
  • The ReadMe documentation file has been updated to clarify certain usage issues.

Bug Fixes:

  • The other controls in the configuration dialog are updated immediately when setting a data type to be derived from a generic.
  • A recent file list bug that affected the httpload plugin has been fixed. Also, a library need by the plugin (urllib) has been added to the Windows installation.
  • An error message about removing a status bar widget has been eliminated.
  • An error on a Mac when setting the language encoding has been fixed.
  • Various issues with file paths containing Unicode characters have been fixed.

June 13, 2007 - Release 1.1.9 (unstable development snapshot)

Notes:

  • This is an unstable development snapshot. It could contain bugs. Testing and bug reports are appreciated, but the stable release (TreeLine 1.0.x) should be used for critical work.
  • The translations of the GUI and of the documentation have not been updated.
  • On Linux, running TreeLine requires Qt version 4.1 or higher and PyQt version 4.0 or higher. Binary packages are not yet available for these libraries in some distributions.
  • If you've installed previous development releases, it is recommended that you delete the old configuration file ("~/.treeline-1.1/treelinerc" on Linux, "Documents and Settings\<login>\Application Data\bellz\treeline-1.1\treeline.ini" on Windows) before running this release.

Updates:

  • Initially select the top filtering result in the flat view to avoid issues with a blank selection.
  • Avoid entering rename mode when clicking on a multiple selection in the flat view.
  • Maintain the size of the type icon dialog during a session.
  • Remove the redundant printing units option from the general options dialog.
  • Extensively update the ReadMe documentation to match the current feature set.
  • Add a new file template for TODO lists.

Bug Fixes:

  • Fix incorrect internal references in groups of pasted nodes.
  • Abort a tree rename operation if the new name does not match the title format.
  • Correctly add a field to the generic type when numbering a derived type.
  • Properly update the pull-down choices for a choice or combination field after a configuration change.
  • Enable the conditional type button immediately after defining a type as derived.
  • Remove the page number field from the available file reference fields in the main configuration settings.
  • Properly update the Data menu after starting a filtering operation.
  • Fix an error due to a missing system language setting.
  • Properly handle a file open error due to an unknown field type.

May 22, 2007 - Release 1.1.8 (unstable development snapshot)

Notes:

  • This is an unstable development snapshot. It probably contains bugs. Testing and bug reports are appreciated, but the stable release (TreeLine 1.0.x) should be used for critical work.
  • The documentation and GUI translations have not been updated.
  • On Linux, running TreeLine requires Qt version 4.1 or higher and PyQt version 4.0 or higher. Binary packages are not yet available for these libraries in some distributions.
  • If you've installed previous development releases, it is recommended that you delete the old configuration file ("~/.treeline-1.1/treelinerc" on Linux, "Documents and Settings\<login>\Application Data\bellz\treeline-1.1\treeline.ini" on Windows) before running this release.

Updates:

  • Translation of ODF text documents has been added to the command line batch processing options.
  • The environment variable LC_MESSAGES is now checked before the LANG variable to determine the user's preferred language.

Bug Fixes:

  • Problems writing the options file when there are Unicode characters in the username have been fixed.
  • Various minor bugs in Unicode handling have been fixed.

May 3, 2007 - Release 1.1.7 (unstable development snapshot)

Notes:

  • This is an unstable development snapshot. It is not feature complete and probably contains bugs. Testing and bug reports are appreciated, but the stable release (TreeLine 1.0.x) should be used for critical work.
  • The documentation and GUI translations have not been updated.
  • On Linux, running TreeLine requires Qt version 4.1 or higher and PyQt version 4.0 or higher. Binary packages are not yet available for these libraries in some distributions.
  • If you've installed previous development releases, it is recommended that you delete the old configuration file ("~/.treeline-1.1/treelinerc" on Linux, "Documents and Settings\<login>\Application Data\bellz\treeline-1.1\treeline.ini" on Windows) before running this release.

New Features:

  • Preformatted templates have been added. The File->New command brings up a dialog with a list of available templates. The dialog is also shown at startup if the recent file list is empty. Default templates are installed into TreeLine library directories. New templates can be added to a user templates directory in the user settings location. Template file names consist of a number for sorting, a language code and the name of the template.

Updates:

  • The Save As dialog in Windows is now the native dialog.

Bug Fixes:

  • Problems exporting to an ODF text document when blank fields are encountered have been fixed.
  • Added appropriate error messages to the Linux installer if some installer files are not found.

April 17, 2007 - Release 1.1.6 (unstable development snapshot)

Notes:

  • This is an unstable development snapshot. It is not feature complete and probably contains bugs. Testing and bug reports are appreciated, but the stable release (TreeLine 1.0.x) should be used for critical work.
  • The documentation and GUI translations have not been updated.
  • On Linux, running TreeLine requires Qt version 4.1 or higher and PyQt version 4.0 or higher. Binary packages are not yet available for these libraries in some distributions.
  • If you've installed previous development releases, it is recommended that you delete the old configuration file ("~/.treeline-1.1/treelinerc" on Linux, "Documents and Settings\<login>\Application Data\bellz\treeline-1.1\treeline.ini" on Windows) before running this release.

New Features:

  • A new command (View->Show Output Descendants) toggles the Data Output child view from showing only child nodes to showing an indented view of all descendant nodes. A button was added to the default toolbar for this command. Also, a new general option can make the descendant view the default at startup.
  • A new file export option converts an outline to an Open Document Format (ODF) text document, compatible with OpenOffice.org and KWord. The title of each node is assigned a heading style at the appropriate level. Any other text in the output of each node becomes normal text under the heading. Any HTML formatting is stripped.
  • ODF text documents can be imported. The node structure is based on the heading styles assigned in the document. Any text under each heading is assigned to that heading's node. Formatting is not maintained.

Updates:

  • New commands were added to the Data Editor context menus that open the Configure Data Types dialog with the editor's type and/or field already selected.
  • Keyboard shortcuts were added for the commands that add HTML tags in the Data Editor. Icons were also added to these commands, so the toolbar editor can be used to place them on a toolbar if desired.
  • The interface for writing plugin modules was improved by adding interfaces to the keyboard shortcut editor and the toolbar editor. Also, a plugin interface to get the plugin's directory was added.
  • Any default text for new fields is added when a node's data type is changed (not just to a new node), as long as there isn't already data in a field with the same name.

Bug Fixes:

  • Fixed a problem with the automatic opening of the last file used if there are no valid recent files.
  • Fixed a crash at file open if the file's owner is not found in a Linux machine's user password database.
  • Issues with the display of text have been fixed if the Qt library being used is version 4.2.3 or greater (the Windows build now uses 4.2.3). These issues showed up when scroll bars were shown and could hide the right edge of the text or the last line.
  • Multiple issues with dragging or pasting nodes between sessions of TreeLine were fixed.
  • If the Configure Data Types dialog is open, it is properly updated after the use of the undo command.
  • The find dialog is properly focused when repeatedly shown.
  • Fixed problems occurring when attempting to print an empty branch or an empty selection.
  • Fixed problems with the export of HTML directories. It now removes illegal characters from directory names created from field contents.
  • Auto choice fields are now properly updated after configuration changes.
  • A missing help menu was added to the Unique ID field format editor.

February 22, 2007 - Release 1.1.5 (unstable development snapshot)

Notes:

  • This is an unstable development snapshot. It is not feature complete and probably contains bugs. Testing and bug reports are appreciated, but the stable release (TreeLine 1.0.0) should be used for critical work.
  • The documentation and GUI translations have not been updated.
  • On Linux, running TreeLine requires Qt version 4.1 or higher and PyQt version 4.0 or higher. Binary packages are not yet available for these libraries in some distributions.
  • If you've installed previous development releases, it is recommended that you delete the old configuration file ("~/.treeline-1.1/treelinerc" on Linux, "Documents and Settings\<login>\Application Data\bellz\treeline-1.1\treeline.ini" on Windows) before running this release.

New Features:

  • A Unique ID field type has been added. The field is automatically loaded with unique numbers. Initially, the field's format string is set to the desired first number in the series, with optional leading zeros and optional leading or trailing characters. All nodes of the data type will get an automatically assigned ID. The field format string will always show the next available number, which will be given to the next new node of that type.
  • The node sorting commands have been consolidated into a single new dialog. This provides more options for selecting what to sort (all nodes, branches, children or siblings) and how (by types and fields or by titles).
  • An option has been added to the numbering dialog to only number nodes where the number field already exists. This allows node types in the branch that do not have the number field to be skipped.

Updates:

  • The tree view no longer scrolls horizontally when the selection is changed.
  • The focus behavior of the Data Editor view has been tweaked to allow easier tabbing between widgets.
  • Clicking on a selected node to rename it is now disabled when multiple nodes are selected. This avoids initiating a rename when the intent was to modify a multiple selection.
  • The Insert Sibling Before command has been added to the node right-click context menu for consistency.
  • The Spell Check dialog is no longer hidden and re-shown between each misspelled word, resulting in smoother operation.
  • The Output tab of the Configure Data Types dialog has been adjusted to avoid changing the dialog size when toggling the advanced options.
  • The fonts in the Print Options dialog are sorted case insensitively, and the size of the dialog is fixed regardless of the selected font.

Bug Fixes:

  • Fixed a crash when opening a file with the flat view shown.
  • Fixed problems occurring when the number of toolbars was set to zero.
  • Fixed undo operations for Numbering, data Add Category Level and Arrange by Reference commands.
  • Fixed problems with undo and delete commands issued while a node is being renamed.
  • Fixed problems with renaming data types and fields in the Configure Data Types dialog.
  • Avoid adding duplicate types to Other Field References in the advanced Output tab of the Configure Data Types dialog.
  • No longer allow the Edit Cut command to operate if the root node is selected.
  • Fixed a freeze of the spell checker on some platforms.
  • An empty rectangle that was sometimes shown on the status line at the bottom of the main window has been removed.
  • An occasional problem with the import of generic XML was fixed.
  • The importing of files with bad Unicode characters has been improved.
  • The restoring of tree states when opening a file has been made more robust.
  • Fixed several other minor tracebacks that can show up in a terminal or log file.

January 18, 2007 - Release 1.1.4 (unstable development snapshot)

Notes:

  • This is an unstable development snapshot. It is not feature complete and is sure to contain bugs. Testing and bug reports are appreciated, but the stable release (TreeLine 1.0.0) should be used for critical work.
  • The documentation and GUI translations have not been updated.
  • On Linux, running TreeLine requires Qt version 4.1 or higher and PyQt version 4.0 or higher. Binary packages are not yet available for these libraries in some distributions.

New Features:

  • Previous and Next Selection commands have been added to the View menu. These commands step through a history of tree selections for quicker navigation.
  • When using the Find command with the Data Output view visible, the search string occurrences are highlighted in the output. Note: in Linux, this feature requires Qt v4.2 or greater and PyQt v4.1 or greater.
  • An icons directory has been added to the user configuration directory ("~/.treeline-1.1/icons" on Linux, "Documents and Settings\<user>\Application Data\bellz\treeline-1.1\icons" on Windows). Image files (PNG or BMP) placed into this directory are available for use as tree icons.
  • "Move First" and "Move Last" commands have been added to the Edit menu. These commands move a child node to be the first or last child of its parent.

Updates:

  • Horizontal scrolling of the tree view when the contents are wide is now supported.
  • The non-interactive command line options have been ported from the stable version. These options allow batch processing of file imports and exports.
  • Support for plugin extension modules has been ported from the stable version. The interfaces to TreeLine functions are unchanged, but existing plugins will need to be ported to the Qt4 library. An updated version of the httpLoad plugin is available.
  • A plugins directory has been added to the user configuration directory. This allows plugin installation without elevated privileges.
  • The code required to support GUI translations has been ported from the stable version, but the actual translations have not yet been updated.

Bug Fixes:

  • The problem with cut/copy/paste operations in Windows that produced an error message at application exit was fixed.
  • Fixed several problems with the undo of changes to the Data Type Configuration.
  • A bug that could sometimes add an extra node during renaming in the Tree View has been fixed.
  • Problems encountered when typing a replacement word during spell check have been fixed.
  • A spell check language setting in File Options that is not available on the system is now ignored.

December 21, 2006 - Release 1.1.3 (unstable development snapshot)

Notes:

  • This is an unstable development snapshot. It is not feature complete and is sure to contain bugs. Testing and bug reports are appreciated, but the stable release (TreeLine 1.0.0) should be used for any critical work.
  • Some features from the stable release are not yet implemented here. These include command line options, plugin support and translation support. Also, the documentation has not been updated.
  • On Linux, running TreeLine requires Qt version 4.1 or higher and PyQt version 4.0 or higher. Binary packages are not yet available for these libraries in some distributions.
  • One known bug in the Windows version produces an error message at application exit if cut/copy/paste operations were done during the session.

New Features:

  • A new built-in editor for keyboard shortcuts has been added to the Tools menu. It has two tabs: one for menu commands and one for other commands. Simply press the desired key combination to change the shortcut in the selected entry. In general, printable characters without Ctrl or Alt modifiers should not be used for shortcuts. Although the editor will accept them, they may not work properly when certain widgets are focused.
  • A dialog to customize the tool bars has been added. It is accessed from the Tools menu. This allows the user to select small or large icons, define the number of tool bars, and define the commands included in each tool bar.

Updates:

  • The saving of node open/close states for recently opened files has been ported from the stable version.
  • The restoring of splitter sizes and the active right-hand tab from the previous session has been ported from the stable version.
  • The TreeLine configuration files now include a version number (.treeline-1.1 on Linux, treeline-1.1.ini on Windows) to avoid incompatibility issues with previous versions.
  • The default non-menu keyboard shortcuts have been changed to control-key sequences that function regardless of the focused widget.
  • The incremental node title search has been ported from the stable version. The default keyboard shortcut is now Ctrl+/.
  • The option to add a node when pressing the enter key has been ported from the stable version.

Bug Fixes:

  • Searching for nodes with the flat view active now only finds nodes actually present in the flat view.
  • Problems with drag & drop of nodes with Unicode content were fixed.
  • The Icon Selection dialog under Configure Data Types now scrolls to the currently selected icon when opened.

November 22, 2006 - Release 1.1.2 (unstable development snapshot)

Notes:

  • All of the notes listed for Version 1.1.1 still apply.

Bug Fixes:

  • Fixed a serious bug that caused TreeLine to crash when using a pull-down combo box on a field in the Data Editor view.

November 21, 2006 - Release 1.1.1 (unstable development snapshot)

Notes:

  • This is an unstable development snapshot. It is not feature complete and is sure to contain bugs. Testing and bug reports are appreciated, but the stable release (TreeLine 1.0.0) should be used for any critical work.
  • Several features from the stable release are not yet implemented here. These include keyboard shortcuts for non-menu items, command line options, plugin support and translation support. Also, restoring of tree node open/close states, window split locations and active tabs are not yet available. And the documentation has not been updated.
  • On Linux, running TreeLine requires Qt version 4.1 or higher and PyQt version 4.0 or higher. Binary packages are not yet available for these libraries in some distributions.
  • One known bug in the Windows version produces an error message at application exit if cut/copy/paste operations were done during the session.

New Features:

  • Printing functionality has been added to the development series. It now includes options to print the entire tree, the selected branches, or just the selected nodes.
  • A new Print Options dialog box is tabbed to give easier access to all of the options. There are buttons that give a more logical progression from the options to the print preview and to the print dialog.

Updates:

  • The buttons at the bottom of the Configure Data Types dialog have been changed to OK/Apply/Reset/Cancel. This can reduce the number of mouse clicks.
  • The Configure Data Types dialog now defaults to the selected node's type when it is shown.
  • On Windows, the TreeLine.ini file has been moved from the installation directory to a location under the "Documents and Settings" folder. This avoids problems on multi-user systems and for users with limited access rights.

Bug Fixes:

  • The Configure Data Types dialog now updates properly after copying types from another file, adding numbering, and rearranging by category and reference.
  • Various problems with node drag & drop that could result in inadvertent drops were fixed.
  • A bug that caused the right-hand view splitter to reset to even sizes was fixed.
  • Problems with saving changes to the format of file information fields were fixed.
  • Issues with some internal links and pictures in the help viewer were fixed.

September 12, 2006 - Release 1.1.0 (unstable development snapshot)

Notes:

  • This is an unstable development snapshot. It is not feature complete and is sure to contain bugs. Testing and bug reports are appreciated, but the stable release (TreeLine 1.0.0) should be used for any critical work.
  • Several features from the stable release are not yet implemented here. These include printing, keyboard shortcuts for non-menu items, command line options, plugin support and translation support. Also, restoring of tree node open/close states, window split locations and active tabs are not yet available. And the documentation has not been updated.
  • On Linux, running TreeLine requires Qt version 4.1 or higher and PyQt version 4.0 or higher. Binary packages are not yet available for these libraries in some distributions.
  • One known bug in the Windows version produces an error message at application exit if cut/copy/paste operations were done during the session.

New Features:

  • TreeLine was ported to the Qt4 library. This involved a major rewrite of the code. The previous versions used Qt3.x on Linux and Qt2.3 on Windows. Benefits include updated widgets and removal of the non-commercial license exception in Windows.
  • The Configure Data Types dialog uses tabs for better organization. Many tabs contain advanced features that can be shown if desired. The dialog is also modeless, so it can be left open while applying configuration changes.
  • The content of the right-hand view varies based on the kinds of nodes selected. With a single parent node selected, it splits the view, showing the parent and its children (same as version 1.0.0). With a multiple selection or with a childless node selected, it shows all of the selected nodes in a single pane.
  • A general option sets the sequence for multiple selection to either tree order or selected order. When nodes are selected with control-click under the selected order option, they show in the right-hand view in the order they were picked. This sequence also applies to copy and export commands.
  • More commands make use of a multiple selection instead of just using the single active node. For example, the paste command will add duplicate children under each selected destination node.
  • The export command includes options to export the entire tree, the selected branches, or just the selected nodes.
  • In order to render the Data Editor right-hand view faster, there is a general option to set the number of "pages" initially shown. By default, only one page is shown. Buttons allow toggling to the next page or all pages.
  • There is a tab on the left-hand view to show a flat node list. It shows the initially selected nodes and all of their descendants. It is probably most useful when using filtering commands.
  • A conditional filter selects nodes based on rules for specific data types and fields, and a text filter selects based on finding the given text in any field. Both filters show their results in the tabbed "Flat View" and remain in effect until removed.
  • In the advanced mode, a child count field reference can be added to the output configuration. It shows the number of children at a specified descendant level.

July 6, 2006 - Release 1.0.0

Updates:

  • A new version numbering system is being introduced. This release is 1.0.0, to better indicate its stability. The 1.1.x series will be started soon for less stable development releases.
  • The German translation of the ReadMe file has been updated.

Bug Fixes:

  • Fixed a problem with duplicate nodes showing up when pasting multiple nodes on Windows.
  • Deriving types from other derived types is no longer allowed, since it did not function properly.
  • A problem with saving an encrypted file in the German version of TreeLine has been fixed.

February 16, 2006 - Release 0.14.1

Updates:

  • Exported XSLT files now support field prefixes and suffixes. Thanks to Roland Meister for supplying patches.
  • Added functions to the plugin interface to allow plugins to open and close nodes.

Bug Fixes:

  • Fixed a problem with displaying output from fields with non-ASCII characters in their names.
  • Auto save now works properly with encrypted files.

December 20, 2005 - Release 0.14.0

New Features:

  • Data types can be set to derive their field settings from a generic type. This allows types with different output formatting to always use the same field data. Any changes to the generic's list of fields and field types are automatically reflected in the fields of all derived types. A derived option can be selected when copying a type, or a generic type can be specified from the derived type's "Advanced Configuration" dialog box.
  • Conditional expressions can be used to automatically assign a data type based on each node's content. Conditions are assigned to a generic type and its associated derived types. This allows the automatic assignment of different output formatting or different icons depending on each node's field data. Conditions are specified from each type's "Advanced Configuration" dialog box. Conditions do not have to be set for all types in a family, since, if no conditions are true for a node, the program will select a blank condition over a false one. In addition, conditions that are always "True" or "False" are available to toggle the output format of all nodes of a certain type simultaneously by modifying the condition.
  • By default, the spell check uses dictionaries for the current operating system language. A new option under "Tools->File Options" can be used to specify an alternate two-letter language code for the current TreeLine file. This only works with aspell and with the appropriate aspell dictionaries available.
  • A new menu item, "File->Open Sample", is a shortcut to the directory containing sample template files.
  • A new menu item, "Help->Help Contents", directly opens the "Using TreeLine" section of the ReadMe file.

Updates:

  • When changing a node's type, if the result would have been a blank title, TreeLine now adjusts the new title fields to maintain the original title text.
  • Picture links with relative paths now resolve their reference based on the directory containing the current TreeLine file.
  • When applying a font tag in the editor view, the selection is maintained. This allows multiple tags to be applied.
  • HTML tags in field prefixes and suffixes are now removed in node titles.
  • Exported HTML has been made somewhat more compliant with standards.
  • A new option on the windows installer toggles the writing of installation directory and uninstall information to the registry. When this and other options are disabled, TreeLine can be installed without modifying the registry.
  • Four more sample files have been included. These files provide examples of using TreeLine's features and can be used as templates.
  • The ReadMe file has been updated with descriptions of the sample files, with more internal links, and with screenshots.

Bug Fixes:

  • A problem with saving reference field settings for unused node types was fixed.
  • Formats copied from another file are now available immediately.
  • Node titles from HTML-enabled fields that contain escaped characters (<, >, &) are now properly displayed.
  • Fixed some minor bugs concerning setting the default field value for new nodes.
  • A problem with exporting HTML directories with very recent versions of the PyQt library was fixed.
  • When displaying child data in node output, extra separators between blank entries are no longer shown.

November 1, 2005 - Release 0.13.1

New Features:

  • The number of recently used files listed in the File menu can be set using a new general option. Note that this also controls how many files have their tree states (open/closed nodes, etc.) saved.

Updates:

  • TreeLine now sets the interface language using the LANG environment variable (if set) before falling back to other locale settings. This allows the operating system's locale settings to be overridden.

Bug Fixes:

  • Problems starting TreeLine when the locale's LANG variable ends with "@euro" have been fixed.
  • Problems with the display of the rename edit box when creating new nodes in a long, scrolled tree view have been fixed.

August 29, 2005 - Release 0.13.0

New Features:

  • The TreeLine user interface and documentation have been internationalized. Currently, translations are available for French and German. Volunteers to translate into additional languages are welcome.
  • Number formats can be internationalized. Periods and commas are supported as radix characters, and commas, periods or spaces can be set as thousands separators.
  • A new general option can set printing units to either inches or centimeters.
  • An external editor can be invoked from a Data Editor text field context menu. The EDITOR environment variable can be used to specify the editor to start, or, if the variable doesn't exist, TreeLine will prompt for an executable to set as the default.

Updates:

  • The general option for a number editing format has been removed. Instead, the output format is displayed in the editor. Of course, any new entry with a reasonable format is correctly interpreted (but the correct radix character must be used).
  • Handling of spaces in filenames for the linking fields have been improved. Paths with spaces selected in the file browser are properly quoted (Windows) or escaped (Linux).
  • Page Up/Down commands in the Data Output view now leave a one-line overlap.
  • A Ctrl-C interrupt in a terminal is now ignored.

Bug Fixes:

  • A dummy field has been added to imported bookmark separator formats to avoid configuration problems.
  • Paths in links to XSLT files are now properly handled when not in the same directory as the XML file.
  • Format text is now immediately updated when renaming fields.
  • Problems with undo after complex data changes have been fixed.
  • Errors due to having ASCII control characters in TreeLine text have been fixed.
  • Problems with spell check of unicode characters have been fixed.

May 4, 2005 - Release 0.12.0

New Features:

  • A new AutoChoice field type provides pull-down selection of previously used entries. Any new entries are automatically added to the pull-down.
  • A new ExecuteLink field type runs an external program when its link is clicked. The command to run is given by the text of the field. Or the field's prefix may contain the program name, so that the field's text is used for arguments or file names. There is also a general option to disable these links when security is a concern.
  • A button that brings up a file browsing dialog has been added to the editor for Path, ExecuteLink and Picture field types.
  • Link fields can display alternate text in place of the target URL. This is done by specifying an alternate text field in the Advanced Field Format dialog.
  • Fields from child nodes can be embedded in their parent's output. Select a child reference from the Other Fields dialog. The child data is delimited with a separator string defined as a file option.
  • A new file option allows the removal of line breaks from each output line. This allows other HTML tags to be used to separate the output lines.
  • A "contains" rule to check for substrings has been added to the rules for node filtering and selective type changes.
  • The right-hand view that was previously used is now selected automatically on startup. This can be disabled using the general restore window geometry option.

Updates:

  • Toolbar and tree icons are loaded from individual PNG files instead of from an XPM file. This improves icon quality.
  • Some features from the dialogs for data types and fields have been moved to advanced dialogs for simplicity.
  • Unicode characters are accepted for first-letter tree searches.
  • All calls to the eval() function have been replaced for improved security. Thanks to Roland Meister for providing patches.
  • The HTML version of the ReadMe file is now exported from the TreeLine version.
  • Spaces are permitted in Linux command line arguments.
  • Qt command line options are supported.
  • There have been several minor improvements to the plugin module interface.

Bug Fixes:

  • A serious problem with deleting the last child under the root item has been fixed.
  • Some keyboard shortcuts for incremental searching have been fixed.
  • Open nodes are restored more consistently when opening files.
  • A font issue on early versions of Qt3 has been fixed.
  • The search for dtd files linked from XML files has been disabled to eliminate errors.
  • Visibility problems with long unbroken text lines in data editors have been fixed in Qt3.

February 16, 2005 - Release 0.11.1

Bug Fixes:

  • Fixed a compatibility issue in the toolbar code that would prevent TreeLine from starting when PyQt was built against the newest versions of the sip library (versions 4.2rc1 and 4.2rc2).
  • Problems with editing the data of combination field types have been fixed.
  • A bug in the plugin interface for setting field formats has been fixed.

February 4, 2005 - Release 0.11.0

New Features:

  • Icons have been added to the tree view. The icon assigned to each data type can be changed from the Configure Data Types dialog box. There are several generic icons available within TreeLine, and plugin modules can be written to add additional ones. A general option to disable the tree icons has also been added.
  • A command has been added to the data menu to copy type formatting from another TreeLine file. All types from the chosen file are copied. Any types in the current file with a matching name are overwritten, but types with unique names are retained.
  • Functions to import and export generic XML files have been added. These routines do not have much intelligence - each XML element becomes a node and each XML attribute becomes a field. This lets TreeLine function as a crude XML editor.
  • An editor height parameter has been added to text fields. This allows the number of lines in the data editor to be set for each field in each data type. As a result, the LongText field type becomes redundant and has been removed.
  • A field parameter has been added for fields that are required to be filled. Fields with this parameter set are marked with an asterisk in the data editor view.
  • Another field parameter has been added to allow certain fields to be hidden in the data editor view.

Updates:

  • A fair amount of TreeLine code has been rewritten to improve efficiency and to ease future changes. Users should see improved speed with large files, especially noticeable when repainting during editing.
  • TreeLine now requires Python Version 2.3 or higher on Linux systems. The previous version of TreeLine will remain available for those stuck with older versions of Python.
  • HTML tags are now stripped from node titles in the left-hand tree view if the fields are set to output HTML rich text.
  • The plugin extension module interface has been expanded. Several added functions deal with node and field formatting. There is also a new callback trigger called whenever a node's data is modified.
  • A user plugin directory can now be specified in the configuration file. This allows plugins to be installed without root/administrator access.
  • An option has been added to the Linux installer to allow a different documentation directory to be specified.

Bug Fixes:

  • Fixed a drag-and-drop bug that wouldn't allow nodes to be moved instead of copied in the Linux version.
  • Fixed the output of fields that include dashes and periods in their names.
  • A problem retaining the font setting for edit views has been fixed.
  • A rare startup failure due to problems with the encryption engine has been fixed.
  • A rare problem with foreign language encodings has been fixed.

November 8, 2004 - Release 0.10.2

Bug Fixes:

  • Fixed a major bug that could prevent new nodes that contain date or time fields from being created.

October 28, 2004 - Release 0.10.1

Bug Fixes:

  • Fixed a major bug that caused TreeLine to hang when attempting to open a recent file that no longer exists. This bug also caused startup failures if automatic opening was enabled with nonexistent files.
  • A bug in the plugin interface's getRootNode function was fixed.
  • Fixed a problem with file encryption on 64-bit systems.

October 15, 2004 - Release 0.10.0

New Features:

  • One of the fields in a data type can be tagged as a reference field in the field-type dialog box. It defaults to the first field. This field is now used as the reference for the arrange and flatten by reference commands. It is also used by the new internal link feature, described below.
  • There is a new internal link field type. It creates a clickable link in the Data Output window that selects the next node with matching text in its reference field. If link or reference fields contain multiple lines, each line is treated as a separate link or reference, respectively. If desired, the same field can be used as both the link and reference fields, so that clicking on a keyword in one node's field selects the next node that also has that keyword. If exported to HTML, the internal links function as links to page anchors, but, in cases with duplicate references, they only find the uppermost reference on the page instead of the next one.
  • File encryption has been added as an option to password protect TreeLine files. Individual files can be set to encrypted mode from either "Tools->File Options" or from the save-as dialog. There is also a general option to set the default for new files. The encryption uses the SHA hash function as a stream cipher - it should be fairly secure.
  • A default initial field value can now be specified for a field type. Any new nodes get this value for the given data field when they are created. Also, in a date or time field, an initial value of "Now" can be used to get a time-stamp of node creation.
  • An interface to plugin extension modules has been added to TreeLine. This allows extensions to be written by various coders that provide functionality needed by a few users without adding bloat to the main application. Currently available plugins are listed on the "Downloads" page of the TreeLine web site. The plugins are installed by copying their Python file (*.py) to the plugins directory ("<prefix>/lib/treeline/plugins/" on Linux or "TreeLine\lib\plugins\" on Windows). A list of loaded plugins can be found using the "Help->About Plugins" command. Information about writing plugins can be found in the "plugininterface.py" file in the TreeLine source code.
  • Options have been added under "Tools->General Options" to set the fonts used for the tree view and for the right-pane editor views.
  • When printing, TreeLine will now avoid breaking pages between a parent and its first child. This behavior can be disabled by changing the "Keep first child with parent" print option.

Updates:

  • Unicode text handling has been improved. Unicode can now be used in TreeLine file names, node data type names and field names. Also, imported and exported text files now use the proper encoding based on the system's locale settings.
  • A new sample TreeLine file with internal link fields has been added to the documentation.

Bug Fixes:

  • An occasional problem bringing up the field-type dialog for file-info fields was fixed.
  • Avoid showing an oddly-named internal file-info data type in the dialogs after the file-info formatting is changed.
  • The option to restore the view state when opening recently used files now works more consistently.

September 16, 2004 - Release 0.9.1

Updates:

  • Unicode text is now supported without requiring modifications of the Python sitecustomize file. The sitecustomize change has been eliminated from the installer.
  • The compressed ".trl.gz" extension has been added to the file open filter.
  • Information about the new TreeLine mailing list has been added to the documentation.

Bug Fixes:

  • A bug that prevented XSLT file export under Linux has been fixed.
  • Special characters in bookmark URL's are now properly escaped during export to XBEL format.

September 9, 2004 - New Mailing List

List Information

A mailing list has been created for users to discuss anything and everything about TreeLine. This is the place for development discussions (from roadmaps to feature suggestions to beta testing), release announcements, bug reports, and general user discussions (from new uses to tips & tricks to configuration samples).

To subscribe, go to <http://bellz.org/mailman/listinfo/treeline>. I expect this to be a low-volume mailing list.


September 1, 2004 - Release 0.9.0

New Features:

  • Import and export of bookmarks in both the Mozilla HTML format (Mozilla, Firefox and Netscape browsers) and the XBEL format (Konqueror, Galeon and Elinks browsers) have been added.
  • An new option exports a portion of a tree to another TreeLine file.
  • Command line options have been added to allow non-interactive file importing and exporting. This allows automated runs to be scheduled. For more details, run "treeline -h" from the command line. If using a windows binary, output is supressed, so it must be directed to a log file ("treeline -h > log.txt").
  • Options have been added to work with compressed TreeLine files. Individual files can be set to compressed mode from either "Tools->File Options" or from the save-as dialog. There is also a general option to set the default for new files. Thanks to Mathieu Girard for contributing code.
  • A field reference to show data from any ancestor node has been added. The closest one with a matching field is used.
  • Fields containing file meta-data have been added. These include file name, path, size, and modified time.
  • Headers and footers for printing have been added. They can contain the file meta-data mentioned above. The headers and footers can also be shown in exported HTML files.
  • HTML character formatting tags can be automatically added to text using a new data editor context menu. Available tags include bold, italics, underline, size and color. Note that the fields must be set to display HTML content for this to be effective.
  • A new general option makes new fields default to HTML content. This allows for easier display of HTML formatting. This option is not enabled by default, since it does not preserve carriage returns and does not show non-escaped "<", ">" and "&" symbols.
  • When opening a recently used file, TreeLine will now restore the states of open and selected nodes. If desired, this feature can be disabled with a new general option. Thanks to Jan Hustak for contributing this code.
  • The toolbar has been split into two separate bars (general commands and node commands) that can be shown and moved independently. Again, thanks to Jan Hustak for contributing this code.
  • A new auto-save feature stores unsaved files with a "~" appended to the name. The backup files are automatically removed when the file is saved or TreeLine exits cleanly. The auto-save time interval is set in the general options.
  • New key bindings, set to Shift+Page-Up and Shift+Page-Down by default, scroll the current right-hand child view.
  • The XSL export command now prompts for the name of an optional style sheet (css). This name is stored in the TreeLine file as the default for future exports.

Updates:

  • There have been some general improvements to the handling of imported and exported files.
  • File option settings can now be restored with undo/redo commands.
  • The README documentation files have been revised to be more organized and readable.
  • More sample files are provided. See the "sample_*.trl" files in the "doc" directory of the installation.
  • The Linux install script now includes an option for a temporary build root directory.

Bug Fixes:

  • The up-arrow key binding did not work as expected in a deeply nested tree.
  • Some problems with auto-completion on data editor combo boxes have been fixed.
  • Problems in windows with some option spin boxes accepting new values have been fixed.
  • Fixed a compatibility issue with older versions of Python.

June 23, 2004 - Release 0.8.1

Bug Fixes:

  • Fixed crashes that sometimes occurred when switching focus or views after renaming a new or existing node.
  • Fixed a compatibility issue with older versions of Qt (3.0.x).

June 3, 2004 - Release 0.8.0

New Features:

  • Added undo and redo commands and an option for the number of undo levels that are stored.
  • Added the ability to show parent and grandparent data within a node's formatted output.

Updates:

  • When changing node types with the menu, check marks now show the current type(s).

Bug Fixes:

  • Fixed crashes caused by right-clicking in the edit area or using the Alt-Tab key combination when renaming a node title.
  • Fixed problems occurring when several similar data type names were defined.
  • A rare problem with the installation script choking on image thumbnail directories was fixed.

May 18, 2004 - Release 0.7.3

New Features:

  • Spell checking of the tree data has been implemented. This feature requires an external program, either aspell or ispell (see the System Requirements section).

Updates:

  • The size and position of the print preview window are now saved.
  • Added an option for including only open descendants when exporting tabbed title text.

April 1, 2004 - Release 0.7.2

Updates:

  • For faster keyboard navigation, the left arrow key now closes the selected node's parent if the selected node has no children or is already closed.

Bug Fixes:

  • Some tree item drag-and-drop bugs have been fixed.
  • Problems when some dialogs were closed using the escape key have been fixed.
  • Fixed some rare Linux install script problems with some systems.

March 9, 2004 - Release 0.7.1

Updates:

  • The open file dialog now uses the directory of the most recently opened file as its initial directory.
  • To improve performance, some unnecessary refreshes of the right-hand view were eliminated.

Bug Fixes:

  • Fixed problems with repeated uses of the search dialog command and the command to set the types of descendants.
  • Fixed problems with the data editor view in the mode that does not show children.

March 2, 2004 - Release 0.7.0

New Features:

  • Added prefix and suffix tag formatting for groups of siblings. These tags allow output to be formatted in tables or with bullets. See the "sample_table.trl" file for an example of table formatting.
  • The size and position of the window and its splitters are now saved at exit. A new option will disable this feature if desired.
  • An import filter has been added to open Treepad files (text nodes only).
  • An install program has been added for windows.

Bug Fixes:

  • Fixed Linux install script problems with certain versions of Python.
  • Fixed some text exports where improper end-of-line characters were used on windows.

November 19, 2003 - Release 0.6.2

Updates:

  • Cursor changes were added to indicate time-consuming operations.

Bug Fixes:

  • Eliminated inadvertent scrolling of the tree view when editing in the right-hand view.
  • Fixed problems encountered when the Linux install script attempted to delete old TreeLine directories under certain versions of Python.

November 7, 2003 - Release 0.6.1

New Features:

  • Incremental searching has been improved by adding keyboard commands to repeat the search forward (F3 by default) and backward (Shift-F3 by default).
  • The sorting commands now contain options for reverse sorting.
  • The importing of text files has been improved. Imports of plain text were added, with items for each line or each paragraph. A prompt for the type of text file was also added.
  • A new option setting avoids going into title renaming mode when adding a new node. This also keeps the selection unchanged as nodes are added.
  • Dragging files to the TreeLine window in order to open them is now supported.

Updates:

  • The rename command was added to the tree context menu.
  • The right view now scrolls to the top when the item selected in the tree view changes.
  • When opening the configure types dialog, the current tree item's type is initially selected.
  • A TreeLine formatted version of the ReadMe file has been added.
  • An install script was added for Linux and Unix systems.
  • The windows build now uses Python version 2.3 and PyQt version 3.8.

Bug Fixes:

  • Keyboard commands are disabled during tree rename operations to avoid unpredictable results.
  • The right views now update properly when the parent of the selected tree item is closed.
  • Problems involving copying with multiple nodes selected were fixed.
  • Problems with drag-and-drop on some Linux systems were fixed.

September 16, 2003 - Release 0.6.0

New Features:

  • The three right views are now divided into upper sections for the selection's data and lower sections for the data from the selection's children. View commands can be used to hide the display of children if desired.
  • Keyboard shortcuts can be customized by editing the TreeLine configuration file ("~/.treeline" on Linux, "treeline.ini" on windows). Any configuration files from previous versions should be deleted when installing TreeLine 0.6.0.
  • A new command will quickly set a node's data type.
  • Parent nodes will automatically open and close when found with the two search methods, by typing the first letter and with the "next sibling" keyboard command. This behavior can be disabled with a new general option.
  • Typing a lowercase letter will move forward through the visible tree items that start with that letter. An uppercase letter will move backward.
  • Tree items (including those not visible) can be incrementally searched by typing "/" followed by the search string.
  • The Find dialog box is now modeless (the program may be operated while the dialog is open).
  • A "Choice" field type has been added that allows selection from a user-defined list of strings.
  • A "Combination" field type has been added that allows selection of several items from a user-defined list of strings.
  • Several linking field types have been added, including "URL", "Path", "Email", and "Picture". Clicking on a "URL" or "Path" in the output window will open the link in an external browser. The "Picture" fields are shown on in the output window for certain image formats.
  • Pull-down editors have been added for the "Choice", "Combination", "Date", "Time", and "Boolean" field types.
  • A font selection for the data output view has been added to the general options.
  • New printing options include setting the print font and setting a default page size.

Updates:

  • Configuration information is properly saved for unused node data types.
  • TreeLine is now more keyboard-friendly in many ways.
  • Window captions now put the file name first.

Bug Fixes:

  • Fixed problems with data edit view resizing (on Qt3 only).
  • Fixed file corruption problems caused by the use of HTML characters in the field format's prefix and suffix areas.

March 14, 2003 - Release 0.5.0

New Features:

  • When configuring node data types, a default type for that type's new children can be set.
  • An added form of HTML export creates a directory structure with a separate page for each parent node.

Updates:

  • A shortcut (Ctrl-B) has been added to the command to insert a sibling node.
  • Icon files have been added to the distribution files.

August 26, 2002 - Release 0.4.2

Bug Fixes:

  • Fixed another (oops) incompatibility problem with Python 2.1.x. This change is also not needed when using Python 2.2 or higher.

August 23, 2002 - Release 0.4.1

Bug Fixes:

  • Fixed an incompatibility problem with Python versions 2.1.x. This change is not needed when using Python 2.2 or higher.

August 22, 2002 - Release 0.4.0

New Features:

  • Data fields can be formatted as specific types, including short and long text, numbers, dates, times, and boolean values.
  • Individual fields can be specified as plain text or HTML. Line breaks are preserved in plain text mode.
  • Text prefixes and suffixes can be assigned to fields. The extra text does not display for blank fields.
  • Options for spaces between nodes and allowing HTML in formats are saved with the file instead of being global options.
  • Node titles are truncated after the first line of text data.
  • Node types can be set conditionally.
  • A new option allows the number of lines in a long text edit field to be set.
  • Missing fields can be updated from a separate file by matching unique values of the first data field.

Bug Fixes:

  • Clicking on an unselected current item no longer initiates title renaming.
  • Rare problems with opening or pasting content with complex text strings were fixed.

May 28, 2002 - Release 0.3.4a

Bug Fixes:

  • A fix of the Windows binary only. Fixes major problems by upgrading the library version to PyQt 3.2.4.

May 15, 2002 - Release 0.3.4

Updates:

  • TreeLine has been ported to Qt 3.x. It now works with both Qt 2.x and 3.x using the same source code.
  • The binaries for windows have been updated to Python 2.2 and PyQt 3.2 (but are still using Qt 2.3 Non-commercial).

Bug Fixes:

  • A selection bug that caused problems with the up/down and indent/unindent commands has been fixed.
  • Errors in the initial user preference file were fixed.

March 6, 2002 - Release 0.3.3

New Features:

  • Multiple nodes in the tree can now be selected using the shift and control keys - most commands will operate on multiple nodes.
  • A new command will copy node titles as text, not just as XML.
  • Options have been added to print and export only nodes which are open in the tree.
  • A new option allows the numbering command to start with a number greater than one.
  • A tool to remove the XSLT reference from a file has been added.

Updates:

  • The command to arrange a tree by reference has been made more robust.
  • Errors when opening files are now handled better.

Bug Fixes:

  • The export of Unicode characters to HTML has been fixed.
  • A problem with the set data types dialog under Python 2.2 has been fixed.

January 7, 2002 - Release 0.3.2

New Features:

  • Unicode is now supported in both data and format strings, allowing the entry of foreign text and symbols (note that there is an extra step in the Linux installation to enable this feature).
  • A new sort command allows all nodes of a given type to be sorted.
  • A preference setting now controls the initial state of the right-hand view.

Bug Fixes:

  • Fixed crashes caused by tool-bar use while renaming a node.
  • Occasional problems with deleting or renaming fields have been fixed.
  • Fixed crashes resulting from very large data edit views.

December 12, 2001 - Release 0.3.1

New Features:

  • Parent/child lines can now be added to printouts for better tree visualization.
  • An option was added to compress the format into a single line of output.

Bug Fixes:

  • Problems with sorting full branches were fixed.
  • Fixed improper indentation on an HTML export file.

November 27, 2001 - Release 0.3.0

New Features:

  • Added filtering of descendant nodes.
  • Added a data node numbering feature with both outline and section styles.
  • Added a feature to export the format to an XSLT file.
  • Added table of contents links to the help file.

Updates:

  • Improved the handling and editing of long data strings.
  • Improved the handling of HTML tags in data formats.
  • Improved XML parser error handling.

October 23, 2001 - Release 0.2.1

Bug Fixes:

  • Fixed a major bug that caused errors when new node types were created.

October 17, 2001 - Release 0.2.0

New Features:

  • TreeLine has been extensively rewritten to include database field information in each node.
  • The file format is now XML.
  • Added additional views in the right-hand pane.
  • Added options for data formatting and manipulation.
  • Added more file import and export options, including HTML export.

Questions, Comments, Criticisms?

There is a mailing list for users to discuss anything and everything about TreeLine. This is the place for development discussions (from roadmaps to feature suggestions to beta testing), release announcements, bug reports, and general user discussions (from new uses to tips & tricks to configuration samples).

To subscribe, go to
lists.berlios.de/mailman/listinfo/treeline-users. I expect this to be a low-volume mailing list.

If you do not wish to subscribe to the mailing list, I can be contacted by email at: doug101 AT bellz DOT org

I welcome any feedback, including reports of any bugs you find. Also, you can periodically check back to treeline.bellz.org for any updates.