Directory Opus 13.10

Directory Opus 13.10

:inbox_tray: Download manually, or use Help > Check for Program Updates.

The following is a summary of new features and other significant changes from 13.9.

See the New Releases forum for detailed release notes for the various beta versions from 13.9.1 onwards.

New Preferences options:

  • Toolbar and menu buttons that switch into Power Mode are now hidden by default, as the mode is esoteric and has confused a lot of people.

    If you use Power Mode, please turn on Preferences / File Display Modes / Power Mode / Display Power mode toolbar buttons to restore the buttons.

  • Added Preferences / File Operations / Copying Files / Metadata / Strip zone information (Mark of The Web) option. Allows the mark-of-the-web to be removed when copying downloaded files, even if other NTFS ADS data is preserved.

  • Added Preferences / Viewer / Standalone Viewer / Slideshow / Cross-fade transition, to turn slideshow cross-fades on or off by default.

  • Colors used to display viewer plugin error messages can now be configured (Directory Opus Colors / Viewer / Plugin - Errors).

  • Added an option for new tabs to duplicate the current tab completely (including file selections and expanded folders) in Preferences / Folder Tabs / Folder Tab Bar.

Other new features:

  • Added Signed by column for code-signed executables: Verifies the signature and, if it's valid, shows the signer name (usually publisher).

  • Added Streams column: Shows the number of alternate data streams (NTFS ADS) a file or folder has, if any.

  • Default toolbars: A command to re-open the last closed lister has been added to the File menu, and to the tab-bar right-click menu. (To update an existing File menu: Settings > Customize > Default Toolbars, then drag the appropriate item to your toolbar. To update the tab-bar right-click menu: Settings > Customize > Context Menus, then right-click Folder Tabs and choose Edit Alongside Default and drag the menu item over.)

Changes to commands:

  • Set FOCUS=UtilityPane is now supported as a synonym for Set UTILITY=Focus. You can also use it to test if the panel already has focus.

  • Copy WHENEXISTS=merge now works when the target is an archive specified via the CREATEFOLDER argument.

  • Go TABLOCK has a new target parameter which makes it act on the command's source tab rather than the lister's active tab. (Useful for scripting.)

  • Added Copy STRIPMOTW argument. Allows the mark-of-the-web to be removed when copying downloaded files, even if other NTFS ADS data is preserved.

  • Copy QUEUE now has both quiet and noisy parameters, to override the Preferences setting both ways. E.g. Copy QUEUE=MyQueue,noisy will always show a confirmation when adding to the queue.

  • Added Go NEWTAB=dupe keyword. Duplicates the current tab completely when opening a new tab.

  • Added additional keywords for the Go TABDUPLICATE command. full - duplicate the full tab, including file selection and expanded folders. nolock - don't duplicate lock state. nocolor - don't duplicate tab colors. active - make the duplicated tab active.

  • When a tab is fully duplicated (Go TABDUPLICATE=full keyword, or the "Duplicate" option for a new tab), the back/forward history list is now copied to the new tab.

  • Added Go REFRESH expanded and noexpanded keywords. Allows the expanded folder state to be saved or discarded explicitly, overriding the Preferences flag.

  • The Go DRIVEBUTTONS, Go FOLDERCONTENT, Go FTPSITELIST, Favorites and Recent commands, when generating dynamic path lists, now support KEYARGS mmb:... to specify additional arguments for when the generated buttons are clicked with the middle mouse button. For example, this will show a list of drives and open them in a new window on middle click (instead of the default new tab): Go DRIVEBUTTONS KEYARGS mmb:NEW

  • Added Select PATH argument, allows selections to be restricted to files or folders whose location matches the specified path. Paths can be specified as absolute or relative (to the current folder). Use PATH . to specify items in the current folder (i.e. contents of expanded folders will be ignored). Supports wildcards.

  • Added Go TABGROUPDESC argument, used to set a description when saving a tab group programmatically via Go TABGROUPSAVE.

  • The dialog used by Copy CREATEFOLDER now has the same "read new folder" options as the normal Create Folder dialog (read, read into new tab, etc). Added READAUTO/K argument for Copy command.

  • Added Prefs POS argument. Use when opening the Preferences, Customize and Scripts dialogs to control the position of the new window. Options are "lister" (open over the active Lister), "mouse" (open under the mouse pointer) or a specified position (e.g. POS=10,10).

  • Clipboard COPYCOLUMNS can now copy entire columns of data without the cells having to be highlighted first (e.g. Clipboard COPYCOLUMNS=index:0/1/4,all would copy the full contents of columns 0, 1 and 4). Specifying column indices without the all keyword will copy data only from items that have at least one cell highlighted.

  • Added NOTCOPYING flag for Select command. Will only select files that aren't involved in a copy job (either active or queued). E.g. SELECT ALLFILES NOTCOPYING.

  • Added CLI QUICKFINDCLEAR command; clears FAYT match highlights from the file display (same effect as pressing Escape by default).

  • Changes related to Go OPENCONTAINER:

    • The Go command's OPENCONTAINER and EXISTINGLISTER arguments now work better together.
    • Go OPENCONTAINER=target,noselect now works as documented.
  • Show VIEWERCMD=goto can now jump to an image by name. You can provide the full pathname of the image, just the name, or a wildcard pattern.

Evaluator

  • Added Rnd function.

  • Added IsDir and IsFile functions.

  • Evaluator clauses in functions and button labels (etc.) are now passed selbytes and totalbytes values, providing selected and total byte sizes. Note: Doesn't trigger folder size calculation, but will report folder sizes which have already been calculated.

  • Evaluator clauses in functions can now enable quotes on multiple-filename variables by appending #q to the variable name (e.g. allfilepath#q).

  • Evaluator code inside a @perfile block can now check the preparse_dummy bool value to see if it's being called for pre-parsing (instead of checking for the dummy filename).

  • Evaluator control keys can now call the ShowTips() function to display the control key tooltip. This lets you create a control key using your own choice of keys to display the helper (rather than use the built-in "hold control key down" functionality).

  • Evaluation columns can now use the function HasLabel() to see if the file has a specific label applied to it (e.g. HasLabel("green")).

  • The Evaluator now has CRLF as a predefined value, expands to a string containing a carriage return + linefeed.

Scripting

  • Added OnConfigBackup and OnConfigRestore events.

  • Added DOpus.FlushConfig method: Forces any pending, unsaved Opus configuration data to be written to disk immediately.

  • Added Dialog.singleton property: Designed to make it easy to restrict a script dialog to one instance at a time. To use, assign your own (unique) name to the property before calling Dialog.Create or Dialog.Show. If the function returns false, it means the singleton dialog already existed, and your script should exit. The existing dialog will be brought to the front automatically.

  • Added Dialog.state property: Returns "min", "max", "visible" or "hidden" to indicate the dialog's state.

  • Added Dialog.WindowCmd method: Changes how a dialog is displayed. Takes a single string: "min", "max", "restore", "show", "showna", "hide", or "front".

  • Added OrderedMap object: Has the same interface as Map, but remembers the order items were added rather than sorting by their keys. Create via DOpus.Create.OrderedMap method.

  • All script methods/properties that accept a Map now also accept an OrderedMap.

  • Script configuration items can now be specified using an OrderedMap, allowing them to be displayed in a custom order within the script's configuration dialog.

  • Added FSUtil.GetSignature script method. Retrieves information about (and optionally validates) file signatures.

  • FSUtil.OpenFile can now be told to exclude other readers (lowercase x in mode string) or writers (uppercase X in mode string) from accessing the file, if supported by the filesystem.

  • FSUtil.Resolve has new c flag: Returns "canonical path", including expanding short 8.3 paths to their long equivalents.

  • Added Control.AddText, ModifyText and RemoveText methods. Lets overlay text be added to an image-mode static control in a script dialog.

  • Added Command.DivertClipboard method. Lets you divert text that would normally go to the clipboard (e.g. by running the Clipboard COPYCOLUMNS command) into a Opus variable.

  • Added the OnQuickFilterChange script event. Is notified whenever the quick filter changes (e.g. from the filter bar) in a tab.

  • Added script OnPeriodicTimer event. Allows scripts to have Opus call them periodically at a controllable rate. Use the DOpus.SetTimer method to create a timer, and DOpus.KillTimer method to cancel one (or all) timers.

  • In script dialogs, Control.RemoveItem, MoveItem, AddItem and InsertItemAt now work on tab controls to let you remove, move and add back tab pages dynamically. All pages of the tab must still be added in the dialog editor, as before, but once the dialog is created you can use RemoveItem to remove one or more pages and add them back later if needed.

  • Control.GetItemByName and Control.GetItemAt also work with tab controls now, to find the index of a tab by the name of its dialog (or vice versa).

  • Markup text controls in script dialogs now have a Scrollbar property. If set to true, and the assigned text doesn't fit within the control, a scrollbar will be shown allowing the text to be scrolled.

  • Added ScriptInitData.config_group_order property. This lets you control the order of configuration item groups for your script. To use this, set the property to a Vector object (created by the DOpus.NewVector) method, and push the group names onto the vector in the desired order.

  • Added Func.qualifiers_raw script property. Provides the "true" key qualifiers that were held down when the script was launched (as opposed to the qualifiers property, which has any qualifiers used to launch the function filtered out).

  • Added DialogListColumn.align property. Set to either "left", "right" or "center" to control column alignment.

  • Added the script OnPowerEvent event. Lets a script receive notifications of system power events (e.g. when the monitor switches off, or when the computer changes from AC to battery power).

  • Added PairedFolder.parent_level script object property. Returns the parent level number of the paired folder if it was necessary to go up in the tree to find a match. Returns 0 if an exact match was found.

Other changes:

  • Folders added to the Preferences / Folders / Special Folders / Other cloud folders list now appear in the tree's Cloud Storage branch.

  • Libraries and File Collections now support shell columns (i.e. those added via Preferences / File Display Columns / Shell Properties).

  • Improved handling of portable devices (MTP) that put path separator characters in the device name (e.g. Samsung phones in some cases).

  • The advanced filter control can now match on the value of Evaluator columns.

11 Likes

Changes since 13.9.8:

4 Likes