TreeLine ReadMeReadMe File for TreeLinean information storage programby Doug BellVersion 1.0.2June 1, 2007ContentsBackground
background
Features
features
Legal Issues
legal
System Requirements
sysreq
Linux
linux-sys
Windows
win-sys
Installation
install
Linux
linux-inst
Windows
win-inst
Using TreeLine
using
Revision History
revs
Questions, Comments, Criticisms?
contact
BackgroundbackgroundIntroductionDo 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.OverviewSome 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.It's freeSince 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 <a href="#contact">Questions, Comments, Criticisms?</a> section for contact information.FeaturesfeaturesStore informationStores almost any type of information, including plain text, HTML, numbers, dates, times, booleans, URLs, etc.Tree structureThe tree structure helps keep things organized.FieldsEach node can have several fields that form a mini-database.Node typesSeveral node types, with different sets of fields, can be included in one file.Output formatThe node format, including fields, output lines and tree-view icon, can be defined for each node type.Right-hand viewThe right-hand view can show one of three views - for showing output, editing node data and editing node titles.URL linksClicking on URL fields in the output view opens the link in an external web browser.Internal linksThere are internal link fields that select another node based on a reference or a keyword.Executable linksAn executable link can run an external program or open a file when clicked.Format copiesFormatting information can be copied from another TreeLine file.Search commandsThere are two search commands available.Undo/redoUndo and redo commands are available for all modifying operations.PrintingThe formatted output can be printed with parent/child lines and headers and footers.File formatsTreeLine files are XML by default, but there are options for automatically compressing or encrypting the files.HTML exportThe data can be exported to HTML.XSLT exportAn XSLT file can be exported to work with the XML TreeLine files.Text import and exportTab-delimited tables and tab-indented text files can be imported and exported. Plain text files and Treepad files can be imported.Bookmark import/exportMozilla and XBEL format bookmark files can be imported and exported.Generic XML import/exportGeneric XML files can be imported and exported, allowing TreeLine to function as a crude XML editor.Batch conversionBatch file conversions can be done from a command line interface.SortingThere are several sorting options.FilteringThe nodes can be filtered.Conditional typesA node's icon and output format can be changed conditionally based on its data.Spell checkText data can be spell checked (requires an external program - see the <a href="#sysreq">System Requirements</a> section).Arranging dataData can be automatically arranged using either parent references or categories from data fields.NumberingThere is an outline numbering feature.CustomizationThere are many other options for customization, including user-defined keyboard shortcuts.InternationalizationThe user interface and documentation are available in English, French and German.Legal IssueslegalFree softwareTreeLine 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.No warrantyThis 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.ExceptionAs a special exception, the author gives permission to link and distribute this program with the Qt Non-Commercial Edition without including the source code for Qt.System RequirementssysreqLinuxlinux-sysLibrariesTreeLine requires the following libraries and programs:QtQt (Version 2.3 or Version 3.x)PythonPython (Version 2.3 or higher - but an earlier version of TreeLine is still available for those stuck with older Python versions)PyQtPyQt (Version 2.4 or higher - see <a href="http://www.riverbankcomputing.co.uk"> www.riverbankcomputing.co.uk</a> for more information)XML parserAn XML parser is required, such as the expat library or the PyXML packageSpell checkIf spell checking capability is desired, either the aspell (preferred) or ispell programs are required (these are packaged with most distributions)Windowswin-sysBinaryUsing the files provided in the installer, TreeLine should run on any computer running Win 95, 98, NT, 2000, or XP.Spell checkIf spell checking capability is desired, an external program is required. Either aspell (preferred) or ispell must be installed. See <a href="http://aspell.net/win32/"> aspell.net/win32/</a> or <a href="http://www.luziusschneider.com/Speller/English/"> www.luziusschneider.com/Speller/English/</a> to download one of the programs and its dictionaries for any desired languages.InstallationinstallLinuxlinux-instBasic installExtract 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"Install optionsTo see all install options, use: "python install.py -h"<br /><br />
To install TreeLine with a different prefix (the default is /usr/local), use: "python install.py -p /prefix/path"Config filesAny old ~/.treeline configuration files should be deleted or renamed if this is a major TreeLine upgrade (such as 0.8.x to 0.9.x) or if editing of new keyboard shortcuts is planned.InternationalizationTo 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.Windowswin-instBasic installSimply 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.UpgradeIf you already have a working installation of TreeLine version 0.7.0 or higher, you can use a smaller download. Simply install and execute
treeline-x.x.x-upgrade.exe to upgrade the files from your previous installation.Spell checkerTo use TreeLine's spell checker, an external program (aspell or ispell) must be installed (see the <a href="#sysreq">System Requirements</a> section).Config FilesAny old treeline.ini configuration files should be deleted or renamed if this is a major TreeLine upgrade (such as 0.8.x to 0.9.x) or if editing of new keyboard shortcuts is planned.InternationalizationTo 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.Modify source codeIf 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 <a href="http://www.python.org"> www.python.org</a>), Qt (see <a href="http://www.trolltech.com"> www.trolltech.com</a>), and PyQt (see <a href="http://www.riverbankcomputing.co.uk"> www.riverbankcomputing.co.uk</a>). 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 TreeLineusingContentsGetting Started
start
Introduction
start-intro
Example Files
start-example
Basics
basics
Views
basics-views
Commands
basics-cmds
Tree Navigation
nav
Keyboard Shortcuts
nav-keys
Searching
nav-search
Tree Editing
edit
Edit Menu
edit-menu
Shortcuts
edit-shortcuts
Right-hand Views
edit-view
Spell Check
edit-spell
Formatting and Node Types
format
Setting Nodes to a Type
format-set
Configure Types Dialog
format-dialog
Other Field References
format-refs
Title Formatting
format-title
Skipped Lines
format-skip
HTML Tags
format-html
Formatting Examples
format-example
Tree Icons
format-icon
Child Types
format-child-type
Advanced Settings
format-advanced
Generic and Derived Types
format-derived
Conditional Types
format-condition
Copying Formats
format-copy
Field Types
fields
Field Options
field-options
Text Type
field-text
Choice, Combination and Boolean Types
field-choice
Number Type
field-number
Date and Time Types
field-date
Linking Types
field-link
Advanced Options
field-advanced
Tree Data Manipulation
data
Category-based Commands
data-category
Reference-based Commands
data-ref
Sorting
data-sort
Filtering
data-filter
Numbering
data-number
Change Selections
data-change
Printing
print
Print Options
print-options
Header and Footer
print-header
Print Preview
print-preview
Printing Problems
print-problems
File Handling
file
File Compression
file-comp
File Encryption
file-enc
Auto Save
file-auto-save
Saved Tree States
file-states
Command Line
file-cmdline
File Import
import
Delimited Text
import-delim
Plain Text
import-plain
Treepad Files
import-treepad
Bookmark Files
import-bookmarks
Generic XML
import-xml
File Export
export
HTML
export-html
Delimited Text
export-delim
Bookmark Files
export-bookmarks
Generic XML
export-xml
XSLT
export-xslt
Plugins
plugins
Description
plugins-intro
Installation
plugins-install
Interface
plugins-intrf
Common Problems
errors
XML Error
errors-xml
Unicode Issues
errors-char
Printing
errors-print
Getting StartedstartIntroductionTreeLine 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.<br /><br />
The <a href="#basics">Basics</a> section describes views and selections. To learn how to move around and change the tree, refer to the <a href="#nav">Tree Navigation</a> and <a href="#edit">Tree Editing</a> sections. Next, its time to go beyond using TreeLine with only a single line of text for each node. To learn about setting up custom data for each node, refer to the <a href="#format">Formatting and Node Types</a> and the <a href="#fields">Field Types</a> sections.start-introExample FilesVarious TreeLine sample files can be opened by using the "File->Open Sample" command. They include (roughly in order of increasing complexity):start-examplesample_basic_contactsThe "sample_basic_contacts" file is a format for storing contact information. Several fields are used for various pieces of information.sample_basic_booklistThe "sample_basic_booklist" file is a list of books, providing an example of configuring nodes to contain data. Several different field types are used to create author and book data types.sample_basic_longtextThe "sample_basic_longtext" file contains a long text field under each node, similar to the Treepad program. It also shows the difference between plain text and HTML text fields.sample_color_itemsThe "sample_color_items" file uses HTML tags in data type formats to provide color output. See also the <a href="#format-html">HTML Tags</a> section.sample_char_formatThe "sample_char_format" file is an example of using HTML tags in the data to control font formatting. See also the <a href="#field-options">Field Options</a> section.sample_bookmarksThe "sample_bookmarks" file is an example of using external HTML links. This is the file setup that is used when importing or exporting bookmark files.sample_intern_linksThe "sample_intern_links" file shows how to do links that lead to elsewhere in the TreeLine file. See also the <a href="#field-link">Linking Types</a> section.sample_table_booklistThe "sample_table_booklist" file shows how to use HTML tags and sibling prefixes and suffixes to create tables in the output. See also the <a href="#format-advanced">Advanced Settings</a> section.sample_other_fieldsThe "sample_other_fields" file is an example of alternate field references, including references to ancestor nodes, child nodes and file information. See also the <a href="#format-refs">Other Field References</a> section.sample_conditional_todoThe "sample_conditional_todo" shows how to use conditional types to change node output based on node content. See also the <a href="#format-derived">Derived and Conditional Types</a> section.readmeThe "readme" file itself shows many types of formatting, including headings, bullets, internal links and pictures.BasicsbasicsViewsTreeLine's window is divided into two panes. The view on the left shows the entire tree structure, while the view on the right shows various information about the tree node that is selected in the left pane.<br /><br />
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. The "Data Editor" view shows a text edit box for each data field within a node. The "Title List" view shows a list of node titles that can be modified using typical text editor methods.<br /><br />
By default, the right view will show information about the selected node in an upper pane and information about the selected node's children in the lower pane. Selecting "View->Show Selected Node" will show a single pane with information about the selected node only. When there are many children, the combined view may slow down, especially in the "Data Editor" view. In this case, it is quicker to view just the selected node. The initial state of the view can be controlled in "Tools->General Options".basics-viewsCommandsMost 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. But some commands, such as "File->Export" and "File->Print", use data from only the current node, which is shown with a surrounding rectangle. The right hand view also references only the current node.<br /><br />
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.basics-cmdsTree NavigationnavKeyboard ShortcutsThere 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 key and the up and down arrows 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. Holding the SHIFT key with the "Page Up" and "Page Down" keys will scroll the right-hand child view.<br /><br />
All of these keys and the keyboard shortcuts for pull-down menu commands can be customized by editing the TreeLine configuration file ("~/.treeline" on Linux, "treeline.ini" on windows).<br /><br />
Another way to move through the tree is to type the first letter of a visible node title. A lowercase letter moves downward, an uppercase letter moves upward. Hitting the letter again moves to the next possibility.nav-keysSearchingThere are two ways to search for nodes. These methods can find nodes that are deeply 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 next method is an incremental search. Type a "/" followed by a search string. 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".<br /><br />
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".nav-searchTree EditingeditEdit MenuThe 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 also 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.<br /><br />
Paste will add a copied node as the last child of the current node. Alternatively, the "Edit->Paste Node Text" command actually renames the selection based on the top node in the clipboard.edit-menuShortcutsThere 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".edit-shortcutsRight-hand ViewsIn 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.<br /><br />
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 <a href="#fields">Field Types</a> section) for this to be effective.<br /><br />
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.<br /><br />
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.edit-viewSpell CheckThere 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 <a href="#sysreq">System Requirements</a> 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.<br /><br />
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.edit-spellFormatting and Node TypesformatSetting Nodes to a TypeBy 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.format-setConfigure Types DialogThe data types are configured with the "Data->Configure Data Types" dialog (see <a href="#fig-1">Figure 1</a>). The type is selected at the top of the dialog box, and the "Modify List" button is used to add, delete and rename the available types. The left half of the configure dialog shows the fields. These are the data fields that will be in each node of this data type. There are buttons to add, delete and reorder the fields. A button to change the field type is covered later.<br /><br />
The right half of the Configure Data Types dialog box 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*}". They can be added or removed with the ">>" and "<<" keys.format-dialogDialog picture
Figure 1: Configure Types Dialog
config_dlg.pngfig-1Other Field ReferencesReferences 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.<br /><br />
These references can be added with the "Other Fields" button in the field portion of the dialog. This will prompt for the parent level (any ancestor, parent, grandfather, etc.) and the ancestor's data type. Then, the ">>" keys will add the selected fields to the formatting.<br /><br />
References to child nodes can also be added from the "Other Fields" dialog. 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.<br /><br />
The "Other Fields" dialog also contains file info references. These fields contain file meta-data, including the file name, path, size, and modified time. These are shown as "{*!field_name*}" in the title and output format editors.<br /><br />
For examples of these fields, see the "sample_other_fields" file (by using the "File->Open Sample" command).format-refsTitle FormattingWhen 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 your intent. Things like adjacent fields with no characters separating them should be avoided unless you do not wish to rename nodes from the tree.<br /><br />
If the text data used for a tree view title has multiple lines, only the first line will be used as the title.format-titleSkipped LinesIf 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.format-skipHTML TagsSimple 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).<br /><br />
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.format-htmlFormatting ExamplesHere is an example of output formatting for a book list:<br /><br />
<hr/>"{*Title*}"<br />
(c) {*Copyright*}, Rating: {*Rating*}<br />
{*PlotDescription*}<br /><br />
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 <a href="#start-example">Example Files</a> section.format-exampleTree IconsThe icons shown for each node in the tree view can be assigned based on data type. The "Change Icon" button in the "Configure Data Types" dialog brings up the set icon dialog. If the selection in the dialog is cleared, no icon will be shown for that type. To avoid showing any tree icons, the "Show icons in the tree view" general option can be unset.format-iconChild TypesThe "Configure Data Types" dialog also contains a setting for the default child type. If set, this is the initial data type that is used for new children of this type parent. If it is not set, the type of the parent or of siblings is used.format-child-typeAdvanced SettingsThe "Advanced" button in the "Configure Data Types" dialog brings up additional settings. The first allows one of the fields to be set as the reference field, used for the arrange and flatten by reference commands and for internal link references. The reference field is the first field by default.<br /><br />
The advanced dialog also has 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:<br /><br />
<tr><td>"{*Title*}"</td><td>(c) {*Copyright*}</td></tr><br /><br />
Also see the "sample_table_booklist" example file (by using the "File->Open Sample" command).<br /><br />
Siblings should generally be of the same type, or at least have the same prefix and suffix tags.format-advancedGeneric and Derived TypesData 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. This does not apply to a field's output formatting, which can still be set independently.<br /><br />
There are two methods for creating derived types. First, a derived option can be selected when copying a type from the "Add/Remove Data Types" dialog (accessed from the "Modify List" button on the "Configure Data Types" dialog). Alternately, a generic type can be specified from the derived type's "Advanced Configuration" dialog box.format-derivedConditional TypesConditional 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.<br /><br />
The conditional dialog box is accessed from a button on a type's "Advanced Configuration" dialog box. Each line of the condition includes a field, an operator and a comparison value (see <a href="#fig-2">Figure 2</a>). 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.<br /><br />
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.<br /><br />
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.<br /><br />
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.<br /><br />
For an example, see the "sample_conditional_todo" file (by using the "File->Open Sample" command).format-conditionConditional dialog picture
Figure 2: Conditional Dialog
condition_dlg.pngfig-2Copying FormatsAnother 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.format-copyField TypesfieldsField OptionsIn the "Configure Data Types" dialog, the "Field Type" button brings up a dialog for formatting the selected field (see <a href="#fig-3">Figure 3</a>). The field type may be set to text, number, choice, combination, auto choice, date, time, boolean, URL, path, internal link, executable link, email, or picture. Prefix and suffix text can be entered and will show up whenever the data is not blank.<br /><br />
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).<br /><br />
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 "#####".field-optionsDialog picture
Figure 3: Field Format Dialog
field_dlg.pngfig-3Text TypeThe 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 format dialog box.field-textChoice, Combination and Boolean TypesThe 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.<br /><br />
The boolean field type is similar to choice, but defaults to options such as "True/False", "yes/no" and "1/0".<br /><br />
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.field-choiceNumber TypeIn 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.<br /><br />
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. <br /><br />
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).field-numberDate and Time TypesIn 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. <br /><br />
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.<br /><br />
A default initial field value of "Now" can be used to get a time-stamp of node creation.field-dateLinking TypesThe 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.<br /><br />
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).<br /><br />
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.<br /><br />
The picture field type will show a referenced picture in the output. Enter the path to a local image file in the data editor. For Qt2 (used on windows builds) the output window only supports GIF and PNG image formats. For Qt3, JPEG and other image types are supported. Of course, when exporting HTML, the picture will show as long as the browser supports the format.field-linkAdvanced OptionsThe "Advanced" button in the "Field Format" dialog brings up additional settings. A default initial field value can be specified for a field type. Any new nodes get this value for the given data field when they are created.<br /><br />
Link fields can display alternate text in place of the target URL. This is done by specifying an alternate text field.<br /><br />
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.<br /><br />
Fields can also be set as hidden, to prevent them from showing in the data edit view.field-advancedTree Data ManipulationdataCategory-based CommandsThe "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.<br /><br />
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.<br /><br />
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.data-categoryReference-based CommandsThe "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.<br /><br />
The "Update by Reference" command uses a separate file to update the values of missing fields. Unique values are matched in the reference data field. Any fields in the other file's node but not in the original node are added. Fields may be deleted in the original file to force the update, since the field must be missing (not just blank).data-refSortingThe "Data" menu also contains the "Sort Node Children", "Sort Type in Branch" and "Sort Branch by Title" commands. The first two allow the selection of several fields to be used as the first key, second key, etc. The keys are selected in order with the left mouse button and the direction is changed with the center mouse button. The "Sort Node Children" command sorts the children of the selection only, while the "Sort Type in Branch" command sorts all descendants of a given type. The "Sort Branch by Title" command will sort all descendants, but sorts only by the node title text, not by particular keys.data-sortFilteringThe "Filter Data" command allows the removal of nodes based on user-defined rules. If there is more than one data type in the selection's descendants, the type to be filtered is selected. Next, logical rules may be entered based on any of the type's fields. Multiple rules can be linked by the "and" and "or" operators (press the "Add Rule" button). Any descendant nodes of the given type that don't match the rules will be deleted (including their children). The current filename will have "_filter" added to avoid overwriting the full document. If the document was already modified, there will be a prompt allowing the unfiltered file to be saved. Once done, there is no way to undo the filtering.data-filterNumberingThe "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.data-numberChange SelectionsFinally, 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.data-changePrintingprintPrint OptionsThe "Data Output" right hand view shows the formatted output text for the current node and its children. The formatted output can be printed. For printing, starting from the current node, the node's descendants are shown with the children indented. The root node can be included or excluded, and items with closed parents in the tree can be skipped.<br /><br />
There are additional options in the "Print Options" dialog box for setting printer fonts, margin sizes, the number of columns, and for adding tree structure lines. 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.<br /><br />
By default, TreeLine will 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.print-optionsHeader and FooterAlso on the print options dialog is a button to set the print header and footer. This brings up a dialog with 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 "Data->Configure Data Types" dialog. The header and footer settings are saved with the TreeLine file.print-headerPrint PreviewA preview will be shown before printing (but after hitting 'OK' on the normal print dialog box) by default. The print preview will show more detail if its window is made larger.print-previewPrinting ProblemsSome 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.print-problemsFile HandlingfileFile CompressionA 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-compFile EncryptionThere 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.file-encAuto-SaveAn 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.file-auto-saveSaved Tree StatesWhen 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.file-statesCommand LineCommand 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. If using a windows binary, output is suppressed, so it must be directed to a log file ("treeline -h > log.txt").file-cmdlineFile ImportimportDelimited TextA 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.<br /><br />
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. This method is used to open files from old versions of TreeLine.<br /><br />
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 row thereafter becomes a node.import-delimPlain TextThere 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.import-plainTreepad FilesThere is also a filter to import files from the Treepad shareware program. Only Treepad text nodes are supported.import-treepadBookmark FilesTreeLine 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).import-bookmarksGeneric XMLTreeLine 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.import-xmlFile ExportexportHTMLFiles are exported using the "File->Export" command. This will show a dialog box of available export types and options.<br /><br />
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.<br /><br />
There is also a multiple-file HTML export that creates a directory structure. Directories are named for the content of the first 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.export-htmlDelimited TextData can be exported to tabbed title text (the old TreeLine text format) 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.export-delimBookmark FilesTreeLine will export bookmark files in both the Mozilla HTML format (Mozilla, Firefox and Netscape browsers) and the XBEL format (Konqueror, Galeon and Elinks browsers).export-bookmarksGeneric XMLTreeLine 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.export-xmlXSLTIn 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.<br /><br />
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).<br /><br />
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.export-xsltPluginspluginsDescriptionTreeLine 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.<br /><br />
Currently available plugins are listed on the "Downloads" page of the TreeLine web site.plugins-introInstallationThe 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.<br /><br />
There is also a configuration file setting, "UserPluginDir", that can specify an alternate plugin directory. This allows plugins to be installed without root/administrator access. This setting can only be changed by editing the configuration file (~/.treeline on Linux, treeline.ini on Windows).plugins-installInterfaceInformation about writing new plugins can be found in the "plugininterface.py" file in the TreeLine source code.plugins-intrfCommon ProblemserrorsXML ErrorAn 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.errors-xmlUnicode IssuesThere is a problem in which the tree and output text appears with squares between each character and truncated before the end. This is generally due to a unicode problem with a certain PyQt RPMs on Red Hat systems. The solution is to upgrade to an RPM for PyQt 3.7 or higher. A sip RPM of the same version must also be installed.errors-charPrintingSome 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.errors-printRevision HistoryrevsJune 1, 2007 - Release 1.0.2Updates:Use LC_MESSAGES for languageThe environment variable LC_MESSAGES is now checked before the LANG variable to determine the user's preferred language.Bug Fixes:Add field to derived typeProblems with automatically adding a new field to derived data types when using the Data->Numbering and the Data->Flatten... commands have been fixed.Crash if user ID not foundFixed a crash at file open if the file's owner is not found in a Linux machine's user password database.March 8, 2007 - Release 1.0.1Updates:Russian translationA Russian translation of the GUI and ReadMe file has been added. As a result, there are now six supported languages (English, French, German, Portuguese, Russian and Spanish).Bug Fixes:Dragging a conditional type nodeFixed a problem using drag & drop on a node with a conditional type.Cutting the root nodeAvoid problems caused by using the Edit->Cut command with the root node included in the selection.Importing UnicodeThe importing of files with bad Unicode characters has been improved.July 6, 2006 - Release 1.0.0Updates:Version numberingA 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.German ReadMeThe German translation of the ReadMe file has been updated.Bug Fixes:Multiple selection dragFixed a problem with duplicate nodes showing up when pasting multiple nodes on Windows.Improper generic typesDeriving types from other derived types is no longer allowed, since it did not function properly.Encryption fixA problem with saving an encrypted file in the German version of TreeLine has been fixed.February 16, 2006 - Release 0.14.1Updates:Improved XSLT exportExported XSLT files now support field prefixes and suffixes. Thanks to Roland Meister for supplying patches.Added plugin functionsAdded functions to the plugin interface to allow plugins to open and close nodes.Bug Fixes:Unicode in field namesFixed a problem with displaying output from fields with non-ASCII characters in their names.Encrypted auto-saveAuto save now works properly with encrypted files.December 20, 2005 - Release 0.14.0New Features:Type inheritanceData 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 typesConditional 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.Spell check languageBy 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.Open sample menuA new menu item, "File->Open Sample", is a shortcut to the directory containing sample template files.Help menuA new menu item, "Help->Help Contents", directly opens the "Using TreeLine" section of the ReadMe file.Updates:Type change titleWhen 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 pathsPicture links with relative paths now resolve their reference based on the directory containing the current TreeLine file.Font tag selectionWhen applying a font tag in the editor view, the selection is maintained. This allows multiple tags to be applied.Prefix/suffix tags in titlesHTML tags in field prefixes and suffixes are now removed in node titles.HTML outputExported HTML has been made somewhat more compliant with standards.Windows installer optionA 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.New sample filesFour more sample files have been included. These files provide examples of using TreeLine's features and can be used as templates.ReadMe changesThe ReadMe file has been updated with descriptions of the sample files, with more internal links, and with screenshots.Bug Fixes:Reference field saveA problem with saving reference field settings for unused node types was fixed.Copied formatsFormats copied from another file are now available immediately.Escaped characters in titlesNode titles from HTML-enabled fields that contain escaped characters (<, >, &) are now properly displayed.Default new node valuesFixed some minor bugs concerning setting the default field value for new nodes.HTML directories outputA problem with exporting HTML directories with very recent versions of the PyQt library was fixed.Child separatorsWhen displaying child data in node output, extra separators between blank entries are no longer shown.November 1, 2005 - Release 0.13.1New Features:Recent file optionThe 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:Language settingTreeLine 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:Locale errorProblems starting TreeLine when the locale's LANG variable ends with "@euro" have been fixed.Rename new nodesProblems 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.0New Features:Translation setupThe TreeLine user interface and documentation have been internationalized. Currently, translations are available for French and German. Volunteers to translate into additional languages are welcome.Internationalize number formatsNumber formats can be internationalized. Periods and commas are supported as radix characters, and commas, periods or spaces can be set as thousands separators.Print unit optionA new general option can set printing units to either inches or centimeters.External editorAn 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:Number editingThe 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).Spaces in link namesHandling 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).Output view scrollingPage Up/Down commands in the Data Output view now leave a one-line overlap.Interrupt ignoreA Ctrl-C interrupt in a terminal is now ignored.Bug Fixes:Bookmark separatorsA dummy field has been added to imported bookmark separator formats to avoid configuration problems.XSLT pathsPaths in links to XSLT files are now properly handled when not in the same directory as the XML file.Renamed fieldsFormat text is now immediately updated when renaming fields.UndoProblems with undo after complex data changes have been fixed.Control charactersErrors due to having ASCII control characters in TreeLine text have been fixed.Spell checkProblems with spell check of unicode characters have been fixed.May 4, 2005 - Release 0.12.0New Features:AutoChoice field typeA new AutoChoice field type provides pull-down selection of previously used entries. Any new entries are automatically added to the pull-down.Executable field typeA 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.Path browsingA button that brings up a file browsing dialog has been added to the editor for Path, ExecuteLink and Picture field types.Alternate text for link fieldsLink 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.Embedded child fields in outputFields 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.No line break file optionA 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.New contains filter ruleA "contains" rule to check for substrings has been added to the rules for node filtering and selective type changes.Open last-used right viewThe 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:PNG iconsToolbar and tree icons are loaded from individual PNG files instead of from an XPM file. This improves icon quality.Advanced dialogsSome features from the dialogs for data types and fields have been moved to advanced dialogs for simplicity.Non-ascii letter searchUnicode characters are accepted for first-letter tree searches.Removed eval() callsAll calls to the eval() function have been replaced for improved security. Thanks to Roland Meister for providing patches.Export HTML ReadMe fileThe HTML version of the ReadMe file is now exported from the TreeLine version.Allow spaces in command lineSpaces are permitted in Linux command line arguments.Allow Qt command line optionsQt command line options are supported.Plugin improvementsThere have been several minor improvements to the plugin module interface.Bug Fixes:Delete last childA serious problem with deleting the last child under the root item has been fixed.Incremental searchSome keyboard shortcuts for incremental searching have been fixed.Saved tree stateOpen nodes are restored more consistently when opening files.Font issueA font issue on early versions of Qt3 has been fixed.No dtd file searchThe search for dtd files linked from XML files has been disabled to eliminate errors.Long line editor visibilityVisibility problems with long unbroken text lines in data editors have been fixed in Qt3.February 16, 2005 - Release 0.11.1Bug Fixes:Sip compatibilityFixed 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).Combination field typesProblems with editing the data of combination field types have been fixed.Plugin interfaceA bug in the plugin interface for setting field formats has been fixed.February 4, 2005 - Release 0.11.0New Features:Tree view iconsIcons 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.Copy formatsA 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.XML import and exportFunctions 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.Data editor heightAn 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.Required field parameterA 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.Hidden field parameterAnother field parameter has been added to allow certain fields to be hidden in the data editor view.Updates:Code clean-upA 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.Python versionTreeLine 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.Hide HTML tags in titlesHTML tags are now stripped from node titles in the left-hand tree view if the fields are set to output HTML rich text.Plugin Extension InterfaceThe 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.User plugin directoryA user plugin directory can now be specified in the configuration file. This allows plugins to be installed without root/administrator access.Linux installerAn option has been added to the Linux installer to allow a different documentation directory to be specified.Bug Fixes:Drag-and-dropFixed a drag-and-drop bug that wouldn't allow nodes to be moved instead of copied in the Linux version.Special field name charactersFixed the output of fields that include dashes and periods in their names.Edit view font settingA problem retaining the font setting for edit views has been fixed.Startup failureA rare startup failure due to problems with the encryption engine has been fixed.EncodingsA rare problem with foreign language encodings has been fixed.November 8, 2004 - Release 0.10.2Bug Fixes:Node creationFixed a major bug that could prevent new nodes that contain date or time fields from being created.October 28, 2004 - Release 0.10.1Bug Fixes:Recent filesFixed 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.Plugin interface functionA bug in the plugin interface's getRootNode function was fixed.File encryptionFixed a problem with file encryption on 64-bit systems.October 15, 2004 - Release 0.10.0New Features:Reference fieldsOne 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.Internal link fieldsThere 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 encryptionFile 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.Initial field valuesA 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.PluginsAn 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.Tree and editor fontsOptions have been added under "Tools->General Options" to set the fonts used for the tree view and for the right-pane editor views.Page breaksWhen 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:UnicodeUnicode 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.Internal link sampleA new sample TreeLine file with internal link fields has been added to the documentation.Bug Fixes:File-info field dialogAn occasional problem bringing up the field-type dialog for file-info fields was fixed.File-info data typeAvoid showing an oddly-named internal file-info data type in the dialogs after the file-info formatting is changed.View statesThe option to restore the view state when opening recently used files now works more consistently.September 16, 2004 - Release 0.9.1Updates:Unicode updateUnicode text is now supported without requiring modifications of the Python sitecustomize file. The sitecustomize change has been eliminated from the installer.Open file filterThe compressed ".trl.gz" extension has been added to the file open filter.Mailing listInformation about the new TreeLine mailing list has been added to the documentation.Bug Fixes:XSLT exportA bug that prevented XSLT file export under Linux has been fixed.XBEL exportSpecial characters in bookmark URL's are now properly escaped during export to XBEL format.September 9, 2004 - New Mailing ListList InformationA 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).<br /><br />
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.0New Features:Bookmark import/exportImport 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.Sub-tree exportAn new option exports a portion of a tree to another TreeLine file.Command line import/exportCommand 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").File compressionOptions 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.Ancestor field referencesA field reference to show data from any ancestor node has been added. The closest one with a matching field is used.File info fieldsFields containing file meta-data have been added. These include file name, path, size, and modified time.Headers and footersHeaders 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.Character formattingHTML 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.HTML content optionA 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.Saving tree statesWhen 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.Toolbar splitThe 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.Auto-saveA 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.Scroll key bindingsNew key bindings, set to Shift+Page-Up and Shift+Page-Down by default, scroll the current right-hand child view.XSL style sheetThe 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:Import/export improvementsThere have been some general improvements to the handling of imported and exported files.Undo/redoFile option settings can now be restored with undo/redo commands.DocumentationThe README documentation files have been revised to be more organized and readable.Sample filesMore sample files are provided. See the "sample_*.trl" files in the "doc" directory of the installation.Linux installer optionThe Linux install script now includes an option for a temporary build root directory.Bug Fixes:Up key bindingThe up-arrow key binding did not work as expected in a deeply nested tree.Combo boxesSome problems with auto-completion on data editor combo boxes have been fixed.Spin boxesProblems in windows with some option spin boxes accepting new values have been fixed.Python compatibilityFixed a compatibility issue with older versions of Python.June 23, 2004 - Release 0.8.1Bug Fixes:Node renaming crashFixed crashes that sometimes occurred when switching focus or views after renaming a new or existing node.Compatibility with older versions of QtFixed a compatibility issue with older versions of Qt (3.0.x).June 3, 2004 - Release 0.8.0New Features:Undo/redoAdded undo and redo commands and an option for the number of undo levels that are stored.Parent field displayAdded the ability to show parent and grandparent data within a node's formatted output.Updates:Node type menuWhen changing node types with the menu, check marks now show the current type(s).Bug Fixes:Node renamingFixed crashes caused by right-clicking in the edit area or using the Alt-Tab key combination when renaming a node title.Data type namesFixed problems occurring when several similar data type names were defined.Installation scriptA rare problem with the installation script choking on image thumbnail directories was fixed.May 18, 2004 - Release 0.7.3New Features:Spell checkSpell checking of the tree data has been implemented. This feature requires an external program, either aspell or ispell (see the System Requirements section).Updates:Print preview sizeThe size and position of the print preview window are now
saved.Export open textAdded an option for including only open descendants when exporting tabbed title text.April 1, 2004 - Release 0.7.2Updates:Keyboard navigationFor 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:Drag-and-dropSome tree item drag-and-drop bugs have been fixed.Dialog closingProblems when some dialogs were closed using the escape key have been fixed.Install scriptFixed some rare Linux install script problems with some systems.March 9, 2004 - Release 0.7.1Updates:File open defaultThe open file dialog now uses the directory of the most recently opened file as its initial directory.Right-hand viewTo improve performance, some unnecessary refreshes of the right-hand view were eliminated.Bug Fixes:Search and change type commandsFixed problems with repeated uses of the search dialog command and the command to set the types of descendants.Data editor viewFixed problems with the data editor view in the mode that does not show children.March 2, 2004 - Release 0.7.0New Features:Prefix and suffix tagsAdded 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.Save window geometryThe size and position of the window and its splitters are now saved at exit. A new option will disable this feature if desired.Treepad import filterAn import filter has been added to open Treepad files (text nodes only).Windows installerAn install program has been added for windows.Bug Fixes:Linux install scriptFixed Linux install script problems with certain versions of Python.Export end-of lineFixed some text exports where improper end-of-line characters were used on windows.November 19, 2003 - Release 0.6.2Updates:Wait cursorCursor changes were added to indicate time-consuming operations.Bug Fixes:Tree scrollingEliminated inadvertent scrolling of the tree view when editing in the right-hand view.Install scriptFixed problems encountered when the Linux install script attempted to delete old TreeLine directories under certain versions of Python.November 7, 2003 - Release 0.6.1New Features:Incremental searchIncremental searching has been improved by adding keyboard commands to repeat the search forward (F3 by default) and backward (Shift-F3 by default).SortingThe sorting commands now contain options for reverse sorting.Text importsThe 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.Title rename optionA new option setting avoids going into title renaming mode when adding a new node. This also keeps the selection unchanged as nodes are added.Drag filesDragging files to the TreeLine window in order to open them is now supported.Updates:Context menu renameThe rename command was added to the tree context menu.Right view scrollingThe right view now scrolls to the top when the item selected in the tree view changes.Initial configure typeWhen opening the configure types dialog, the current tree item's type is initially selected.ReadMe fileA TreeLine formatted version of the ReadMe file has been added.Linux installAn install script was added for Linux and Unix systems.Windows buildThe windows build now uses Python version 2.3 and PyQt version 3.8.Bug Fixes:Rename issuesKeyboard commands are disabled during tree rename operations to avoid unpredictable results.View updatesThe right views now update properly when the parent of the selected tree item is closed.Multiple copiesProblems involving copying with multiple nodes selected were fixed.Drag-and-dropProblems with drag-and-drop on some Linux systems were fixed.September 16, 2003 - Release 0.6.0New Features:Split viewsThe 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.Customized shortcut keysKeyboard 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.Easily set typeA new command will quickly set a node's data type.Automatic open on searchParent 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.First letter navigationTyping a lowercase letter will move forward through the visible tree items that start with that letter. An uppercase letter will move backward.Incremental searchTree items (including those not visible) can be incrementally searched by typing "/" followed by the search string.Modeless find dialogThe Find dialog box is now modeless (the program may be operated while the dialog is open).New choice typeA "Choice" field type has been added that allows selection from a user-defined list of strings.New combination typeA "Combination" field type has been added that allows selection of several items from a user-defined list of strings.Linking typesSeveral 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 editorsPull-down editors have been added for the "Choice", "Combination", "Date", "Time", and "Boolean" field types.Output font selectionA font selection for the data output view has been added to the general options.New printing optionsNew printing options include setting the print font and setting a default page size.Updates:Save unused configurationsConfiguration information is properly saved for unused node data types.More keyboard friendlyTreeLine is now more keyboard-friendly in many ways.Arrange window captionsWindow captions now put the file name first.Bug Fixes:Data edit resizingFixed problems with data edit view resizing (on Qt3 only).HTML in prefix/suffixFixed 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.0New Features:Default child typesWhen configuring node data types, a default type for that type's new children can be set.Multiple page HTML exportAn added form of HTML export creates a directory structure with a separate page for each parent node.Updates:New sibling shortcutA shortcut (Ctrl-B) has been added to the command to insert a sibling node.New icon filesIcon files have been added to the distribution files.August 26, 2002 - Release 0.4.2Bug Fixes:Fixed Python 2.1 issueFixed 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.1Bug Fixes:Fixed Python 2.1 issueFixed 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.0New Features:Field typesData fields can be formatted as specific types, including short and long text, numbers, dates, times, and boolean values.HTML or plain text fieldsIndividual fields can be specified as plain text or HTML. Line breaks are preserved in plain text mode.Field prefixes & suffixesText prefixes and suffixes can be assigned to fields. The extra text does not display for blank fields.Spaces between nodesOptions for spaces between nodes and allowing HTML in formats are saved with the file instead of being global options.Truncated node titlesNode titles are truncated after the first line of text data.Conditional type settingNode types can be set conditionally.Variable text lengthA new option allows the number of lines in a long text edit field to be set.Update missing fieldsMissing fields can be updated from a separate file by matching unique values of the first data field.Bug Fixes:Title renameClicking on an unselected current item no longer initiates title renaming.Paste fixRare problems with opening or pasting content with complex text strings were fixed.May 28, 2002 - Release 0.3.4aBug Fixes:Windows library issueA 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.4Updates:Ported to Qt 3TreeLine has been ported to Qt 3.x. It now works with both Qt 2.x and 3.x using the same source code.Binaries updatedThe 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:Selection bugA selection bug that caused problems with the up/down and indent/unindent commands has been fixed.Preference fixErrors in the initial user preference file were fixed.March 6, 2002 - Release 0.3.3New Features:Multiple selectionMultiple nodes in the tree can now be selected using the shift and control keys - most commands will operate on multiple nodes.Copy node textA new command will copy node titles as text, not just as XML.Print and export openOptions have been added to print and export only nodes which are open in the tree.Numbering startA new option allows the numbering command to start with a number greater than one.XSLT reference toolA tool to remove the XSLT reference from a file has been added.Updates:Arrange by referenceThe command to arrange a tree by reference has been made more robust.Opening error handlingErrors when opening files are now handled better.Bug Fixes:Export of unicodeThe export of Unicode characters to HTML has been fixed.Set types dialogA problem with the set data types dialog under Python 2.2 has been fixed.January 7, 2002 - Release 0.3.2New Features:Unicode supportUnicode 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).Sort all nodesA new sort command allows all nodes of a given type to be sorted.Right view preferenceA preference setting now controls the initial state of the right-hand view.Bug Fixes:Tool-bar during renameFixed crashes caused by tool-bar use while renaming a node.Deleting & renaming nodesOccasional problems with deleting or renaming fields have been fixed.Large edit viewsFixed crashes resulting from very large data edit views.December 12, 2001 - Release 0.3.1New Features:Print linesParent/child lines can now be added to printouts for better tree visualization.Compress formatAn option was added to compress the format into a single line of output.Bug Fixes:Sort full branchesProblems with sorting full branches were fixed.HTML indentingFixed improper indentation on an HTML export file.November 27, 2001 - Release 0.3.0New Features:FilteringAdded filtering of descendant nodes.NumberingAdded a data node numbering feature with both outline and section styles.Export XSLTAdded a feature to export the format to an XSLT file.Help linksAdded table of contents links to the help file.Updates:Long stringsImproved the handling and editing of long data strings.HTML tagsImproved the handling of HTML tags in data formats.XML parserImproved XML parser error handling.October 23, 2001 - Release 0.2.1Bug Fixes:New node typesFixed a major bug that caused errors when new node types were created.October 17, 2001 - Release 0.2.0New Features:RewriteTreeLine has been extensively rewritten to include database field information in each node.XML formatThe file format is now XML.Right-hand viewsAdded additional views in the right-hand pane.FormattingAdded options for data formatting and manipulation.Import & export optionsAdded more file import and export options, including HTML export.Questions, Comments, Criticisms?contactMailing listThere 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).<br /><br />
To subscribe, go to <a href="http://www.bellz.org/mailman/listinfo/treeline"> www.bellz.org/mailman/listinfo/treeline</a>. I expect this to be a low-volume mailing list.EmailIf you do not wish to subscribe to the mailing list, I can be contacted by email at: doug101 AT bellz DOT orgUpdatesI welcome any feedback, including reports of any bugs you find. Also, you can periodically check back to <a href="http://www.bellz.org">www.bellz.org</a> for any updates.