16 December 2020

Directory Opus 12.23

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

New versions are often made available several days before they will be detected by the update checker. You can download Opus using the links below if you don't want to wait.


The following changes were part of the 12.22.1 - 12.22.3 beta updates:

  • Added the Preferences / Folders / Folder Behavior / Display extended sync attributes for cloud folders option to allow cloud storage "extended sync attributes" to be disabled; mainly because OneDrive seems sometimes to be unacceptably slow when retrieving them. When this is turned off, only online/offline status will be reflected - when turned on, other sync states like "currently syncing" will be shown.
  • Fixed some thumbnail types (folders, icons, text thumbs) not being regenerated if you changed from one size to another, for certain size jumps (e.g. 256 to 512).

  • Shell folder thumbnail generation is now limited to a single thread at a time to work around Windows 10 hanging thumbnail threads when multiple folder thumbs are requested at once. (This issue also affects File Explorer, and if Explorer triggers the issue it looks like it can cause problems for Opus and other software. We can't do much about that). This doesn't affect thumbnails that Opus itself generates.

  • The Select command has a new IGNORECHECKBOXMODE argument which allows you to change the focus item and literal selection while in checkbox mode, where normally it would check/uncheck items.
  • The Prefs command has a new SCRIPTDISABLE argument which allows you to toggle scripts via toolbar buttons etc.
  • The way Details mode selects the first (or last) item if it already has focus and you push up (or down) on the keyboard now also applies to Thumbnails, Tiles, List and the Icon modes.
  • Increased the maximum number of linked tabs to 16 (from 8). 
  • Fixed rating (and possibly other metadata) not updating in the file display for some file types (e.g. gif) if the Update last modified file dates when setting metadata in NTFS ADS option was turned off.

  • Fixed thumbnail spacing's horizontal value affecting vertical spacing as well.

  • Fixed thumbnail zip overlay drawing full size over very small thumbnails.

  • When double-clicking shortcuts, Opus now ignores verbs added to the .lnk file type. (Fixes double-clicks on folder shortcuts opening a new window instead of in the current window, with Quick Access Popup's default configuration)
  • Improved handling of extremely large images in the viewer.
  • Improved the viewer's Expand/Scroll mode with very large images.
  • Product Name, and similar strings read from exe/dll version resources, now have excess whitespace trimmed.
  • If file extensions are hidden, and the Name field is the last (or only) sort column, file extensions are now used to break the tie in sort order when two or more files have the same name stem. Previously the final sort order was indeterminate in that situation.
  • Fixed an issue sorting filenames beginning with 0 without any other numbers (e.g. 0000 blah vs 00 blah). The one with most 0s now comes first.
  • Increased the maximum length of the Name field (and similar other fields) in the advanced filter control to 1024 (was 260).
  • Changed the default Images file type group context menu's Convert Image command to prompt before replacing files. Note that this will only affect new configs. To change this in an existing config, go to Settings > File Types > File Type Groups > Images > Context Menu and edit the command there to remove the REPLACE argument.
  • Fixed problem when Process file changes in background tabs was turned off, where a background tab would fail to notice a change if only a single change occurred before it was brought to the front.
  • The Select MAKEVISIBLE=immediate argument now works in conjunction with FIRST and LAST.
  • Fixed non-existent drive letters under This PC if there was junk registry data under HKCU\Network.
  • Fixed crash when one of the "ignore diacritics" options encountered an invalid Unicode character.
  • Fixed Properties FORMATLIST always adding a separator after the buttons it generates.
  • Fixed a crash which could be triggered by right-clicking on the desktop with a context menu added in a particular way.
  • Fixed sorting by latitude and longitude.
  • Fixed problem opening shortcuts to libraries from the desktop with Explorer Replacement turned on.
  • Using @toggle:update now works to update the state of buttons on viewer toolbars (e.g. buttons which appear active when a variable is set).
  • Buttons which toggle VFS Plugins now indicate their current state.
  • Buttons which toggle Viewer Plugins now indicate their current state.
  • The scripting LoadImage methods, when an image fails to load, now return an empty result instead of throwing an exception, for easier error handling.
  • Fixed a problem with could cause a script using Dlg.WatchTab to receive erroneous events if a system folder like Quick Access was visible
  • The Vector script object has a new append method to add the elements of one vector to the end of another.
  • The DOpusFactory.UnorderedSet method now works correctly.
  • The ScriptCommand.icon property now supports external icons/images as documented.
  • The DOpus.LoadThumbnail scripting method now requests thumbnails from OneDrive (etc.) for offline files, instead of causing the files to be downloaded for thumbnail generation.
  • Fixed scripting item.Update not updating the fileattr object (only the attr and attr_text properties).
  • Fixed problem when two or more OnOpenLister scripts conflict as to whether they return true or not to be called a second time.
  • Fixed problem with FileGroup.members returning the wrong member list in some cases.

The following changes are new for 12.23:

  •  Updated libraw from 0.20.0 to 0.20.2.
  • Modified Raw Digital Camera plugin to default to the old dcraw code for .ORF images, due to problems found with images from some cameras and libraw.
  • Scripting: Fixed some cases where item.realpath returned the path as a string instead of a Path object as documented.