Workspace 6.9 Released

March 12th, 2021

Workspace 6.9 has just been released and we thought we’d highlight some of the new features…

  • Operation replacement. An operation on the canvas can now be replaced by an equivalent operation, maintaining its existing connections where possible
  • QtTreePropertyBrowser widget This new widget allows multiple global names to be bound to a list of properties that can be arranged into an arbitrary hierarchy.
    This widget can be configured by double-clicking on it in QtDesigner
  • New and improved comparison and merge tool user interfaces

Operation replacement

An operation on the canvas can now be replaced by an equivalent operation, maintaining its existing connections and global names where possible. In the example below, the deprecated operation StringEqual has been replaced with the equivalent operation Compare. All connections and global names have been preserved.

Replace operation: Workflow showing deprecated operation

There are two ways to achieve operation replacement:

  1. Drag-and-drop the replacement operation
      1. On the Workspace canvas, select the operation to be replaced
      2. Select the replacement operation from the Workspace catalogue
      3. Drag-and-drop the replacement operation on the selected operation in the canvas
      4. When prompted for operation replacement, click “Yes”.
      5. You may choose to “Accept all defaults” or choose to view details in the “Replace operation” dialog box
  2. Replace operation via the operation’s context menu
    1. Right-click on the operation you want to replace and bring up its context menu
    2. Choose “Replace operation”
    3. Select the replacement operation in the “Select replacement operation” dialog box
    4. You may choose to “Accept all defaults” or choose to view details in the “Replace operation” dialog box

QtPropertyBrowser widget

A new widget called the QtTreePropertyBrowser
is now available. It works a little differently to other Workspace widgets in
that it allows multiple global names to be bound to the same widget. Global
names can be bound to a property within the widget’s tree hierarchy.

The Qt Property browser editor

QtTreePropertyBrowser’s property editor

  • The developer can specify arbitrary groupings of properties and any number of subgroups.
  • Global names must be entered in manually for each property.
  • The developer can also specify a widget type or let the QtTreePropertyBrowser try to pick a default widget.

The property browser showing bound global names

Three global names bound to a user interface using different methods

Workflow Comparison

It’s not new, but you may not know that Workspace ships with a custom graphical application for comparing two workflows. We call it the workflow comparison tool, workspace-diff or just “the diff tool”. You usually use this when some changes have been made to a workflow as it much easier to use than a direct text comparison tool.

In the latest release we have

  • updated the colour scheme to make it easier to link the graphical display to the difference list
  • added the option of grouping differences according to which nested workflow they come from
  • added detection of plugin differences
  • added detection of widget differences

For more information about workflow comparison, see Workflow Comparison Tips and Tricks


Workflow Comparison 6.9

Workflow Merge

Another tool that Workspace ships with is a custom graphical three-way merge tool. We call it the workflow merge tool or workspace-merge. This is usually used when two people have made different changes to a base workflow and you’d like to compare them or make some merges. In the latest release we have

  • made the layout more flexible by using dock widgets
  • added more tool windows so that you can directly compare the two modified workflows and see what changes would be made if an auto merge is possible, and
  • block or ignore individual changes.

For more information about the merge tool, see Workflow Merge Tips and Tricks


Workflow Merge 6.9

The complete changelog for this release is available here.
As always, we would be really glad to hear from you if you have any feedback.