Product
Support
Everything Else
Helix 7.0 Release Notes Companion TLW
Introduction

These release notes describe the new features and bug fixes since Helix 6.2.4. Please read them carefully, as there are many changes you should be aware of before deploying Helix 7.0 in your work environment.

Each of the major new and improved features has its own technote, which explains that feature in detail. Links are provided in the list below. An ‘(R#)’ in an entry refers to the techdb report number in which this item was discussed.

This page is divided into three sections: New and Improved Features, Additional Changes, and Bug Fixes. Click each section titles on the left to show or hide each section.

Helix 7.0 requires macOS 10.6 or later.
New and Improved Features

All Products:

Data Input Features

Unicode Support (R7134)
Helix 7.0 adds Unicode support throughought. See this technote for important information about this change.
Built-In Spelling Checker (R1252)
Helix 7.0 supports the macOS spelling API via contextual menu. See this technote for details.
Contextual Menu Support (R1252, R7488)
Helix now has basic contextual menu support in fields. Cut, Copy, and Paste are supported along with the macOS-supplied spelling items for suggested spellings, option to disable spell check, etc. Spell check is also supported when editing label rectangles in Design Mode.
Expanded Quick Query Operators (R8861)
Quick Query now support an expanded set of operators. See this technote for details.
Return Key Function Change (R6144)
Helix 7.0 considers the Return and Enter keys as functionally identical. See this technote for important information about this change.
Switch from Carriage Return (CR) to Linefeed (LF) in text (R9154)

Helix 7.0 uses the modern linefeed (LF or ASCII 10) character as the return character in text, replacing the outdated carriage return (CR or ASCII 13) character. Typing or pasting a return character now stores the linefeed character. Additional notes:

  • Existing data is not automatically converted; it is converted on an as-needed basis.
  • The ‘Strip Return Characters’ option when exporting/copying records strips both carriage return and linefeed characters. (The character is replaced with a single space, as has always been the specification.)
  • The output of the New Line tile is also updated from a carriage return to a linefeed character.
Picture Display Updated (R8389)
The PDF image format replaces the obsolete PICT format as Helix’s standard for pictures in fields and abaci, resulting in sharper images and more flexibility. See this technote for details.
Delete Dialog Feedback Improved (R8787)
Helix 7.0’s ‘delete’ dialog provides more details as to what will happen when the dialog is confirmed. See this technote for details.
Dock Icon Bounces When Attention is Needed (R8957)
Helix applications now bounce their Dock icon when they are in the background and need attention.
Collection Information Updated (R9010)
The “Collection Info” window can now report collection sizes in gigabytes. Also, sizes are reported using the new standard of 1000 bytes per kilobyte, abandoning the more accurate 1024 bytes.
Sequence: Show Dialogs Property Honored by Document Management (R9010)

When used in a sequence, the “Delete Original”, “Delete All Originals”, “Find and Update All”, and “Update All” commands no longer ignore the “Show Dialogs” property.

This has two effects on sequences set to Optionally or Never show dialogs: the ‘Are you sure…?’ dialog is not presented prior to document deletion, and the ‘… records were skipped’ dialog is not presented after deletion, should an error occur.

Tooltip Improvement

The tooltip for the “Sort Order” menu in the toolbar is now actually useful.

Drag and Drop Text Handling (R8983)
Helix 7.0 fully supports dragging data into a field. (In prior versions the user was also required to edit the field or the dragged text was ignored.)
Return Key Filtering
Typing a Return character in a non-text field is now prohibited. Helix returns an ‘Entry incompatible with field type’ error and ignores the input.
Picture Scrolling
A picture in a rectangle with the ‘Scale picture’ property turned off can now be scrolled with a mouse wheel, regardless of the presence of scroll bars in the rectangle.
Deleting Records is Faster
Deleting records on a hot list (the ‘Cold form’ property is off) is significantly faster.
Registration Dialog Improvements (R9087)
Key field of the Registration dialog is now case-insensitive and rejects non-alphanumeric character input. Lower case input is automatically converted to upper case, and non-alphanumeric characters are rejected.

Design Enhancements

Rotated Text (R8845)
Data and label rectangles containing text can now be rotated to any angle. See this technote for details.
Fit to Page Printing (R8894)
Helix 7.0 adds a new “Fit to Page” property to the view, allowing the collection designer to control scaling on a view by view basis. See this technote for important information about this change.
Terminal Sequences (R8984)
The “Close Collection” and “Quit” commands are now eligible to be included in sequences. These are referred to as ‘terminal sequences’ since they result in the closing of the collection. See this technote for details.
“Word” Tiles Support Non-Keyword Fields (R7623)
Helix 7.0 allows any field or abacus of text type in the left socket of the ◊ Word Starts With ◊ and ◊ Word Equals ◊ tiles, regardless of the state of the ‘Keyword’ property. A word search is not optimized unless the ‘Keyword’ property is on.
Sequence Error Handling Options (R1232)
Helix now offers three ways to handle errors when they occur in a sequence: keep going, continue to the next sequence, or stop altogether. See this technote for details.
New Icon Property: User Mode Name (R7545)
A new “User Mode Name” property has been added for all icons. This column combines the “Icon Name” and “Custom Name’ columns to show exactly what is displayed in User Mode, to assist collection designers in visualizing Design Mode widows in List Mode.
“Delete host record” property use expanded

Helix 7.0 extends the ‘Delete host record’ property to work with views that do not contain subforms, making it possible to prohibit deleting an entry or list view by turning this property off.

  • In Helix 6.2 and earlier, this property only had meaning when a subform was present. Hence the term ‘host’ record.
  • Turning this property off for a view with no subforms is effectively the same as turning off every user’s “Delete records” permission, with the additional effect of applying even in Design Mode.
Extended Fkey Support (R9079)
Helix 7.0 supports the assignment and use of function keys F1–F19. (Prior version support stopped at F12.)
Button Styles (R2618)

Button colors assigned in Classic Helix (6.1 or earlier) are once again shown on screen and in print. Additional notes:

  • Buttons containing pictures always show as light grey, as per macOS.
  • Template Preview Mode now displays the color of the button, as well as the Classic-assigned font and size, even though macOS does not support those at this point.
  • The font property has been removed from the ‘Command Rectangle Properties’ section of the Inspector to avoid giving the impression that fonts can be assigned to buttons.
  • If the return of color is not desired, this script sets all buttons in a collection to the macOS default.
Rectangle Color & Frame Attributes (R1209)

Rectangle background color, frame color (and frame width, where supported) from the Classic era are mostly restored, except for places where macOS does not support them. Helix 7.0 supports these options:

  • On screen:
    • Data rectangles: background color, plus frame color in lists
    • Label rectangles: background color, frame color, and frame width
    • Command rectangles: background color
    • Group rectangles: controlled by macOS
    • Repeat rectangles: controlled by macOS
  • On print and template Preview mode:
    • Data rectangles: background color, frame color
    • Label rectangles: background color, frame color, and frame width
    • Command rectangles: background color, frame color
    • Group rectangles: frame color and frame width
    • Repeat rectangles: frame color and frame width

Options that are not listed — such as setting the frame width of a data rectangle — have never been supported in Helix.

Miscellanea

Automatic Collection Updating (R8588)
Collection updating is now a part of RADE, Server and Engine, with an option to automatically create a zip archive backup. See this technote for details.
Improved Structure Check Reporting (R8762)
When a structure check occurs, the SC Log now notes how the check was invoked, whether maintenance was done, and which Helix application and version was in use.
Access Log Stores More Path Information (R8809)

The useraccess.log now writes the complete path to the collection when it is opened. This will help troubleshoot situations where a user accidentally open a backup copy of the collection and then ‘loses’ data when the correct one is opened later on.

User Access logging is turned off by default; use the Helix Preference Editor to turn it on.

License Check Enhanced (R7777)
Helix 7.0 updates the license check with a new dialog that provides more information and better options when the licensed number of seats is exceeded. See this technote for details.
wxWidgets Updated (R8973)
Helix 7.0 is built using the latest wxWidgets stable release (wxWidgets 3.0.2) available. This brings many improvements areas such as Unicode text handling, full keyboard access, and more.
Better Error Reporting (R9036)
When a collection is unable to be opened because of a low level error, the error number is now displayed in the dialog, to assist in troubleshooting the issue.
Retina Display Support
High resolution icons are now supplied for all Helix applications.

Clean Up

Obsolete Menu Items Removed, Menus Cleaned Up (R6125, R8620)

When a collection is updated to Helix 7.0, the following obsolete menu items are removed from all user menus: 9 Point, 10 Point, 12 Point, 14 Point, 18 Point, 24 Point, Custom Size…, Plain Text, Bold, Italic, Outline, Shadow, Underline, Custom Paper…, Windows, Colors, User Name Security, Export Ordered, and the ‘Desk Accessories’ placeholder (seen only in Design Mode).

Since the removal of these items could result in empty menus or menus with consecutive dividers, these conditions are checked and corrected during the update process.

Obsolete Structure Removed (R8537)
Various internal properties that have been rendered obsolete by the transition to macOS have been removed from the structural format of the collection. They were preserved in Helix 6.2 to provide backwards compatibility, which is no longer possible.
Code Signing Update (R8970)
Apple implemented more stringent code signing requirements in macOS 10.10 (Yosemite) and later. All Helix 7.0 applications are code signed according to these new requirements.
Carbon to Cocoa Migration Continues (R8957)
Dialogs now use Cocoa’s NSAlert, allowing Command-‘x’ (where ‘x’ is the first letter of the button name) to trigger the button, and resolving communication blocking issues in Client/Server.
Unnecessary Print Records Removed (R8983)
Some icons contained internal print records that served no purpose. These have been eliminated.

Helix RADE (Design Mode):

General

Icon Time Stamping (R7539)

Helix 7.0 adds two time stamps to all icons, tracking to the second when they were created and modified. See this technote for details.

The time stamp information appears…

  • In the Inspector when the object is selected
  • As new columns available in List Mode
  • In the creation date and modification date properties in AppleScript

Icons created or last modified before 7.0 (the beginning of time stamping) display a ‘-’ in the editor window and in the Inspector. The AppleScript reply for such a date is ‘missing value’.

Collection Creation Date Shown (R8970)
The date and time a collection was created has always been stored within the collection, but this information was not accessible to the collection designer. This stored date is now visible as the ‘Created’ date of the collection icon. (To inspect the collection icon, open the collection window and deselect all icons in it.)
Element Panel: Custom Name Feedback (R8792)

When an icon has a custom name, the Element Panel now shows that name, with the icon name in brackets, as in “Custom Name {Icon Name}”.

When the icon type can be from multiple relations (as when adding subforms to templates or views to users) the relation name is appended, as in “Custom name {Icon Name in Relation Name}”.

Element Panel: Position Retained (R8891)

An Element Panel tab now maintains it scrolled position after dragging an item from the panel.

This ‘last position’ is retained when switching to a different tab; reactivating the tab restores its scroll position.

Drag From Anywhere (R8993)
An icon can be now dragged to any legal place from any source. For example, a view can be dragged from a user menu, the collection window, or another sequence into a sequence. Dragging an icon onto a template automatically creates a rectangle of the appropriate type to contain it.
Default Clipping Name Enhancements (R7938)
Instead of always using the name of the parent when creating a new clipping (as in ‘collection.textClipping’) the default name is more informative regarding the clipping contents:
  • If a single icon is selected, the name of that icon is used.
  • If more than one icon is selected, the clipping name defaults to “x of y in z” where x is the number selected, y is the total number of icons in the container, and z is the name of the container. For example, selecting 3 icons in the relation ‘Accounting’ which contains a total of 45 icons presents the “save clipping as” dialog with the default clipping name of 3 of 45 in Accounting.
Extended Message Length

The revised dialog code allows designers to create extended error messages:

  • Why? messages in validations are extended from 255 characters to 32K.
  • Custom error messages in sequences are extended from 255 characters to 32K.
Dynamic Enter Menu
The ‘Enter’‘ menu item now dynamically alters to display ‘Static Enter’ when the Option key is down. (This was intended as a User Mode enhancement, but currently only works in Design Mode. See R9206 to track this issue.)

Collection & Relation Editor

Column Sorting in Collection and Relation Windows (R7545)

You can now click on any header label (except the ‘Contents’ column) in a Design Mode window in List Mode to sort the list by that column. Helix now supports reverse sorting, and a direction indicator in the header shows the current sort direction. Sub-sorting up to three levels deep is also supported.

List Mode columns can also be hidden, if desired. See this technote for details.

View Modes Simplified (R7539)
Helix 7.0 now offers a simplified “View as Icons” and “View as List” toggle to change the view mode. The F5 key toggles the current window regardless of icon selection. The old “View by Kind” and “View by Name” are obsolete, since you can now sort by any column, and can resort on the fly.
Resize Columns Via Double Click (R8625)

When viewed in List Mode, double clicking a column divider now resizes the column to its left to the correct size based on the data in that column. (Double clicking the last divider has no effect, as that would require resizing the window.)

Note that because windows are now resorted when clicking on a column header, double clicking a header divider has the effect of both resizing the column and resorting the window. Avoid this by double clicking in an icon row.

List Mode Navigation (R8976/R8977)

Enhancements to list mode navigation include…

  • Selected icons can be opened by pressing Command-Down Arrow. (Command-O as well.)
  • The Home, End, Page Up, and Page Down keys no longer move the current selection, just the page. Holding the Option key down to also moves the selection, as per Helix 6.2.
  • Shift-Home now moves the grid to the far left. (i.e. back to column 1)
Export Collection (or Relation) Details Command Restored, Improved (R1254)
The “Export Collection (or Relation) Details” command, that was part of Classic Helix, is restored and updated to support Unicode. The output includes the new columns and uses the Linefeed character (id 10) as the icon record delimiter.

View Editor

Repeat Rectangles No Longer Use Double Border

Classic Helix displayed a ‘double border’ around a repeat rectangle, which required a 3 pixel margin. This has been reduced to a single line, 1 pixel margin. The rationale behind this change is:

  • The double border is not supported in macOS.
  • The double border is typically disliked by designers, requiring them to turn the frame off and restort to additional design work to get the desired visual effect.
  • The double border could interfere with the list’s spacing requirements.
  • The calculations for rectangle positioning were more difficult to maintain (and slightly slower).

As a result of this change, existing framed repeat rectangles appears on views with a 2 px gap between records. (The gap being the space formerly used by the double border.) We chose to not reclaim this space in order to leave existing layouts undisturbed regarding rectangle spacing.

Collection designers need to take into consideration that this gap will be removed when a template containing a repeat rectangle is edited. When editing a template (with preview mode off) an unframed repeat rectangle now appears as a dotted line. A framed repeat rectangle appears as a solid line, and is differentiated from a group rectangle by the absence of rounded corners. See Preview Mode Enhancements for additional information.

Moving Forward Property is now visible. (R9152)

Helix views contain a property that indicates the ‘direction of motion’ — that is, whether the last ‘find’ operation was forward (Find First, Find Next) or backward (Find Last, Find Previous). This property is now shown in the Inspector. (In Helix 6.2 it was available only via AppleScript.)

This property is of limited use, but may be helpful for designers who create recursive sequences that depend on the direction of motion after an Enter command is done.

Template Editor

Rectangle Dragging (R7999)

Enhancements to using a mouse to resize rectangles include…

  • Rectangles can now be resized from the corners.
  • When the ‘Align to grid’ property is on, moving or resizing a rectangle honors the grid. See this technote for details.
  • Rectangle drag images now use the rectangle type’s identifying color as you draw them, and in the case of group and repeat rectangles, provide a transparent grey fill to reinforce what will be included in the group.
Preview Mode Enhancements (R8148)

In the move from Classic to macOS, template preview mode was left behind. Helix 7.0 brings much of preview mode back.

  • Data Rectangles
    • Proxy text starting with ‘Lorem ipsum…’ is displayed, updating the ‘quick brown fox…’ text that appeared in Classic Helix.
    • The proxy text can be changed via the HxPreviewPlaceholderText preference.
    • Currently all data types — dates, flags, pictures, etc. — show the proxy for text/styled text data. Various datatypes will be addressed in a future update.
    • As always, hide the proxy text by turning Preview mode off.
  • Label Rectangles
    • Contents, background color, frame color, and frame width are displayed.
  • Command Rectangles:
    • The sequence name is displayed. (Conditional naming is not possible without data.)
    • Text is vertically centered (and does not overflow the rectangle).
    • Corners are drawn more realistically.
    • A default button displays the proper tint.
    • The background color, lightened to accomodate macOS styling, is displayed.
    • The frame color (for framed rectangles) is displayed.
  • Group Boxes:
    • Unframed group boxes display the chosen background color.
    • Framed group boxes display the macOS rounded rectangle with slight grey background.
  • Repeat Rectangles:
  • Subforms:
    • Subform preview is unsupported in Helix 7.0.

See also Rectangle Color & Frame Attributes above

Duplicated Label Rectangle Duplicates Image Contents (R8389)

In Helix 7.0, duplicating a label or command rectangle containing an image now duplicates the image. This is now consistent with duplicating rectangles containing text.

For efficiency, only one copy of the picture is stored internally: multiple label rectangles can point to a single internal image, making storage more efficient when a single graphic is used on multiple templates. (Duplicate rectangles containing text continue to store a full copy of the text contents.)

Identical graphics are not automatically combined when a collection is updated to Helix 7.0.

Inspector: Subform Detail (R8984)
The name of the template used as a subform is now displayed in the subform properties section of the Inspector.

Abacus Editor

Drag Feedback Improved (R8970)
When dragging within an abacus editor window, the cursor shows the “can’t drop here” symbol when the object being dragged is not allowed in an abacus.
Lookup Summary Extended
A Form… tile can now be legally used in the first socket of a Lookup Summary tile.

User Editor

User Editor: User Name Feedback (R8792)

When editing a user icon, the menu items now display their User Mode names, to better represent the user mode display.

To see the icon name of a menu item, click and drag the item slightly: the drag icon that appears displays the icon name.

Client/Server:

Encrypted Authentication and Data Exchange (R2073)
Helix Client/Server now support secure data access, using industry-standard authentication and encryption. See this technote for details.
Unified Connection Dialog w/Local Server List (R2094)
Helix Client 7.0 debuts a new, unified connection dialog. The three potential actions — establish a connection to a local Server, establish a connection to a remove Server, and reconnect to a Server — are merged into a single dialog that opens automatically when Helix Client is launched. See this technote for details.
Idle Client Automatic Disconnect (R8552)
Network managers can now tailor Helix data access to individual users’ work habits, specifying how long a user’s workstation can be idle before being automatically logged out. See this technote for details.
Non-Responsive Client Management (R6946)
Helix Server disconnects a Client that has gone ‘non-responsive’ for a length of time. Most typically this happens when the Client Mac goes to sleep. In Helix Client 7.0, the ‘Automatic Disconnect’ dialog (above) gives the user the option to reconnect when the Client becomes responsive again.
Seamless Connection Update (R9103)

When Helix Client uses a connection document (fka: structure file) created in an earlier version of Helix to connect to a Helix Server, the update is handled automatically and the connection is transparent. It is no longer necessary to choose “New Connection” and enter the URL to reconnect to the Server.

The updated connection document is automatically moved to the ~/Library/Application Support/Helix/Client folder, the preferred location for connection documents.

Performance Improvements (R8876, R9043)

Helix 7.0 features the following performance improvements…

  • Messages that do not expect a reply can now be combined into a single network packet (as per Nagle’s Algorithm) to improve network performance. Improved performance is most notable for remote Clients, but local Client will also benefit if the Server is running on a machine that is faster than the Client.
  • Client now caches picture data for improved performance when a picture is used as a static element in a list.
  • The Server now removes all internal support structures (LSTs) when a Client is disconnected. This improved performance and reduces maintenance in collections that run for extended times.
Server Crash Diagnostic and Recovery (R9114)

When Helix Server 6.2 and earlier encountered an unrecoverable error, an error code would be displayed in a dialog, and Server would go into a ‘semi-functional’ state until a person dismissed the dialog. Then the Server would crash.

Helix Server 7.0 crashes immediately, accurately capturing the system environment at the time of the crash. The error code that was formerly displayed in a dialog is now written into the system.log, in case it is needed for deeper diagnostics.

Connected Clients will immediately be informed of a Server crash by a dialog informing them that the Server has dropped off the network and offering a 1-click option to reconnect once the Server has been relaunched.

External applications (e.e. AppleScripts) that monitor the Server to keep it running will now work in cases where an error dialog would appear in earlier versions, keeping up the appearance of a functional Server.

Collection Name Distinct from File Name

Helix 7.0 breaks the reliance on the file name to provide the collection name. Assigning a Custom Name to the collection icon causes Helix to use that as the official collection name, so that changes to the file name will not appear to the Client as a potentially different collection. (If no Custom Name is assigned to the collection, the file name continues to be used.)

Some specific places where the distinction can be observed…

  • The confirmation dialog that appears when you Quit Helix Server now refers to the collection using the collection name instead of the file name.
  • The Collection Information window differentiates between the two names, displaying the ‘Runtime name’ (also known as the ‘user mode name’) in the ‘Runtilme’ tab and the ‘Collection File name.’ in the ‘File’ tab.
  • The Server Information window’s “Export Stats” function adds a line for the “Runtime Name” and changes the “Collection Name” label to “Collection File Name” to indicate that this is the actual file name. Also note that the stat export now uses Linefeed (LF or ASCII 10) instead of Carriage Return (CR or ASCII 13) return characters.

Helix Utlity:

Expand (Rescale) Collection (R7717)

Collections can now be expanded to grow to as large as 64GB. See this technote for details.

Only collections updated to Helix 7.0 can be rescaled. Attempting to rescale an older collection results in a warning dialog and no rescaling is done.

Object Map Compression (R7718)

The Object Map is an internal table that stores references to every object in a collection. In prior versions of Helix, this map could only grow larger; deleting structure would not reduce it. A smaller object map results in better performance, so compressing a collection now provides an option to also compact the Object Map. Long-used collection may see a remarkable speed improvement with a compacted Object Map See this technote for details.

Expert Tab (R7719)
The “Expert” tab in Helix Utility contains the tools used to repair collections. Customers who have completed collection repair training have access to this panel. See this technote for details.
File Menu (R9049)

The “File” menu in Helix Utility 7.0 — shown in the image on the right — contains an appropriate set of menu commands, taken mainly from the contextual menu seen when right-clicking on an entry in the ‘Collections’ list.

Specification Changes and Additional Notes

This section details changes to Helix specifications and additional changes that are not significant enough to qualify as new features.

All Products:

AppleScript

AppleScript support is updated for Helix 7.0…

  • The ability to run a sequence via AppleScript from User Mode is no longer contingent on supplying Design Mode access credentials.
  • Helix products no longer includes an AETE resource (AppleScript dictionary) since the sdef format is standard in macOS 10.6 or later.
  • See this technote for details on the changes in the AppleScript dictionary.
Import/Export Delimiter Changes

Because of the change to Unicode, ‘high-ASCII’ characters (those whose value is greater than 127) can no longer be used as delimiters. When a collection is updated to Helix 7.0, any view’s I/O delimiter that is greater than 127 is reset to its default value. Those defaults are:

  • Start character:  none
  • Field delimiter:  Tab (id 9)
  • Record delimiter: Linefeed (id 10)

A future version of Helix is expected to allow any Unicode character as a delimiter.

Functional Changes…

The way things work may have changed…

  • Helix 7.0 uses macOS APIs to do many things Classic Helix used to have to do on its own. This may result in subtle changes to the results produced by the …case tiles, the word… tiles, and the way text strings are handled in general.
  • The Autosave mechanism has been adjusted to be more resilient.
  • Demo mode for RADE and Engine is now 30 minutes, and limited to 1 CA.
  • The Structure Check log now appends data by default. This can be turned off by setting the HxSCAppendLog preference to false.
  • Helix Help has been updated so it no longer contains out-of-date information.
User Interface Changes

Many interface elements have been improved…

  • The various ‘Selection’ commands (e.g. ‘Select all Records’) have been updated to be more consistent and sometimes more explicit.
  • The ‘Register’ menu item is now ‘Registration’ to reinforce that this can be used to update an existing license. Text in the dialog has also been updated.
  • The printing progress thermometer now presents a “Page # of #” message when the total number of pages is known, and the thermometer fills accordingly. If the total number of pages is unknown — typically due to the presence of a query that would take too long to pre-calculate — the indeterminate thermometer is used, and the progress simply reads “Page #.”
  • Form query windows now draw a ‘background page’ to match the template size.
  • The text in the ‘Save changes before…’ dialog has been improved.
  • The text in the ‘Recovery Failed’ dialog has been improved.
  • Instances where Helix was inconsistent about using curly quotes have been fixed.
  • Delete multiple records dialog message revised so the count advances on the 10s instead of the 11s.
Error Handling Improvements…

Error handling and reporting are improved in many places…

  • When opening a Form Query with no query template specified, Helix 6.2 would show a blank window. Client and Engine now return a Why? message that suggests contacting the collection designer. In Design Mode, Helix RADE opens the Inspector, thereby prompting the designer to choose a template.
  • The Invalid/Default shading around popups is shown again.
  • The ‘Delete Original’ command now provides an error message when it fails.
  • The ‘Find and Update All’ (Documents) command now issues a pre-warning dialog, just as ‘Update All’ (Documents) has always done.
  • When document updating asks the user to locate a missing file, the form window behind the dialog is updated before presenting the dialog, so the user can see which record needs assistance before picking the file.
  • When attempting to create a picture from an external document that can’t be found, Helix now returns an error instead of silently failing.
  • When an attempt to create a picture fails, the proxy picture now includes the error number when reporting ‘cannot create picture.’
  • When a collection can’t be opened for some reason, the OS error is displayed, to assist in troubleshooting the situation.
  • The warning “A save was triggered when DATFull returned true in ChkAutoSave” was testing for a condition that simply doesn’t exist in macOS, and has been removed.
Structure Check Error Dialog

When the Structure Check finds errors, the dialog that is displayed uses less cataclysmic language and is more informative, sometimes even identifying the offending icon by name and location. An example is shown in the image on the right.

PowerPC Support Removed
Helix 6.2 includes a PowerPC version of Helix Client. Helix 7.0 supports macOS 10.6 and later, which are Intel-only. There is no support for PowerPC Macs in Helix 7.0.

Client/Server:

Minor Changes
  • The Helix Server splash screen only shows the port number if it is non-standard, i.e: not 10860.
  • Helix Server once again uses the PORT/1 resource, when present.
  • The Server animation icons are updated with the macOS ‘flat’ style. See this technote for more information.

Helix RADE (Design Mode):

Import/Export Options Consistent (R8983)

In Helix 6.2, the order of the Import/Export options was inconsistent in the Inspector and in the Options dialog. In Helix 7.0 the options appear in a consistent order.

Changes made in the Options dialog — even while in Design Mode — are immediately committed to the view when the ‘OK’ button is clicked. Changes in the Inspector can still be reverted.

General Changes
  • You can no longer delete icons while there are uncommitted changes. You must Commit or Revert before deleting. Note: there is no Why? message explaining this, because the ‘Delete Icon’ menu item is disabled, and no command is sent to Helix.
  • The ‘L’ character used to indicate a locked icon is replaced with a padlock 🔒 character (x01F512) in macOS 10.7 and later.
  • The ‘[-]’ text used to indicate an unused icon is replaced with with a ‘circled dash’ ⊖ (x2296) character.
  • Locked user and relation icons now show the lock indicator
  • The position of rectangles from template to view to print is much more consistent. (R9047)
  • Page Setup now has a key equivalent: Shift-Command-P
  • The Design Mode key equivalent for ‘Copy Record’/‘Copy Records’ is now Shift-CMD-C, to be consistent with Paste Record’s Shift-CMD-V. “Copy Selected Records” is now CMD-Opt-C.
  • The term “Content” is now used consistently throughout program. (Some places said “Contents” in 6.2.)
Inspector & Element Panel Changes
  • Various Inspector inputs are now validated to guard against ‘out of bounds’ input.
  • Various Inspector labels updated to be more consistent and sometimes more explanatory.
  • A panel windows (Inspector, Element Panel, Font Panel) partially obscured beneaty another panel window automatically moves to the top when the mouse points to it.
  • The power query properties are now listed in logical {searchable, reference, permanent} order in the Inspector. (In Helix 6.2 they were in alphabetical order.)
  • In places where styled text includes a color element (Styled Text ◊ tiles, Conditional Style definitions) the specified color is shown as {r, g, b} values.
  • Since text in buttons is limited by macOS to use only the system font, the Inspector no longer allows you to set the font property of a command rectangle.
  • The Font property now includes the text ‘pt’ after the size, to reinforce that it is in points, not pixels. (R8987)
  • The Font property now includes the font encoding information when non-MacRoman fonts are used.
View Changes
  • When creating a new view, the ‘Shade Default’ and ‘Shade Invalid’ properties are now off by default.
  • The ‘Starting page number’ property for the view icon now rejects negative values. (Note: this property allows “starting page 0” because programmers like ‘zero-based counting’ and because Classic allowed it.)
Template Changes
  • When attempting to set width or height of an icon or template rectangle to an illegal value, Helix now provides a Why? message explaining the problem.
  • When an entry rectangle is inside a repeat rectangle, the Keep value checkbox in the Inspector is now disabled, preventing accidental invalidation of the template. Attempting to set Keep value to true via AppleScript returns an error. Note that if Keep value is already set to true for such a rectangle, both the Inspector and AppleScript allow the designer to correct the error.
  • The default size for a new template window is now closer to the full page size.
  • Add Command-click to Shift-click as way to add/subtract from selection in the template and abacus editors.
  • When setting custom flag labels, Helix no longer forces other changes based on the number of items in the custom label list. For example, a radio button set to show three buttons no longer automatically changes to two if there are only two items in the custom label list, as the third one may still be undefined.
  • Resizing a rectangle via the keyboard previously limited the minimum height/width to 4 pixels. The minimum size is now 1 pixel, which matches the limit imposed by the Inspector and by AppleScript.
  • When a new rectangle is created by dragging an icon from the relation window (instead of the Element Panel) the template’s default rectangle is used to set the ‘framed’ property
  • Default Button Size (R8621): The Classic Mac OS used a thick (4 pixel) border around a button to indicate that it is the default button. (That is, that it is triggered when the Enter key is pressed.) In Classic Helix, collection designers were required to make the default button’s command rectangle 8 pixels larger than the other buttons to compensate for this border. macOS uses shading (blue or grey, depending on your system preference) to indicate which button is the default button, with the size of the button being the same as other buttons. Helix 6.2 uses an algorithm to scale down a default button from the Classic size, preserving compatibility with Classic Helix. When a collection is updated to Helix 7.0, default default buttons are resized (reduced by 8 pixels in size and offset down and right by 4 pixels) so there is no longer a need to ‘oversize’ a default button.
Subform Cropping (R8971)

Helix 7.0 makes the HxAllowSubformCropping property obsolete, making subform cropping via drag-resizing, Inspector, and AppleScript always available.

When drag-resizing a subform, the temporary shadow that shows that the resizing is happening stops at the maximum size, indicating that you can not ‘crop’ a subform to be larger than its source template.

User Changes
  • When creating a new user, the ‘Login limit’ property is now 1 by default.
  • The ‘Login limit’ property now rejects negative values.
Bug Fixes

This section details fixes to bugs that were discovered in Helix 6.2.4 or earlier.

User Mode (RADE, Client, and Engine):

Incorrect display of subform busy status (R9057)

When viewing records containing multi-level subforms, the ‘busy’ indicator would occasionally appear and never go away, as though the view were waiting for more data when there was really no data to display. This bug was triggered by the data from the previous record, which was wrongly being used by the current record.

Splash Screen Cannot Display Ampersand (R6990)

If the licensee information entered when a Helix application is enabled contains an ampersand, then the splash screen would not display the ampersand. Additionally, text that appears in the ‘Collection Information’ window would not properly displays ampersands. This has been fixed.

If should be noted that registration data does not text wrap in the ‘Server Information’ window, so if you register using a long string (as opposed to the typical name and address info) the Server Info window is quite wide when opened.

Crash While Exporting Large Dataset (R7037)
When exporting large data sets, Helix Client would sometimes crash after writing 0x4FFFFF (5,242,879) characters to the output file. Crashes were also observed after 0xC7FFFF (13,107,199) characters. Although no specific work was done to address this, these crashes are no longer happening.
Exported Data File Named with High-ASCII Characters No Longer Mangles Filename (R7070)
Helix now uses Unicode when naming an export document, so high-ASCII characters are no longer an issue in file names.
Importing Documents With Long File Names (R7175)
Documents imported via a control file no longer fail to import if the filename is greater than 31 characters. However, long filenames are trimmed to 31 characters when stored in Helix, so care should be taken to ensure that essential type extensions are not lost.
High-ASCII Data Properly Exported (R7420)
When exporting data from older collections, high-ASCII characters could be converted to raw (multi-character encoded) Unicode form. This has been fixed.
Structure Check Crash When Filename Contains Foreslash (R7517)
Helix no longer crashes during a structure check when the filename contains a forward slash character.
Import Documents w/Control File No Longer Skips Documents (R7579)
Some documents that could be imported manually could not be imported via a control file due to Unicode character confusion. This has been fixed.
Note: Document management is still limited to documents whose names are 31 characters or less. Package documents are not yet supported.
Collection Names With High-ASCII Characters Create Corrupted SC Logs (R8032)
If a collection name contains a ‘high-ASCII’ character, the integrated structure check no longer creates two log files. All Unicode characters are now supported.
Document Handling When Renaming File Longer Than 31 Characters (R8123)
When using “Copy To Volume” to export a document, a “Document Handling Error” was reported (Error -43, Facility 3) if a renamed file was longer than 31 characters. This has been fixed.
Running a Sequence with Auto Open View That Is Ignored (R8534)
If a sequence contains an enter command that triggers a post that causes an auto open view to appear, and that auto-opened view is not dealt with, attempting to run the sequence a second time would cause Helix to hang indefinitely. This is fixed, with the note that the ‘Save changes before closing?’ dialog takes 1–2 seconds to respond to a button click or keypress.
Dynamic Popup on View With Subform No Longer Shows Wrong Menu (R8570)

If an entry view with a subform contains a dynamic popup, and the subform contains enough data to create secondary pages, secondary pages now display a plain text field, since the popups sometimes displayed incorrect menu items and were non-functional anyhow.

Buttons do not re-evaluate after auto-opened view is entered/closed (R8725)

In the case where an auto-open post is used to get additional input that will allow a button to enable on the original form, the button would not enable and the label does not recalcuate when the auto-opened view closed, unless the form was clicked on (or the Tab key pressed). This has been fixed.

Crash When Export File Would Replace A Folder (R8796)

Helix no longer crashes when an export tries (and fails) to replace a folder with a file.

This error is now included in a group of system-level failures that happen when odd situations are encountered. The dialog for these errors was rather generic, stating simply that “an inexplicable error has occurred.” This error message now includes the OS error number, to assist in troubleshooting the problem.

In this specific case, the OS error is -48, which in macOS is a “duplicate filename” error, is now reported.

Form Count Failed To Update On Hot Form With Post Attached (R8817)
A bug that has existed since the introduction of cold forms has been fixed: a form count on an entry form that has an abacus query referencing a user global does not update if the form has ‘on entry’ posting attached and is open when the user global value changes. Removing the post causes the count to update correctly.
Conditional Sequence Could Trigger After View Closed (R8847)
The specification for conditional sequences is that they stop executing when the view that initiated that sequence is closed. A bug in Helix 6.2 meant that if a view was opened in response to an Auto open property on another view, conditional sequence steps attached to the second view could be sent to the original view. This has been fixed.
Helix Fails To Get Version Info for 10.10 and Above (R8866)
Helix no longer generates a system warning (viewable in Console) that “the Gestalt selector gestaltSystemVersion is returning 10.9.1 instead of 10.10.1…”
Deleting Records On List No Longer Leaves Records Or Crashes (R8870)
Occasionally, deleting records on a list would fail to delete the entire list, or crash during the process. This has been fixed (again).
Picture & Document Printing Issues (R8945)
Numerous issues when printing picture or document data have been fixed.
  • A framed Picture rectangle was printing 1 pixel to the left, and 1 pixel too high.
  • An unframed Picture rectangle was printing 2-3 pixels left and too high.
  • The Picture was printed flush bottom-left in the rectangle; Helix specification is top-left.
  • The Document proxy was printed below the actual rectangle. The shorter the rectangle, the further the offset.
Deleting Records In a Subform (R8984)
When deleting records in a subform, the progress thermometer was undercounting by one, so that it never actually filled. Also, the thermometer progresses more smoothly when deleting just a few records.
First Sequence Run Sometimes Failed (R8994)
A sequence whose first step relies on field focus could fail with a ‘command not enabled’ error if it was the first sequence run after opening a collection. This has been fixed.
“Select All” Enabled For List View With Subform (R9001)
When a list contains a subform, you should not be able to select specific records, due to the ramifications of “Delete Selected Records” etc. (See R914 for a discussion of that issue.) In Helix 6.x ‘Select All’ was being enabled for lists with subforms, which would lead to a crash if one of the subsequent “… Selection” commands was chosen. The ‘Select All’ menu item is now properly disabled when the list contains a subform.
Incorrect Error Message When Pressing Fkey
Pressing a disabled command key (or FKey) while a view is open results in a “That Command key is not active at this time” error instead of the previous (and incorrect) “There is nothing selected to type into” error.
Replacing Record With Existing Document Crash (R9044)

Helix now generates an error (DOC_ERR_FS3) instead of crashing if an existing internal document that was previously not stored correctly is detected.

Helix now defers setting an internal flag until a new internal document is fully stored in the collection to prevent this error from occurring with new documents.

Design Mode:

General

Clippings Menu Must Be Refreshed After Saving Clipping or Clipping Opens In Finder (R7938)
It is no longer necessary to choose “Refresh Clippings Menu” after saving a new clipping or copying a clipping into the folder.
Applying Large Clipping Failure (R8235)
An autosave during a paste operation could lead to a crash. This is fixed by disabling autosave during the ‘apply structure’ operation.
RADE Crash Deleting Icon Shown in a ‘Where Used’ Window (R8236)
The ‘Where Used’ window could become out of sync, showing icons that are no longer used by the parent icon. If you delete an icon that is in the ‘Where Used’ window, RADE no longer crashes, particularly if you select or double click the deleted icon.
Panels Should Not Close When “Close All” Is Invoked (R8843)
The Inspector, Element Panel, and Font Panel no longer close in response to a “Close All” command. Floating palettes are not part of the regular window list and are exempted from the normal ‘Close’ commands.
HxIconDuplicateText Preference Crash (R8864)
Setting the HxIconDuplicateText preference to an empty string no longer results in a crash.
Crash Deleting Uncommitted Icons (R8929)
The “Delete Icon” command is now disabled if there are any uncommitted changes, avoiding the crash that occurs when deleting a modified icon with uncommitted changes.
Reverting Collection With Uncommitted Changes Could Crash (R8988)
When choosing “Revert to Saved” Helix no longer asks if you want to save unentered record changes, and no longer attempts to refresh a view that is open when its template closes, thereby avoiding the occasional crash that could occur when reverting.
Internal Record Block (RB) Indicator Stored Incorrectly (R9088)
Collections created in Helix 6.2 incorrectly stored the internal indicator that Helix uses to determine the maximum size of a collection. This is inconsequential in Helix 6.2, as all collections are limited to 4GB. Helix 7.0 allows collections to be rescaled to support up to 64GB, where this indicator is critical. Helix 7.0 understands that an improperly stored indicator means the collection limit is 4GB. Rescaling a collection in Helix Utility 7.0 correctly updates the internal indicator, making the old error a non-issue.

Abacus

Lookup Summary Tile Allows Field in Socket (R9030)
This illegal construction was allowed by RADE 6.2, even though it could only produce ‘Undefined’ results. RADE 7.0 prevents this from happening.
Arrow In Third Socket of Lookup Tile Blocks Options (R8960)
When the third socket of a Lookup ◊ for ◊ = ◊ in ◊ tile contains a tile arrow, the Inspector popup for the second socket showed no choices. It now shows the matching fields and abaci if the tile outputs a single defined data type.
Can’t Commit or Revert Styles for a Styled Text Tile (R9046)
After setting the style of a Styled Text ◊ tile, Helix 6.2.4 provides no option to Commit or Revert, requiring the user to close the abacus window to commit the change. Helix 7.0 properly enables the Commit and Revert buttons in this situation.
Closing Abacus Used in an Index Invalidates the Index (R8926)
In Helix 6.2, simply opening and closing an abacus that is used in an index invalidated that index. This made testing slower as the index would need to be rebuild before it could be used again. This has been fixed. However, it should be noted that any change to the abacus, such as moving a tile, is sometimes interpreted as a change that triggers index invalidation. Instances of this that do not make sense should be reported via techdb.
Can’t Open a Tile Socket When Abacus Window is Scrolled (R8975)
It is now possible to double-click a socket in a scrolled abacus editor window to open it.
Abacus Editing Crash When Shuffling Tiles and Icons (R8943)
When editing an abacus, it was possible to crash by repeating the steps of dragging an arrow out of a socket then filling that socket with an icon dragged from another socket. This has been fixed.
Duplicated [or Modified] Post or Abacus Icon Sometimes Fails (R8948)
When a post or abacus was edited in Design Mode, changes were not always registered until the icons that use them were closed and reopened. Since the fix for post icons requires that any views that use that post must be closed, that now happens automatically when the modified post is committed. (This is how Classic Helix handled the situation as well.) The abacus issue is resolved without closing the dependent icons.
Specific Abacus Modifications Can Not Be Committed, Lead to a Crash (R8959)

Some situations have been noted where, after making certain modifications to an abacus, a “Commit All” or “Revert All” could not be done. Continuing to work in the collection would eventually result in a crash. This has been fixed.

One example: Add a Date ◊ Time ◊ tile to an abacus containing an ◊ + ◊ tile so that the output of the addition tile goes into the Date socket. Then drag a Date-type field to the Date socket, overlaying the arrow from the ◊ + ◊ tile. Finally, select and delete the ◊ + ◊ tile. This abacus could not be committed, triggering the crash that has now been fixed.

Field

Picture Field Should Not Allow ‘Unique’ Validation (R9029)
It is no longer possible to validate a picture field for uniqueness, since Helix has never supported such a thing.
Inert Document Data Type Does Not Offer Storage Options (R8559)
When a Document type field is inert, the Inspector no longer hides the Storage and Keep Versions properties.

Post

Duplicated [or Modified] Post or Abacus Icon Sometimes Fails (R8948)
When a post or abacus was edited in Design Mode, changes were not always registered until the icons that use them were closed and reopened. Since the fix for post icons requires that any views that use that post must be closed, that now happens automatically when the modified post is committed. (This is how Classic Helix handled the situation as well.) The abacus issue was resolved without closing the dependent icons.
Changing the Target Relation of a Post Can Trigger Error (R8951)
A post that contains a post triplet that uses an icon that is used nowhere else would trigger structural errors if that post’s target relation was changed to a different relation. This has been fixed.
Modifying Post Leads To Crash in 6.2.4 (R9084)

The handling of internal objects when editing a post icon was wrong, and could lead to crashes. This has been fixed.

Query (Form and Power)

Document And Picture Icons Should Not Be Selectable In Power Queries (R8794)
The power query setup dialog for choosing selectable and reference icons was including document and picture icons, even though those have never been eligible for inclusion in a power query. They are now properly excluded from the setup dialog.
Damaged Form Query Triggers Crash During Collection Open (R8855)

A corrupted form query was properly being reported by the structure check (error: 09/xxxx) but when the corruption was a bad internal calculation, choosing to proceed (in order to attempt to identify and remove the corrupt icon) encountered a subsequent cleanup routine that would crash when handling the bad form query. The cleanup code now tests the internal calculation before attempting to re-validate it, and avoids doing so if corruption is found. This gives the collection designer an opportunity to fix the problem, either by deleting the offending form query, or by creating a new one and apply/replacing the bad one with a clean form query.

For extreme cases, holding down the Option key during the startup phase (after dismissing the ‘structure check failed’ dialog) bypasses even more of the cleanup process, potentially enabling further end-user repair.

Sequence

Dragging View Into Sequence From Relation Creates Two Views In Sequence (R8392)
In macOS 10.7 & 10.8, dragging a view into a sequence from a relation could create two steps containing the same view. A workaround for this macOS bug has been implemented.
Dragging Sequence Windows Is Slow (R8821)
As the number of views, sequences, and users grows in a collection, the interface response time would slow down when the Element Panel and Inspector were open. This problem is fixed.
Tail Recursive Sequence With No Other Steps Crashes Helix (R8772)

If the collection designer inadvertently created a tail recursive sequence (i.e: one whose last step calls itself) with no other steps, selecting it (in Design Mode) or running it would cause Helix to hang or crash. This has been fixed.

Helix 7.0 helps prevent the creation such a sequence by requiring that at least one step be defined before the tail recursion step can be added.

Template

Closing Template In Text Edit Mode Does Not Commit Changes (R8047)
If a template is closed after editing a label rectangle and leaving that rectangle in text edit mode, the edited text is now properly committed, avoiding the need to ‘Commit All’ or to reopen and reclose the template to fully commit the change.
Label Rectangles Revert After Border Rectangle Removal (R9007)
In Helix 6.2, repositioned/resized rectangles that were within a border rectangle that has been removed would revert back to their original position and size when the template was committed. This has been fixed.
Can’t Set Flag Display Options For Multiple Rectangles (R9069)

If more than one rectangle containing flag data is selected and the Number of buttons or Orientation property is changed in the Inspector, Helix 6.2 would report an ‘Invalid value’ error, and the value in the Inspector would remain unchanged, as though the change failed. In reality it may have changed one or more of the selected rectangles. Helix 7.0 does not report an error, properly updates the Inspector, and correctly sets all of the rectangles to the chosen value.

Can’t Tab Through an Empty Group Box or Repeat Rectangle (R8841)

If a template contains an empty repeat rectangle, tab-selection was getting stuck on the repeat rectangle. It now goes to the next sibling, or to the parent if this is the last (or only) sibling.

Option-tabbing (select next in group) within a group rectangle that has just one child selects the parent instead of appearing to be stuck on the only rectangle in that group.

Rectangle With Abacus, But No Field, Formatted As Popup, Triggers Crash (R8846)
Although it is technically wrong to have a data rectangle that does not contain a field formatted with a control element, Classic had a back door that allowed you to (intentionally or not) create such a thing. This was essentially useless, as you ended up with a ‘popup’ that was always disabled. In macOS, there is no hindrance to creating such a construction. Even worse, attempting to open a view with such a construction results in a crash.
Move the Page Rectangle Via Inspector or AppleScript (R8875)

It is no longer possible to move the page rectangle away from the top/left corner (the {0, 0} point) of a template by typing non-zero values into the property fields in the Inspector or by setting them to non-zero values via AppleScript. The Inspector resets the value to 0; AppleScript returns an ‘illegal rectangle coordinates’ error.

It was also possible to move the page rectangle by selecting both it and a rectangle on the page, then using the selection tool to click/drag the rectangle on the page. In Helix 7.0, doing this allows the page rectangle to resize in accordance with the drag delta, but does not move the top/left corner.

Text On A Sequence Button Does Not Wrap (R8884)

Long text within a command rectangle (button) once again wraps to span multiple lines. (This worked in Helix 6.1, but was broken all throughout Helix 6.2.)

Helix 7.0 also improves on the old implementation, by ensuring that there is no clipped text and that text that exceeds the amount possible in the button inserts an ellipsis in the middle of the last line. Forced linefeeds are also honored.

Text In A Command Rectangle Can’t Be Deleted (R8884)
In Helix 6.2, deleting the text label in a command rectangle (to allow the sequence name to become the button label) would fail, reverting to the previous text. This has been fixed.
Template Zooming and Sizing Fixes (R8897)

In Helix 6.2, clicking the green ‘zoom’ widget on a template resized the window to the ‘previously committed’ dimension. Now it zooms to the current template size, regardless of the commit state.

Also, when resizing a template via any method the scroll bars are immediately reset to the new template size.

Removing Image From Command Rectangle Tricky, Dangerous (R8988)
Removing an image from a command rectangle, then reverting the template, no longer deletes the image. Also, deleting an image, then pressing Tab or Return, no longer triggers an occasional crash.
Pressing the Escape Key While Editing Text on a Template Reverts the Template (R8990)
Pressing the escape key while editing text in a template rectangle would revert the whole template. In Helix 7.0 it returns to rectangle selection mode, the same as pressing the Return key.
Deleting First of Multiple Instances of a Subform Results in a 1B Error (R8998)
If you have two instances of the same subform on the first level of a view, and you deleted the first instance, the subform object would report an error (type 1B). This has been fixed.
Vertical Scroll Bar Can Be Turned On for Narrow Rectangles
Entry rectangles less than 32 pixels wide can no longer have vertical scroll bar property turned on.

User

Dragging Anything Over an Open User Causes Menus to Drop (R8929)
The user editor window was not considering what was being dragged before dropping down a menu. It now only opens if the dragged item is a menu command, menu, separator, view icon, user icon, or sequence icon.

View

Switching Query Icon Used by Quick Query, Then Deleting the Icon Triggers Error (R9050)
If a power query (or form query) is attached to an entry view, and that entry view has a quick query open that is ‘also use’-ing the query, switching the view query to another form/power query and then deleting the original query would result is collection damage. This has been fixed.

Helix Utility

Compress Collection Fails, Leaving Copy Severely Damaged (R8931)

A picture pasted into a rectangle could have incorrect length data, causing Helix Utility’s “Compress Collection” command to fail. This could be the result of a bug in one or more of the Helix 6.2 Preliminary Releases, or could be the result of other influences (cosmic rays, etc.).

Helix 7.0 addresses both of these situations as follows: if the error appears to be caused by the Preliminary Release bug, it is automatically fixed. If the error is anything else, Helix presents a 7802 error and exits.

Helix Client/Server:

Client Crash When Creating a New Structure With Name Greater Than 31 Characters (R2720)
When a Client connected to a Server whose collection name is longer than 27 characters, the Client would crash when attempting to save the connection document (formerly: structure file) because the addition of the ‘.hcf’ extension would make the filename longer than the Classic limit of 31 characters. Helix now supports filenames longer than 31 characters for the collection and connection documents.
Stats export supports filenames longer than 31 characters (R6035)
The ‘Client Information’ window has a button that exports the current stats to a text file. Clicking it brings up a dialog for naming and saving the file. The default filename is ‘Client Stats MM-DD-YY HH.MM AP.txt’ which is 34 characters. Attempting to export this file using the default name would silently fail (no file is created) because Helix could not process a filename longer than 31 characters. This has been fixed.
Client Failed To Recognize Structure File With Long Name (R6585)
If a connection document was renamed so that the name was greater than 31 characters, Helix Client would return an error when it was opened. This is fixed.
Memory Leak When Client is Disconnected (R6884)
If a Client was disconnected before all of the changes sent to it were complete, the Server was not disposing of the list of changes. Now it does.
Server No Longer Held Hostage By Non-Responding Client (R7077)
When a Client is left with a dialog open on screen, it no longer impacts Server performance.
Helix Client Connection On Non-Standard Port (R8546)
It is now possible for a Client to use a saved connection document to reconnect to a Server that uses alternate TCP/IP port number.
Client Stats Export Silently Failed When Filename Exceeds 31 Characters (R8575)
The option to export the current stats to a text file from the ‘Client Information’ window would fail if the filename was longer than 31 characters. The enhanced user access log introduced in Helix 6.2 makes this button obsolete, and so it has been removed.
Client Crash When Processing Complex Views With Multiple Subforms (R8893)
Client should no longer crash in cases where it did when processing complex views with multiple subforms.
Connecting To Server’s Port Via Web Browser Hangs Browser (R8927)
Attempting to connect to Helix Server via a web browser (as in <http://myserver:10860>) no longer hangs the web browser. Instead, the web browser is redirected to www.qsatoolworks.com with a query of the requested server IP:Port, as in <http://www.qsatoolworks.com/?server=myserver:10860>
Client Crash When Server Logs Client Out (R8957)
If the Server logged a Client out from the “Client Information” window, the Client sometimes crashed after dismissing the dialog telling them they had been logged out. This has been fixed.
HxAutoConnect Bypasses User’s Logon Limit (R9085)

If a workstation connects to a Server automatically via the HxAutoConnect… preferences, it no longer ignores the ‘Logon limit’ property for that user.

Disconnecting Client Does Not Release Write Locked Records (R9133)

When a Client is disconnected, the Server now releases all Client resources — including locked records — immediately, as part of the disconnection process.

Old Terminology
Helix 6.2 changed the Helix Client terminology from ‘Visit’ and ‘Leave’ to ‘Connect’ and ‘Disconnect’ — but this was overlooked in two places, that have now been updated to use the new terminology.
100F Debug Error
Some errors that were improperly reported as “100F Debug error” are now shown correctly, so we can accurately identify the error being reported. The ‘solution’ has also been corrected to read ‘Contact QSA ToolWorks’
External Document Failure Crash

A potential crash when replacing or entering an external document fails has been fixed.

Memory Leaks

Using Xcode profiler tools, numerous memory leaks were plugged.

AppleScript

AppleScript “Save As <Filename>” Crashes (R7824)
The AppleScript ‘save as’ command would crash if the name did not include the full pathname in HFS format. Helix now accepts both HFS and POSIX forms of the filepath. Failure to include the full path may may result in an attempt to write the file to a non-writeable area (e.g: the root level of the drive), resulting in a -5000 error. (Permission Denied)
Can’t Set Divider Positions or Column Order of a Collection or Relation Window (R8304)
Attempting to set the order or width of columns in a collection or relation window in list mode via AppleScript silently failed or returned an error, depending on how you tried. This has been fixed.
Terminology Conflict: Field Delimiter & Record Delimiter (R8871)
The AppleScript terms “field delimiter” and “record delimiter” are used in two places: as properties of a view and as properties of a process ready record. The properties of a process ready record have been changed to plural form (“field delimiters” and “record delimiters”) to avoid this. (The Apple event codes were always different, and have not been changed, so compiled scripts should continue to work without the need to recompile them.)
Delete User Menu Command Broken (R8879)
The ‘delete user menu’ command works again, after breaking in the very last Preliminary Release of Helix 6.2.
Some Abacus Tiles Could Not Be Created in Applescript (R8963)
The following Apple event codes could not be used, and so are changed for Helix 7.0:
  • less than less than or equals tile — code ‘lt≤O’ changed to ‘lteO’
  • less than or equals less than or equals tile — code ‘le≤O’ changed to ‘leeO’
  • less than less than tile — code ‘lt<O’ changed to ‘ltlO’
  • less than or equals less than tile — code ‘le<O’ changed to ‘leeO’
It was also discovered that it was impossible to compile a line containing a ‘followed/or’ tile because AppleScript considers the / to be a division symbol and would change it to “(followed) / (or tile)” which is clearly nonsense. The term ‘followed or tile’ (without the ‘/’) is now used for this tile.
“Set frame width” Property Fails (R8968)

Attempting to set the ‘frame width’ property for group and repeat rectangles via AppleScript would trigger a crash or introduce a structural error. This has been fixed.

Note that the ‘frame width’ and ‘frame color’ properties are not displayed on screen, but are used when printing.

Crash Attempting to Set Properties of Collection Icon (R8969)
An AppleScript that sets the name, custom name, or comments of the collection itself no longer causes Helix to crash.
AppleScript Mis-Reports Static and Dynamic Popup Styles (R8980)
Retrieving the Style property of a flag field formatted as a static or dynamic popup now returns the correct style type. Previously it was swapping the two.
AppleScript Errors When Setting the Format of a Rectangle (R8980)
Three formatting errors were addressed:
  • Setting the orientation of a radio button to horizontal, or the number of buttons to three no longer fails.
  • Attempting to define the format of a data rectangle before the datatype is established no longer crashes. Now it returns an error: "Datatype must be defined before the format"
  • You can now provide the format for a rectangle when making it, provided the field or abacus preceeds it in the property list, so that the datatype can be established.
Attempting to Delete User Menu From Open User Icon Crash (R9064)

RADE no longer crashes when AppleScript deletes a menu for a user icon that is open.

Creating Command Rectangle via AppleScript Triggers Errors (R9070)

An AppleScript that sets the Disabled label property as part of a ‘make’ statement when creating a command rectangle no longer generates structure errors.

Can’t Set Tile Validation of a Field (R9078)

Attempting to create a tile validation resulted in an ‘Access not allowed’ error, because both the field property ‘Validation tile’ and the ‘Validation tile’ record had the same name and the same event code (Lnrs). Fixed by switching the record to ‘tile validation’ with a different code: (nrsV)

Removing Menu Items Fails
If an Apple event removes a hier menu from a user menu, then attempts to remove the next item on the menu, it failed (“Can’t get 1”) because it was working with the original user menu instead of the mirror. This has been fixed.
Power Query Won’t Accept Icon
Attempting to attach a unacceptable icon to a power query resulted in a less-than-helpful error message. This is fixed.
Can’t Change User Menu
Attempting to change a user’s menu via AppleScript while that user is logged in and in User Mode no longer fails.
Count Command Broken
The Apple event ‘Count’ command looks like it was intentionally broken at some point, but we don’t know why. The code that broke it is removed, which — if there was any valid reason for breaking it in the first place — may cause something else to break. Be aware.
Selection Property Is Wrong For Some Windows
A script could become confused when selecting icons in a relation or collection window in list mode when two (or more) have the same name. This is fixed.