We are pleased to announce the release of SMTK 23.04 which includes the following improvements:

Task System Enhancements

SMTK 23.04 has added several major improvements to SMTK’s Task Infrastructure.

Integration of Task Management into Projects

Originally Task management was consider to be part of the Application similar to Resource and Operation Management; however, due to the close relationship between a Project and its Task Workflow, SMTK 23.04 now treats Task Management as part of a Project. Not only does this better represent the Project/Task Flow relationship, it also isolates one Project’s Tasks from another.

Switching Active Tasks via an Operation

In 23.04, a SMTK Operation can now request the active Task to be switched if the Operation successfully completes. This was accomplished by extending the set of Operation Hints to include smtk::operation::addActivateTaskHint()

Initial Implementation of Task-based Workflow UI

SMTK 23.04 includes a prototype implementation of a Task Panel that is similar to ParaView’s node editor as shown below.

Each task is shown as a node in a graph and may be made active, marked complete (or incomplete), and manually placed by the user. In addition, each task may have a collection of style keywords associated with it and the task manager holds settings for these keywords that affect the application state when matching tasks are made active.

In particular, SMTK’s attribute-editor panel can be directed to display any SMTK View held by an Attribute Resource when a related :smtk:smtk::task::FillOutAttributes task becomes active.

Note that this functionality is a preview and still under development.

Expanding SMTK’s String Token API

SMTK now provides a method to test the validity of a smtk::string::Token using the new smtk::string::Token::valid method. You can now also quickly determine if a smtk::string::Manager already contains a specific string using the new smtk::string::Manager::hasValue method.

Adding ID Support to SMTK Instance Views

Previously, an SMTK Instance View could only refer to an Attribute to be displayed by its name. Though this was be sufficient for many workflows, it can cause unexpected behavior if the workflow would later on change the Attribute’s name. In this case, the view on refresh would then automatically create a new Attribute under the original name stored in the View. To correct this, Instance Views can now refer to an Attribute by its ID which never changes. In addition, if the View doesn’t refer to the Attribute by its ID initially (perhaps because the Attribute was created via a template file or by the View itself), the View will add the ID to its configuration so that in the future, the View will use the ID to access the Attribute.

Non-modal Operation Dialogs

You can now use qtOperationDialogs in a non-modal manner by simply using its show() method instead of calling its exec() method. When using the dialog non-modally, its Apply button doesn’t close the dialog, allowing the user to run the operation multiple times.

For more information, please see the release notes for 23.01 which can be found here.

Leave a Reply