15 March 2017

Directory Opus 12.4 is now available as a free update for all Directory Opus 12 users.

(Do not install this if you are still using Opus 11 or earlier, unless you want to upgrade to Opus 12.)

Please note: new versions are made available several days before they will be detected by the update checker. You can download Opus manually using the links below if you don't want to wait for the update checker to find them.

Download:

Directory Opus 12.4 is a stable release containing the changes from the 12.3.x beta releases:

Added functions to the Rename dialog to copy the list of old names to the clipboard, and to paste a list of new names in. The Use preview list to build macros option must be turned off to use these functions.

Added two new options to the File Operations / Progress Indicators page in Preferences:

Always display the jobs bar: Jobs bars will always be displayed at the bottom of Listers, even when no operations are running.

Show in all Listers: When the jobs bar is shown automatically, it will be shown in all existing Listers, not just the active one.

Added File Displays / FAYT and Filter Bar Options / Prioritize shorter filenames option to Preferences. When enabled, the FAYT will favor shorter matching filenames over longer ones when searching in Find mode, which may be desirable when the list isn't sorted alphabetically.

On the File Display Modes / Thumbnails page in Preferences, the settings for folder thumbnails have been moved to a sub-dialog that's displayed when you click the Adjust folder thumbnail settings link. This dialog contains some new options:

Single image: When NOT using the shell to generate folder thumbnails, this causes Opus to only use a single image from within the folder rather than up to four images when building the thumbnail. If the single image option is turned on, a filename or wildcard pattern can be specified to control the files that are looked for.

Display folder frame: When NOT using the shell to generate folder thumbnails, this lets you control whether the big "folder" image is used for thumbnail folders or not. If turned off folder thumbnails will be displayed with a normal thumbnail border. The options underneath let you control the color of the folder frame if it's enabled.

Added Viewer / Appearance / Reset scroll position for each picture option to Preferences. When enabled, the scroll position of will be reset to the top/left when moving from one image to the next.

Added two new options to the various mouse button settings on the Viewer / Mouse Buttons page in Preferences:

Expand/Scroll Image: When this option is enabled, and the displayed image is reduced from the original size, clicking and holding the appropriate mouse button displays the image in its original size for as long as the mouse button is held down.

Script event: When enabled, any script add-ins that implement the OnViewerEvent script event will be triggered when the button is clicked. The event type will be "click", "dblclk" or "mclick" as appropriate.

Added Viewer / Mouse Buttons / Click left/right edges to go to previous/next picture option to Preferences. When this is turned on, the left mouse button will move to the next or previous picture when the left or right edges of the window are clicked irrespective of the actual setting for this button. You can configure the percentage of the window that is considered to be the "edge" (defaults to 20% of the window width).

Added Viewer / Viewer Pane / Expand and scroll option to Preferences. When this option is enabled, and the displayed image is reduced from the original size, clicking and holding the appropriate mouse button displays the image in its original size for as long as the mouse button is held down.

Auto-hide toolbars set to the Frame and NoFrame appearances are now invisible when hidden, instead of causing a solid line to appear down the edge of the screen. (This was already true for the other appearances).

Using the Select command to show or hide files now also triggers column widths to be re-evaluated if auto-sizing is on.

Added a Use Simple Rename option to the Rename drop-down on the default Operations toolbar. When turned on, the default Rename button will show the simple rename dialog instead of the advanced one. Note you'll need to reset your Operations toolbar to the defaults to see the new option.

Floating toolbars set to auto-hide now have configurable delays before they start to slide on or off the screen, in addition to the old settings for the speeds of the slides themselves. The new settings, in Preferences / Toolbars / Options, can help avoid accidentally triggering a hidden toolbar when moving the mouse nearby.

Added an option to save the key file passphrase for SSH connections.

The Edit File Type dialog has a new tab (Replace Menu) which lets you configure menu items that will be shown in the context menu displayed when right-clicking on the file icons in the Replace dialog. This lets you add commands to compare the two files using an external tool.

The Save Folder Format dialog now has an "up" button which lets you quickly save the format for a parent folder of the current one.

When adding files to a collection using the Copy command, you can now use WHENEXISTS=replace or WHENEXISTS=skip to suppress error messages about any files which are already in the collection.

The {allfilepath|filem} and similar command sequences now have CROnly and LFOnly flags to specify that the output files should only have CR or LF characters between lines, rather than the default of CR,LF pairs. For example, {allfilepath|filem|lfonly}.

Wildcards now allow expressions such as ~grp:Images and ~(grp:Images) for negating file type group wildcards.

The Properties SETLABEL dynamic button command to generate menus or buttons for setting/toggling labels and status icons has new !noreset and !nostoponmatch parameters to prevent the Reset and Stop On Match options being added to the end of what it generates.

The Home and End keys in the Copy As dialog now stop at the file extension (unless already on it and pushed a second time), as already done in places like the Rename dialog.

Added Show VIEWERCMD=scroll,center command (scrolls image to center).

The image viewer now preserves the current relative scroll position when zooming in and out.

The viewer and preview pane have new options for accelerated scrolling while dragging images with the mouse. If off, the image moves 1:1 and the pixel you grab stays under the mouse pointer. If on, the image scrolls faster such that you can move across the entire image with a small mouse movement.

The Show command now has an AUTOFILELIST argument which is similar to LISTSIBLINGS, but uses the folder tab's file list rather than the directory. (The two are different if the file display is filtered or using Flat View, for example.) While AUTOFILELIST has existed as a hidden argument for some time, it is now documented and supported and has some new behaviors. See the updated manual for full details of what it does and how it interacts with the LISTSIBLINGS argument and related Preferences option.

Added {grp} status bar code, which returns the number of file groups displayed in the file display (when it's set to group).

Added the Show VIEWERCMD selaspect command, which allows the selection aspect ratio to be fixed in the standalone viewer.

Added option to folder thumbnail preferences to prevent folder thumbnail images from using the most recent images in the folder (instead images will be used alphabetically).

Moved the Cycle through pictures with mouse wheel option from Preferences / Viewer / Behaviour to Viewer / Mouse Buttons page, and added an additional option to zoom with the mouse wheel (without the Ctrl key needing to be held down).

Moved the Reset scroll position and Reset zoom level options from Preferences / Viewer / Appearance to Viewer / Behaviour.

Added an Edit menu to the Customize / Keys page, allowing copy/cut/paste of hotkeys. You can also right-click on individual hotkeys in the list to copy them the clipboard.

In FlatView mode you can now drag files from sub-folders to the "root" folder by dropping on the file display background, rather than having to drag to the last node of the breadcrumbs bar or folder tab.

Dragging files from nested sub-folders in FlatView mode to the parent folder now bypasses the prompt and defaults to copying all files to the same folder (since "recreate" in this case makes no sense anyway).

Some improvements relating to disconnected network drives:

Drive buttons no longer read the volume name for network drives when displaying a tooltip, which could cause a lock up if the network drive was offline (the tooltip will show the UNC path instead of the volume name).

Drop-down drive lists are now updated on a background thread which should prevent the Lister locking up when mapped network drives are unavailable.

Made some changes to fix Lister lockups when switching between tabs that point to disconnected network drives

In Rename, you can now use {parent|noext} and {parentbase|noext} to get the parent folder name without file extension (useful if the parent is an archive file).The Copy command's CLEARREADONLY argument is now used for all copy sources, not just CDs/DVDs. Note that the Preferences option still only applies when copying from CDs.

Added Set DISABLEGLOBALHOTKEYS command to temporarily disable all system-wide hotkeys.

Each Lister now gets its own dedicated background file information thread (for e.g. extracting metadata from images, calculating labels, etc). Previously there was just one file info thread for the whole program. This should help improve performance with multiple Listers and also mitigate against the problem of the thread getting stuck (e.g. the recent problem with certain PDF files) which meant all file information and labels etc. stop working.

Renaming a file or folder into a sub-folder with the same name as itself is now supported. For example, you can rename "moo" to "moo\cow" or even "moo\moo\cow".

Added an option to Preferences / Folder Tree / Contents to display all Folder Aliases in the tree instead of just user-defined ones.

Added support for basic audio metadata from .mka files (requires Windows 10 or codec/splitter to be installed).

In inline rename, Ctrl-' now works the same as Ctrl+Shift+Up (to copy the filename from the previous file).

Fixed an issue when copying files to FTP that could occasionally result in the new file not appearing in the destination folder until after a refresh.

Fixed a problem where progress dialogs could come to the front when other progress dialogs were created or activated.

If the Abort button was clicked in a progress dialog that had additional queued items attached, the abort confirmation message would block any other functions that use progress dialogs from running until the confirm dialog was closed.

Made a change which means the Copy Handler context menu extension now works in Opus.

Fixed "view as hex" option in the viewer not always being disabled if no hex viewer plugin was enabled.

Image marking now works even if the configured tag collection contains invalid filename characters.

Fixed problem with SSH connections where server certificate warnings (unknown key / mismatched key) were converted to ANSI before being displayed in a dialog (not an issue in English, but in other languages caused corruption of the message text).

The paths passed to the OnGetCopyQueueName script event were incorrectly stripped to the root paths for non-disk drive letters (e.g. mapped network paths).

The Properties command is no longer forcibly disabled in context menus when files from two or more different folders are selected.

Actions shown in the Undo Log are now time-stamped.

Fixed problem on FTP sites with cut-and-paste; pasting files to a sub-folder and then going up to the parent folder could end up in the wrong location.

Breadcrumbs path no longer shows "Undef (FTP)" as the top level branch for FTP sites in some cases.

Added @noprogress modifier which lets you disable the automatic progress dialog for a function.

The Set COLUMNSTOGGLE and similar commands now recognise audiocodec as a synonym for the mp3type column.

The properties dialog for files on FTP sites is now resizable.

Fixed a problem when copying files using the Select Destination Folder dialog to pick the destination, which meant selecting a folder from the Favorites drop-down and then clicking OK didn't work properly.

Fixed sub-branches of the Favorites tree not expanding after forcing the Folder Tree to refresh.

Processing of @disableifpath and @hideifpath modifiers now works even if they are preceded by a //comment line.

The breadcrumbs field will now show ghost paths for a folder if any depth of child folder hierarchy exists, instead of requiring the full hierarchy of the previous location.

Fixed issue with breadcrumbs path field showing all "ghost path" and no "real path" when going back from subfolders underneath QuickAccess.

Items below Favorites, Quick Access and similar folder tree branches now respond to icon and label/color changes without a forced refresh.

Fixed issue dragging to folder tabs on the left or right if they had been scrolled but no longer needed a scrollbar.

Layouts and Folder Tab Groups saved with tabs in Quick Access shortcuts will now be restored the same way, rather than navigating to the real paths the Quick Access shortcuts resolve to.

The {alias} command sequence now resolves library paths to their real disk paths if possible, e.g. {alias|libraries}/Tools/calc.exe would resolve to the full path of calc.exe within the Tools library. Previously {alias|libraries} would turn into lib:// which is no good for passing to external programs.

Fixed a problem where another window could be brought to the front when the "confirm file replace" dialog closes

On a slow machine, it was possible to right-click a file, choose rename, then select another file before the rename began and end up renaming the second file. This has been fixed.

The Select FROMSCRIPT HIDESEL command now works.

The Preferences / Launching Opus / Startup / Run a command option only worked if a user command was entered, but now works for any command.

Fixed toolbar layout error where a horizontal toolbar could overwrite a vertical one in some situations.

Fixed crash which could occur if you went to a directory within an archive, then went up to the archive's parent folder.

Improved metadata handling of .ai files.

Fix for image viewer crash if you deleted the 2nd last image in a folder and the last image was invalid or could not be loaded.

The context menu from very old versions of NotePad++ (which have been known to cause crashes) is now blocked by default.

Opus Light users can now set the HKEY_CURRENT_USER\SOFTWARE\GPSoftware\Directory Opus\ContextMenuDebug DWORD value to 1 to enable context menu debugging.

Blocked erroneous "click" event being sent to script dialogs when a radio button gains the focus.

Fixed expand/scroll viewer mode with certain images not making all pixels of the original image visible.

Made a change to hopefully fix problem with Photoshop not recognising keywords set through Opus in some images.

Setting the rating for a FLAC file is now supported.

Fixed two problems with vertical folder tabs:

Tab tooltips were not updated when the tabs were scrolled.

When resized the tabs would automatically scroll to make the current selection visible.

It wasn't possible to move the focus away from a drive dropdown toolbar control with the tab key.

Activating a toolbar button by pressing its & key now returns focus to the file display after running the function.

Scripting:

The script Tab object now has backlist and forwardlist properties, which provide a collection of Path objects in the back and forward history lists for that tab.

Fixed an issue with script columns that set the multicol property but then fail to return the data for all columns at once.

A new DOpus.GetQualifiers method allows you to get the state of keys like Shift, Ctrl and Alt in situations where you aren't already given them. See the updated F1 help for a discussion of when it makes sense to use this vs other methods.

A new DOpus.TypeOf method lets you query the type of an Opus script object (returns a string identifying the object type corresponding to the type names documented in the Scripting Reference section of the manual).

The metadata.image.picdepth property incorrectly returned picheight and has been fixed.

Fix for Item.ShellProp failing on a file if some of its properties could be obtained but not all of them.

The OnViewerEvent is now called synchronously. This may break some existing viewer scripts, but was needed because the events could come in a random order before and events like "create" were inconsistent as to whether viewer.current had the first file or was empty. (It will always be empty now; use "load" to get the first file.)

Item objects returned by the FSUtil.ReadDir method now have their realpath property set correctly.

Added DOpus.favorites script property which returns a Favorites object, allowing the user-defined favorite folder list to be queried and modified.