# 6.3.0

HIGHLIGHTS

Treemaps

Treemaps are a new major view that reveal the structure of large and complex documents. Treemaps show the entire document, or any section of your document, as a set of nested boxes. The area of each box is typically proportional to the number of that note’s descendants, but may be proportional to any numerical attribute or expression. The color of each note may also reflect any attribute or expression.

Actions and Dashboards: A Walkthrough

An extensive new walkthrough, available on the Help menu, explore Tinderbox Actions and Dashboards.

Lookup tables

We sometimes need to some discrete values onto other values. For example, suppose we have some notes that record the state in which each customer resides. We want to know the sales region for the customer; each state is assigned to a region. One approach would be a set of if statements:

if($State==“AL”) { $Region = “South”;}

This can be tedious. Instead, we create a Set, List, or String of keyword/value pairs, separated by colons:

$RegionList=“AL:South;AK:NorthWest;…”

We can now write

$Region=$RegionList.at($State) .

If the set does not contain the key value, .at() looks for the special key default and returns its value; if there is no default value, .at() returns the empty string.

Lookup tables might be inherited from prototypes or kept in confederation notes:

> $Region=$RegionList(/config/geography).at($State)

Lookup tables can specify several keywords that share a common value by separating the keyword with the pipe character |. For example, “Oliver|Micawber|Pip:Dickens;Palliser|Finn:Trollope”. Lookup tables have been added to Help.

Actions

When expressions are coerced to numbers, the logical value true is now coerced to 1, and false is coerced to zero.

The currency format converters .format(“$”) and .format(“$0”) now use locales set by the locale() operator if it has been called; otherwise, they use the system's default locale.

Explode

The explode action is now applied after the text of the newly-created note is set, allowing the action to modify or depend on the exploded text. (1422)

Explode now remembers the most recently-used delimiter, which can be convenient when using complicated regular expression delimiters. (1423)

Export

Print has been added to the contextual menu for the HTML Preview pane. (1418)

Maps

Responsiveness of large and complex maps has been greatly improved. When dragging notes, Tinderbox is more aggressive in reducing detail in order stay responsive. In particular, links may be suppressed during the drag if link drawing is impairing responsiveness. (1128)

Progress Bars now accept an optional fourth argument, a target value.

> bar(value,min,max,target)

The target represents a nominal or desired result. For example, we might write from 0 to 4000 words on any given day, but during NaNoWriMo we want to set the target at 1500 words/day.

The target is drawn in a dashed link alternating $PlotColor and either $Color or $Color2. (1468)

Fixed a crash when displaying a summary table if $Name contained an encoding error. (1478)

Outlines

Outlines update elements more smoothly while dragging the pane splitter; element resizing was being animated, which is unhelpful. (1451)

Right-clicking the background of an outline view (e.g. below the final item or in the left margin) now allows you to Create Separator in place of the disabled option to Create Adornment. (1385)

Tab bar

The tab bar may now be hidden (View ▸ Tabs ▸ Show Tabs). The hidden tab bar is “spring loaded”: when the mouse moves near the top of the window the tab bar will be revealed and remain until the mouse moves away. (345)

The selected tab of most view types now has a small “info” button that permits you to set options for the tab; this replaces a variety of buttons and contextual menus formerly used to set background colors and other options.

Text

Format ▸ Style ▸ Reset Margins resets paragraphs in the selected range to use the standard margins and line spacing. (1419)

Editing a note with text links could previously have led the text links to shift position in the text. (1415)

When the key focus is on the text pane, the menu titles for Show Key Attributes/Hide Key Attributes/No Key Attributes are updated appropriated. (1425)

We now have a disclosure button for the key attributes table, as well as the show/hide menu command.

Text no longer scrolls to the top after paste. (1424)

In the text pane, Magnify and Shrink now change the size of the selected text, rather than scaling the view pane.

Automatic detection of URLs in note text is now enabled by default. It can be disabled using Edit ▸ Substitutions ▸ Smart Links. (1436) The status of automatic URL detection is now saved with the document and will be restored when the document is reopened.

Text: after pasting more than a few thousand words into a note, Tinderbox might fail to save the revised text unless it was subsequently edited because a formatting operation timed out. The formatting operation is faster now and the timeout more forgiving. (1438)

$SmartQuotes now controls both automatic quote substitution and automatic dash substitution. Double-hyphens in templates will no longer be converted to m-dashes, a convenience that plagued HTML comments. (1462)

To edit the anchor of a text link, option click in the link to set the insertion point without activating the link. Made a note of this in the Help file. (1396)

Miscellaneous

Using the search field’s autocomplete menu in the Attributes pane of the Get Info popover incorrectly dismissed the popover, because the popover was transient and ought to be semi-transient. (1426)

If the parent node of a hoisted outline was selected and the user pressed return, the newly-created note was outside the scope of the view and therefore invisible. Instead, we now create a child of the hoisted parent, rather than a sibling. (1398,1413)

Map View: changes in 6.2 for more efficient map views rendered the map commands to Move Up/Down and Move To Front/Send to Back erratic. (1434)

Windows refused to close if a user badge was installed with a name that conflicts with a built-in badge. Tinderbox had code to resolve the conflict, but that code was faulty. (1435)

In the key attribute picker, slightly expanded the token field typing area to reduce the need to scroll. (1444)

The circular Timeline Info button has been replaced by an info widget in view tab. (1443)

The text label width of zero-duration events has been increased 60% to reduce unwanted wrapping of titles.

Select All is available in timeline (1441), chart view (1440), and treemap (1439).

When opening multiple windows, we did not always instantiate the windowController’s window for secondary windows when reopening the file. Subsequent saving would eliminate the window. (1463)

Newly-created adornments were drawn with the wrong z-axis ordering, so they appeared beneath adornments that Tinderbox believed them to be in front of. (1458)

Adapted version and build strings to conform better to conventional usage.

Added documentation for local variables and the var statement. (1461)

The Create Link button was positioned incorrectly in its popover. (1466)

OutboundWebLinks export markup again works correctly. (1465)

Resizing notes and adornments sometimes failed to update the position of their text fields and shadows. (1464)

Cleaned up some obsolete constructors and factories in Node and NodeMaker.

Making a numerical attribute sequential now properly initializes the values of existing notes.  (1363)

Edit ▸ Select All (and a number of other useful commands) were unavailable in treemap view because the treemap mouseDown handler didn’t set the responder correctly. (1477)

View ▸ Treemap was disabled in Attribute Browser. (1476)

Tinderbox should remember scroll positions in maps and outlines more accurately.

Corrected a console warning arising when errors are discovered during a periodic scan from a background thread, causing Tinderbox to try to update a the layout of the error table in the wrong thread.