25 March 2017

Directory Opus 12.4.1 (Beta)

Directory Opus 12.4.1 (beta) is now available for all Opus 12 users.

This is a preliminary, beta release. Translations may not be fully up-to-date and some English text may appear in non-English versions.

This is an Opus 12 update. If you are using Opus 11 or earlier then you should not install this beta unless you want to upgrade to Opus 12.

Download:

Changes:

  • File and folder labels can now be set as "pin to top". Any file with a label assigned to it that specifies pin to top will sort at the top of the file list, irrespective of the overall sort order. There's a new default Status category label (Pinned), although you note you'll need to reset the Preferences / Favorites and Recent / Labels page to defaults to see this in an existing configuration.
  • The GIF plugin now fully supports the Expand/Scroll mouse button option in the viewer, including quick rendering and animation support.
     
  • The rename dialog new name field now allows {scp:...} to be typed, to allow script column values to be used in the rename operation (previously the colon would be blocked).
  • The viewer was failing to indicate if the first image it opened with was marked unless the "Display Marked Pictures pane when a picture is marked" option was turned on.
  • Fixed a fairly obscure problem which could cause inline rename to be cancelled automatically when middle-clicking on a file in power mode with an OnActivateLister script installed that automatically sets the active lister to be source.
  • File tooltips triggered by holding down the control key are now clipped to the file display to prevent them appearing off-screen if the display is scrolled too far horizontally.
  • Fixed a problem with inline rename where the file extension could incorrectly be displayed (if it was hidden) when moving from one filename to the next using the cursor keys.
  • Fixed drag image/tooltip going behind submenus when dragging to toolbar in customize mode.
  • When clearing a collection using dopusrt.exe /col clear, sub-collections are no longer removed (previously they would be removed from the list, but not from disk, which meant they would come back after a restart). You can now use /col clear /full <name> to remove all contents including sub-collections.
  • The "Pin current folder to Quick Access" context menu command (when right-clicking on the root of the Quick Access folder in the tree) now works

  • Scripting:
    • In the OnOpenLister script event, it's now possible for the event to fire after a Lister has finished opening (including opening all its tabs) as well as before. If the new OpenListerData.after property is False, you should return True from the event handler. The event will then be called again with OpenListerData.after set to True once all the tabs are open.
    • The ImageMeta.latitude and longitude properties now return decimal coordinates. The coords property now returns a string containing latitude,longitude as decimal coordinates.

20 March 2017

Windows 10 update causes Movie thumbnail crash

A recent Windows 10 update has introduced a bug in the Windows video components which causes Opus, and many other programs, to crash when handling video files.

Update:


Microsoft have released KB4015438 which looks like it should fix the cause of the crash.

Easiest solution:


If you download and install Directory Opus 12.4 as of today (March 20th), you should not need to do anything extra.

We just updated the 12.4 installer so that the workaround below is done automatically.

Quick workaround for earlier versions:


If you are on an earlier version of Directory Opus, or downloaded 12.4 before today, then you can do this to avoid the crash:

  • Go to Settings -> Preferences / Viewer / Plugins.
  • Select the Movie plugin.
  • Click Configure.
  • If the Generate Thumbnails option is on, turn it off.
  • Click OK in both windows.


You will still get thumbnails for movie files, just via a different route which does not trigger the bug, and without the film sprockets on the sides.

More detail about the bug:


Recent Windows 10 updates have introduced a crash in the AreDvdCodecsEnabled API. We do not call that API directly, but when we ask the Windows video components to handle an MP4 or MOV file, those components use the API and trigger the crash. Presumably this is because the components are disabled on some non-media versions of Windows, and they need to check.

This bug in Windows has been causing crashes in multiple programs, not just Directory Opus:

  • Several Directory Opus users reported crashes with MP4 or MOV thumbnails after recent Windows 10 updates. Our own investigation of crash dumps sent by our users pointed to the AreDvdCodecsEnabled API.



  • Microsoft forum thread about crashes in AreDvdCodecsEnabled introduced in KB3216755, which mentions PowerDVD, DVB Viewer, Power Media Server and even Windows Media Player. Opening a folder containing MPEG2 files crashes dllhost/COM Surrogate, with reports of it still happening within the last couple of days and more recent updates.
  • Plex ran into similar problem with an update in January (possibly a Windows Insider preview version of the update which has now been rolled out to normal Windows 10 users). The Plex team found their own workaround and Plex is no longer affected.
  • Another Plex thread which mentions several other programs also having problems, and has some more detail. KB3216755 seems to be the cause, and is included in a recent roll-up update.

Given the widespread problems the Windows update is causing, we expect Microsoft are aware of it and will fix it soon, but the workaround at the top of the post should let you avoid the problem for now, at least in Directory Opus. You may find other video software is still affected, and it's also possible you may still find problems in other parts of Opus (e.g. playing videos in the viewer panel, depending on which viewer is used) until the Windows 10 bug is fixed.

Other movie thumbnails crashes:


If you still get movie thumbnail crashes, or if you had been seeing them for a while, then the Windows 10 update may have added to the problem but won't have been the only cause. You probably have a bad video codec or splitter DLL installed on your machine.

The guide, HOW TO: Enable/fix playback of various media formats in Opus, has suggestions on fixes for more general problems with video files.

Another guide, Crash, exit or high CPU when viewing certain directories, has more general troubleshooting steps should you be seeing crashes with certain files or folders.


15 March 2017

Directory Opus 12.4

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.
  • Added Set RELATIVESIZEGRAPHS and Set RELATIVEDATEGRAPHS commands to toggle the Preferences / Folders / Folder Display / Show relative graphs behind size columns and Show relative graphs behind modified date columns options.
  • 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).
  • Added Preferences / Viewer / Viewer Pane / Expand and scroll (Left double-click) option.
  • The (simple) Select Files dialog now has a drop-down history of previously used selection patterns.
  • The Advanced Find function can now correctly match .wav files by sample rate, bit rate, duration and codec.
  • 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.
  • Fixed initial enabled/disabled state of Always Highlight Full Row checkbox when the Preferences / File Display Modes / Details page first opens.
  • Fixed problem with embedded command in a newly opened Lister that opens multiple new tabs; in some cases the new tabs could open in the original Lister.
  • Fixed problem with Go TABGROUPSAVE command failing when selecting an existing folder from the dropdown and then appending a new name to it.
  • Fixed problem with sequential numbering rename - if rename of a file failed and was retried multiple times before succeeding, the number assigned to the file was being incremented for every retry.
  • The Rename preview now correctly indicates that files in subfolders aren't going to change if their parent folder is deselected.
  • Fixed rendering issue in the Rename dialog's macro editor when visual styles (themes) are disabled.
  • The Archives plugin now allows you to add and remove file extensions associated with most of its archive types.
  • Fixed Advanced Filter Control Compare clause layout issue in non-English (when "Size" string is longer than "Date" string).
  • The folder thumbnail "background" that Opus renders now scales for DPI.
  • Inline rename on MTP devices (when using native MTP support) was broken.
  • 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.
  • Improved folder tree's handling of the Windows 10 Quick Access folder.
  • 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 Rename Find and Replace mode presets saved from Opus 12 always having the Ignore Extension checkbox turned on when re-loaded.
  • A @hideif test for a variable now works when the condition is negated (e.g. @hideif:!$glob:abc).
  • When files are filtered out of a recursive copy operation the progress dialog now adjusts the "total" counts to compensate.
  • Lister Themes now save and restore the Use for lister column headers and Use for lister scrollbars options in Preferences / Display / Colors and Fonts / Pane borders.
  • Fixed a bug where a toolbar button click could be ignored if at the same time a script triggered a particular change to the Lister (e.g. changed its state from source to destination).
  • Fixed a problem where the Delete confirmation dialog would fail to activate if the command was preceded by a @confirm line.
  • The regular expression option in Folder Formats / Show filters and Hide filters wasn't being respected when a folder format was loaded in a file display.
  • Fixed DPI bug in Flickr sync dialog.
  • Fixed incompatibilities reading some PDF metadata.
  • A picture displayed in the viewer using the Show VIEWERCMD=open command is now properly rotated for its EXIF value if the option is turned on in Preferences.
  • Fixed a Flat View / Grouped sorting error.
  • Fixed appearance of non-functional "Share with" context menu item on the File menu.
  • Fixed problem importing some filetype settings from filetype export files.
  • 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.
    • Added DOpus.smartfavorites property to give access to the smart favorites data.
    • Added def_value property to all script objects, which allows the default value to be accessed like a normal property to avoid weirdness with some script languages.
    • Added Show VIEWERCMD=dragsel command which lets a script trigger drag scroll/select/expand actions when responding to an OnViewerEvent mouse event.
    • Added Set NOSCRIPT argument; currently only used with the Set LISTERCMD=tofront command, to prevent OnActivateLister scripts from firing.
    • Added DOpus.favoriteformats script property which returns a collection of user-defined favorite formats (Format objects).
    • Added DOpus.Filters script property to provide access to global filter settings.
    • Added BusyIndicator script object.

9 March 2017

Directory Opus 12.3.8 (Beta)

Directory Opus 12.3.8 (beta) is now available for all Opus 12 users.

This is a preliminary, beta release. Translations may not be fully up-to-date and some English text may appear in non-English versions.

This is an Opus 12 update. If you are using Opus 11 or earlier then you should not install this beta unless you want to upgrade to Opus 12.

Download:

Changes:

  • 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).
  • Added Preferences / Viewer / Viewer Pane / Expand and scroll (Left double-click) option.
  • Added BusyIndicator script object.
     
  • 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.