Directory Opus 13.16.1 (Beta)

:warning: This is a beta release. It may be unstable. Some text may not be translated yet. Use at your own risk!

:inbox_tray: Download manually, or use Help > Check for Program Updates (if beta versions are enabled in Preferences / Internet / Updates).


File Types

  • Added a Cloud item entry to the File Types dialog, under the Directory Opus File Types category. This is now responsible for adding the "Always keep on this device" and "Free up space" context menu commands for cloud storage files, and means you can remove them if unneeded.

  • Improvements for File Types dialog with file extensions that don't have "proper" entries in the registry, but instead are only assigned via the "Open With" system.

  • On startup, Opus no longer "repairs" the .Zip file type events (Opus-specific events for double-click, double-click + shift, etc.).

    The default events now only come from the Archives file type group, without the .Zip type adding further overrides.

    As well as simplifying things, this means you're now free to modify what happens when double-clicking Zip files inside Opus (e.g. if you always want Zips to open in a new tab, you can do that now).

Flat View

  • Improvement to filtering in Flat View. Results should now be consistent when switching between the different Flat View modes.

Preferences

  • Improved Preferences search for Chinese IMEs.

Commands and Evaluator

  • Added @clearoutput directive to clear the script log from a function.

  • Added @requires command modifier. Allows a function's requirements (e.g. source path, selected files) to be specified explicitly, if needed.

  • Improved reliability of Evaluator columns that use file count variables with archives.

  • Fixed errors with multiple @evalonly lines when button tooltip is evaluator-generated.

Scripting

  • The FSUtil.Hash method can now operate asynchronously and return its result to a dialog's message loop. To use this, pass the Dlg object as the third argument to the Hash method. The Hash method will return an ID number for the request, and your message loop will receive a "hash" message when the result is ready. The Msg.data value provides the ID and the Msg.object value provides the hash (either as a string, or a vector for more than one hash type).

  • Added Path.GetDrive method. Returns a Drive object for the path (or false if path doesn't refer to a drive letter).

  • Added Drive.ssd property. Returns true if drive can be identified as solid state.

  • The Vars.Set method will now fail if you try to store a non-Opus object (e.g. a JScript array) in a variable. Language-specific objects are associated with the particular instance of the script engine that creates them and can't survive once the script stops running. To persist non-Opus objects in Opus variables you can serialize them (e.g. by converting them to JSON strings).

  • Fixed script-generated dynamic buttons putting inherited separators in the wrong spot.

10 Likes

Edited to add a change which was missed from the initial release notes:

  • On startup, Opus no longer "repairs" the .Zip file type events (Opus-specific events for double-click, double-click + shift, etc.).

More detail in the main post, above.

1 Like