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.
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 Set NOSCRIPT argument; currently only used with the Set LISTERCMD=tofront command, to prevent OnActivateLister scripts from firing.
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.
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.
Directory Opus 12.3 contains the following new changes:
Changes:
CLI DOSPROMPT command now works from a context menu in the tree (previously it would always be disabled).
The script Date.Sub method now works properly for years and months.
Fix for item in the Preferences / Favorites and Recent / Labels list sometimes becoming unselectable if you renamed one item and then clicked another in the list before clicking anywhere else.
If you use Settings > File Types with the File Types dialog already open but minimized, it will now be restored.
Directory Opus 12.3 also contains all the changes from the 12.2.x beta releases:
From 12.2.7:
The Favorites command has a new BRANCH argument which allows you to specify the branch of the favorites tree to add new favorites to. If used with the Add To Favorites dialog, you can make it select or create a particular branch by default but still be able to change it when the dialog appears.
In the Add To Favorites dialog, you can now create nested branches with fewer clicks. e.g. Click New Branch and type Cat\Dog to create Cat below the selected branch and Dog below that.
Added Select MAKEVISIBLE=immediate option, which activates the MAKEVISIBLE action immediately instead of after a small delay (and also disables smooth scrolling).
Added Select NEXT=nodeselect and PREV=nodeselect keywords, which prevent the current file from being deselected before selecting the next/previous file.
When adding a submenu to a filetype's context menu, you can now make the submenu also act as a 'menu button' that runs the first command within it when it's clicked. To do this, right-click on the first child menu item and turn on the Button option. Note this only works if the first command in the submenu is an 'Opus-only' command.
The right-click menus for Favorites items now hide the Rename, Cut and Delete commands in the folder tree, toolbars and breadcrumbs menu. (Delete was already hidden in the case of toolbars).
@disablenosel and similar command modifiers now work if they are preceded by another modifier line in the function that's been commented out.
The Save Toolbar Set dialog now displays a drop-down of existing toolbar set names to choose from (as well as entering a new one).
The standalone viewer now respects configured Pane Border colors for the Marked and Metadata panel headers.
File infotips will no longer appear while inline rename is active, since they were easy to trigger by accident and sometimes appeared on top of the rename field.
Fixed bug where a queued Copy As function would forget the new name you had entered for the file if the copy was initiated via drag & drop.
Fixed problem with the Copy HERE argument picking the wrong folder when used in flatview.
Fixed problem with Rename which meant the New Location column in the preview could flicker on and off as you scrolled through the preview list.
Fixed incorrect drag & drop tooltip in some situations when dragging over the Favorites root or branches in the folder tree.
The viewer now correctly detects when the image it's viewing has been renamed if the file is located in a junction or linked folder.
Scripting:
Added Prefs NOSCRIPT argument; when used with the LAYOUT argument it prevents OnOpusLister/OnOpenTab script events from firing for the new Listers opened by the layout.
Dialog events triggered by control initialization are no longer passed through to the script.
From 12.2.6:
Added Show VIEWERCMD=cmdbar command which shows a FAYT-style command field in the viewer.
Added Preferences / Folder Tabs / Options / Lister closes when last tab closes option.
The @hidenosel and @disablenosel modifiers can now be negated, e.g. @hidenosel:! would hide a button if anything at all was selected.
When using the metadata panel to set an image's last modification timestamp, Opus now sets the EXIF DateTime tag to the same value automatically.
dopusrt.exe has a new /vcmd argument which lets you send commands to the last active viewer window.
Default toolbars now include a PowerShell Here menu item which runs the new CLI DOSPROMPT=powershell command. CLI DOSPROMPT=powershellISE is now also supported, for opening the PowerShell ISE instead of a basic PowerShell prompt.
In the viewer, you can now press Ctrl+TAB to switch the focus from a metadata field back to the main viewer window, and Ctrl+TAB to switch focus back to the same metadata field again.
In the button editor, increased the length of strings which the Label and Tip fields will accept.
Navigating to locked BitLocker devices now automatically prompts to unlock them on Windows 8 and Windows 10. (This already worked on Windows 7.)
When selecting icons for Labels and Collections, the icon path is automatically made relative to folder aliases if possible. (e.g. /home for where Opus is installed, /dopusdata for your config folder, /programfiles, etc.) This helps make your configuration more portable.
Paths to background images are now stored relative to standard aliases if possible, for better portability. (This was already the case for the Images folder in the configuration, but now works with more folders.) Paths to external toolbar and context menu icons are now stored relative to aliases as well.
The various options (color, image, label state, etc) on the Customize / Toolbars page for the standard toolbars were editable in Opus Light but not saved. These settings are now preserved correctly.
Preferences / Folder Tree / Options / Expand selected branch when changing tabs now also applies in a dual file display, with a single shared folder tree, when you change from one side to the other.
If a Folder Format specifies a background image that no longer exists, the effect is the same as if No Image was chosen in the Folder Format editor, but the editor instead displayed Default Image. The editor now displays No Image to match the actual behavior.
The Preferences search function now understands some alternate English spellings (e.g. color/colour, behaviour/behavior).
The Rename PRESET=last command was incorrectly documented as running immediately rather than opening the rename dialog. The docs have been corrected to reflect the actual behaviour. Also added Rename PRESET=!last which actually does let you run the last rename command without opening the rename dialog.
The rename preview no longer shows items as ghosted if their location has changed without the name changing too.
The rename dialog now updates any script-added custom fields correctly when loading a preset that has values for them saved, even if the control had previously been added by a different script.
The Replace dialog now respects the preferences flag to auto-rotate thumbnails using EXIF data.
Folder tree highlight option Use color from tab now works for tab colors which come from folder formats.
The control used for the list of Preferences pages, and in a few other places, now works better with dark Windows themes.
The command editor menus for the Prefs LAYOUT command no longer hide hidden layouts, since that's one place you would normally still want to see them.
Scrolling an image in the viewer by click+drag now "tracks" the image with the mouse when zoomed unless the control key is held down.
Fixed the Preferences dialog opening and then immediately closing if no Listers were open and the program was set to automatically close when no Listers were open. Preferences (and several other windows) will now keep the program alive similar to Lister windows.
Fixed rendering issue relating to size/date graphs introduced by previous beta.
Fixed an issue with miscalculation of ISO week numbers in some cases.
Fixed the breadcrumbs path field getting a bit confused if you were in a folder below Quick Access and then navigated directly to the real parent of that folder.
The Date.Format method can now be passed flags to override Preferences settings like day names in dates, when formatting dates and times according to the user's locale.
Added script Item.Update method to update an existing Item object's size/date/attributes if the file has been modified on disk.
The scripting Item.Labels method's category filter now works properly with user-defined categories.
Fixed a (rather esoteric) problem which meant the GetSizes MD5 command, if run from a script, did not work correctly with files selected.
From 12.2.5:
Tab groups now obey the Preferences / Folders / Auto-Loading settings. The new TABGROUPFORCE switch can be used with the Go TABGROUPLOAD command to load a tab group and override the auto-load settings.
Fixed/improved a problem with native MTP support where creating folders (or sometimes even reading a directory) could cause Opus to freeze until the MTP device was unplugged.
Fixed problem where drag & drop of folders from a library to another Lister would not correctly count the files for the progress indicator.
Fixed line spacing not changing if you switched between Details and Power modes (without another mode in between) and the two had different line spacings set.
Fixed cosmetic issue when scrolling up in Tiles mode with certain combinations of visual settings.
Right-click on the viewer's title bar now shows the normal window menu rather than the viewer's context menu.
Image conversion no longer fails when updating EXIF data in JPG and PNG images if the destination requires UAC elevation to modify. Also changed what happens when the destination is an FTP site or Zip archive or similar, where the EXIF data will be dropped on conversion now (as it was in Opus 11) instead of always causing the operation to fail.
The viewer pane now only tries to display .URL files using a web browser if they point to HTTP, HTTPS, FTP or FILE URLs. In particular, shortcuts to Steam apps/games will no longer be triggered by the viewer; you'll only see the text content of the shortcuts instead.
Fixed details/power mode rendering issue with graphs (date/size) behind another column being truncated in some cases (e.g. if the column was set to left-justify and the width of the graph was greater than the width of the text).
If, while a folder is being read, you press a key that triggers the FAYT field, the FAYT will no longer automatically close when the folder read finishes.
Fixed not being able to change the file display toolbar back to the default in Preferences / File Displays / Border on a clean install of Opus Light.
The Customize / Keys list now includes all default toolbars in the Light version so that you can easily see their hotkeys and check for clashes (previously they would only be shown if the toolbar files actually existed on disk, which would only happen if you had run the Pro version before switching to Light).
Made a change which stops the Target column showing an out-of-date value for .url shortcuts if the .url shortcut file was edited manually (e.g. in a text editor) rather than through the Properties dialog.
Scripting:
Added OnListerResize script event.
The Metadata object now returns a Date object for date values (e.g. Metadata.image.datetaken) rather than VT_DATE variants.
Added Item.Labels method which returns a Vector<string> of all labels applying to an item.
From 12.2.4:
Added an option to Preferences / File Operations / Progress Indicators to disable the progress indicator speed graph.
When copying two or more files the progress dialog now shows the total bytes copied / remaining as well as the values for the current file.
@if, @disableif and @hideif can now test if a command would be enabled rather than toggled. E.g. @if:enabled Go GROUPEXPAND=*.
It's now possible to assign the "stop on match" label to a file by itself, to prevent wildcard/label filters from applying to it without actually specifying a label explicitly.
Added workaround for Google Drive opening its folder using the \\?\ prefix even when it is unnecessary. (Things worked, but it was unsightly.) The prefix is now removed if it isn't needed.
The folder tree and file display should now update immediately in response to assigning labels to drive roots under the This PC (My Computer) folder.
The Prefs STYLESAVE dialog now asks if you want to replace an existing style instead of failing.
The Go DRIVEBUTTONS command would incorrectly omit MTP devices if any arguments were used (unless "mtp" was specified as well).
If the viewer custom title contained %L (for file label), the viewer would not correctly update file labels / status icons when advancing to the next image.
The TGA plugin's minimum size limit has been reduced from 45 bytes to 19 bytes, to allow extremely small TGA files to be viewed.
The Preferences / Favorites and Recent / Jump List page now supports Layouts that have been organised into folders. Note that on the jumplist itself they will appear as a flattened list.
Fixed problem that could cause problems with FTP in certain specific situations (e.g. with two single Listers, clicking the Up button in the FTP Lister while copying a file to it would cause the transfer to be aborted).
Music Comment in the file display and the scripting mp3comment field will now return comments up to 1000 characters long before truncation, instead of the old limit of 100.
If Rename is used in simple mode (Rename SIMPLE) and a wildcard pattern isn't entered, the rename dialog will now re-open automatically allowing the next selected file to be renamed (compatibility with Opus 11).
The rename script editor now works correctly in the Light edition.
Moving the mouse over the text viewer no longer causes the cursor to flicker between pointer and caret.
Fixed some problems with image marking in MTP folders.
Scripting:
Added OnFlatViewChange script event, to allow a script add-in to detect changes to the flat view mode in a tab.
Script dialogs now generate resize events when the window is resized. Must be enabled by setting Dialog.want_resize to True. Msg.cx and Msg.cy provide size information.
Added DialogListColumns.GetColumnAt method.
Added DialogListColumn.resize property - set to True to specify a column that auto-resizes with the listview.
Added NOSCRIPT argument to the Close command to stop the command triggering the OnCloseLister event.
The StringTools.Decode script method now skips over the UTF-8 BOM when decoding a Blob containing UTF-8 encoded data.
Fixed problem with Rename script custom fields where default field values would not be valid the first time the rename preview was refreshed.
The script Command object now correctly runs functions asynchronously if SetModifier("async") has been called.
Fixed bug which could cause the program to crash if a script dialog encountered a script error while processing the dialog message loop.
Fixed problem with OnCloseLister script event causing infinite loop/stack overflow if the event handler invoked the Close command to close the same Lister.
From 12.2.3:
Reduced overhead of the Copy progress dialog when copying thousands of tiny files.
Fixed incorrect icons showing in the rename preview list (bug introduced in 12.2.1 Beta).
Fixed Preferences ignoring the "show built-in aliases" checkbox when first opening the Aliases page if no user-defined aliases exist.
Fixed problem with script dialogs that could lead to a script still processing messages in its message loop after a dialog had closed (which depending on the script and the exact timing, could lead to a script error).
A button-menu with "always enable drop-down" set would change the spacing between its label and drop-down arrow when the main button part became disabled. The spacing now stays the same in both states.
Added rename_default_focus option to Preferences / Miscellaneous / Advanced, to control which field in the Rename dialog gets input focus by default (scripts can override this).
Added Assume UTF-8 without BOM option to text viewer configuration.
Inline rename in the Folder Tree now supports the same case-changing hotkeys as most other rename fields in the program. (Ctrl+L for lowercase, Ctrl+U for uppercase, Ctrl+W to capitalize words and Ctrl+P to capitalize just the first letter).
The recently added @hideif and @disableif modifiers can now test for set variables like @if can (e.g. @disableif:$MyVar).
Scripting:
Added opacity property to the Dialog object (and also the dialog editor), allowing a dialog's opacity level to be controlled.
Added Dialog.SetTimer and KillTimer methods, which allow scripts to create recurring timer events.
Added Dialog.AddHotkey and DelHotkey methods so script dialogs can implement hotkeys (keyboard accelerators).
Added List View control type to script dialogs - this is like a List Box except it supports multiple columns and different display modes. To support this, the Control object has new columns and mode properties and the DialogListItem has new subitems and icon properties.
Added Lister.state property to report the source/destination/off state of a non-dual display Lister.
Static Text controls in script dialogs can now display images, by setting the Image property to true in the dialog template (the control's label then becomes the image filename).
Script dialogs can now accept files via drag & drop if the Accept Drops property is set in the dialog template. Dropped files will generate a drop event and the new Msg.object property provides a Vector of Item objects representing the files that were dropped. If the drop was over a control the Msg.control property will identify the target control.
Added Control.MoveItem method to move an existing item in a List Box, Combo Box or List View control.
Added the FSUtil.Drives method which returns a Vector of Drive objects, providing information about the drives present in the system.
The scripting File.Read method did not correctly read the entire file if not passed a size.
The scripting DOpus.Language property now always returns a lowercase version of the language name, to simplify testing against it.
From 12.2.2:
Fixed error introduced in 12.2.1 which broke the @toggle:if modifier when testing variables.
Fixed error introduced in 12.2.1 where customized filetype drag & drop events did not work as expected.
Explorer Replacement is now stricter about finding existing windows/tabs when another program requests the user profile desktop directory and the Desktop virtual folder is showing in a lister (or vice versa). In specific situations, this will improve the response of "show in folder" options in other programs.
Fixed problem with {sel:xxx} status bar date codes, which displayed UTC instead of local time.
Improved the way the Update Checker shows you the folder with the downloaded installer, and similarly how the File Type Diagnostic utility shows you the zip file it makes.
Fixed crash introduced in 12.2.1 when using filters on script columns.
Fixed crash if your toolbar had a Set ENABLELABELFILTER button added to it but Preferences / Favorites and Recent / Label Assignments was completely empty.
From 12.2.1:
Added @disableif and @hideif command modifiers, that let buttons be hidden or disabled based on the result of a function (e.g. @hideif:!Set DUAL=Toggle to hide a button when not in dual-display mode).
Added @disableifpath and @hideifpath command modifiers, to allow buttons to be hidden or disabled based on the current source path.
Set COLUMNSADD and similar commands can now specify a position for the column and flag that it is only to be used if the column isn't already present. Prefix the position with ! to do this. For example Set COLUMNSADD=Size(!2) would leave the Size column as-is if it already exists, and add it in position 2 otherwise. This also works with relative positions: Set COLUMNSADD=Status(!1+Name).
Adding an ! before various conditional modifier tests now work to negate the tests. This has been added for @if:!<blah>, @ifset:!<blah>, @ifpath:!, @ifpathr:!, @ifexists:! and @keydown:! (plus the new @disableif, @hideif, @disableifpath and @hideifpath modifiers).
Added Preferences / Viewer / Appearance / Show status icons option to display current image's status icons in the viewer.
Added Custom title option to Preferences / Viewer / Appearance.
The font used for the rename macro builder is now configurable via Preferences / Display / Colors and Fonts.
Added Preferences / Folder Tree / Options / Expand selected branch when changing tabs option.
A new setting, Preferences / Miscellaneous / Advanced: context_menu_icon_set, allows you to change the icon set used when generating the Add to Archive and similar context menu items within Opus. For example, if you want the menu items to use the standard 16x16 size (32x32 at 200% DPI, etc.) then you can now do that, assuming a suitable icon set is installed.
The Target clause in the advanced filter control now lets you limit matches to shortcuts only to files or only to folders.
The breadcrumbs path field has a new dragsafetyoff argument which allows you to copy or move from the breadcrumbs field using drag and drop, without having to explicitly hold Ctrl or Shift. Without the argument, drag and drop from breadcrumbs defaults to creating shortcuts, to avoid accidents.
The Customize / Keys list now displays a column showing which Toolbar a key comes from (if applicable). The toolbar name is shown in italics if its Always enable hotkeys option is turned on. The Locate Toolbar button will now open any sub-menus necessary to locate the button that contains the selected hotkey.
The Join dialog now adds an output filename by default.
Minor improvements to the Split dialog. It now remembers the last size and UUEncode settings you used. "Automatic" size on non-removable devices is now 100MB instead of 1.44MB. Handles splitting to the current folder (vs a destination folder) better.
Moved the Start Folder Tree at Preferences option from Folder Tree / Options to Folder Tree / Contents.
RAR decompression uses UnRAR.dll again unless overridden. It is faster for some operations and a recent update added support full timestamp accuracy and all three timestamps (Created, Modified, Accessed).
The Preferences option Launching Opus / Explorer Replacement / Open external folders in a new tab now routes new tabs to the most recently used Lister, rather than the source Lister.
In the advanced button editor, the help button (or F1) will open the page about command modifiers if clicked while on a line for one.
Scripting:
In script buttons launched via the viewer, clickData.Func.Dialog now has the viewer as its parent window and not the active file display.
Fixed problem where the Metadata object could return outdated data in some cases.
Group boxes in script dialogs did not refresh properly when their label was changed.
The Dialog object's x and y properties can now be set after the dialog has been shown, to move the dialog around the screen.
The Dialog object now has cx and cy properties to get and set its size (when the dialog is resizeable).
Added Dialog.SavePosition and Dialog.LoadPosition methods, to save and load dialog window position.
Added Dialog.Vars method which returns a Vars object associated with the dialog.
The Control.RemoveItem method now accepts -1 to clear the entire listbox/combo contents.
The Viewer object has new title property which allows the title in a viewer to be changed from a script.
Added fg, bg and style properties to the Control object. Currently only supported for static controls.
The Command.AddFiles method can now be given a Vector containing Path or strings (full paths), in addition to the Item objects which it previously allowed.
(Experimental) Fix for missing separators in some situations, due to menu items which get hidden. If you notice extra or missing separators, or anything wrong with toolbars in menus, please report it so we can investigate.
Fixed problem with image metadata writing not working on Windows XP.
Fixed problem when using the Show or Slideshow commands on a folder. The viewer correctly enumerated the folder's contents, but also tried to display the folder itself as the first image, resulting in an error message.
Fixed toggling checkbox mode not adjusting Auto-Fill column sizes appropriately.
Fixed not being able to drag folders from the breadcrumbs field and drop them into file displays.
Fixed file displays not always using the drag & drop source's preferred action (link, copy, move) if one was specified and no key was held down to override it.
Fixed Click selected tab to go to previous one option interfering with ctrl-clicking folder tabs to link them.
The Advanced Filter Type clause used raw names instead of user names for file type groups - didn't affect the default groups but user-created groups would appear as {GUID} strings in the drop-down.
If the Copy command was launched with the default Ctrl+1 hotkey it wouldn't prompt for a filter when filter mode was on.
Fixed Lister not always coming to the front if you activated it by clicking on an inactive folder tab, where one tab had a warning banner and the other did not.
Fixed folder tabs opening next beside the active tab instead of the end when dragging folders or tabs to the end of the tab bar, if certain Preferences settings were combined.
Dragging drive roots (e.g. "C:\") from breadcrumbs to the tab bar is no longer blocked and can be used to open them in new tabs.
The Properties SETLABEL command would ignore the ADDLABEL switch if a) a category filter was specified and b) SETLABELTOGGLE wasn't also used.
Fixed problem with layout separators appearing in the wrong positions.
Change in 12.2 would cause replace dialog to move to the right on the second and subsequent invocations if the generated file description was over a certain length.
Fixed Inherit columns from other matching formats folder formats option causing the sort order to be inherited/replaced as well.
Fixed crash if a script passed Command.AddFiles a Vector containing strings (instead of file Item objects).
The Favorites command has a new BRANCH argument which allows you to specify the branch of the favorites tree to add new favorites to. If used with the Add To Favorites dialog, you can make it select or create a particular branch by default but still be able to change it when the dialog appears.
In the Add To Favorites dialog, you can now create nested branches with fewer clicks. e.g. Click New Branch and type Cat\Dog to create Cat below the selected branch and Dog below that.
Added Select MAKEVISIBLE=immediate option, which activates the MAKEVISIBLE action immediately instead of after a small delay (and also disables smooth scrolling).
Added Select NEXT=nodeselect and PREV=nodeselect keywords, which prevent the current file from being deselected before selecting the next/previous file.
When adding a submenu to a filetype's context menu, you can now make the submenu also act as a 'menu button' that runs the first command within it when it's clicked. To do this, right-click on the first child menu item and turn on the Button option. Note this only works if the first command in the submenu is an 'Opus-only' command.
The right-click menus for Favorites items now hide the Rename, Cut and Delete commands in the folder tree, toolbars and breadcrumbs menu. (Delete was already hidden in the case of toolbars).
@disablenosel and similar command modifiers now work if they are preceded by another modifier line in the function that's been commented out.
The Save Toolbar Set dialog now displays a drop-down of existing toolbar set names to choose from (as well as entering a new one).
The standalone viewer now respects configured Pane Border colors for the Marked and Metadata panel headers.
File infotips will no longer appear while inline rename is active, since they were easy to trigger by accident and sometimes appeared on top of the rename field.
Fixed bug where a queued Copy As function would forget the new name you had entered for the file if the copy was initiated via drag & drop.
Fixed problem with the Copy HERE argument picking the wrong folder when used in flatview.
Fixed problem with Rename which meant the New Location column in the preview could flicker on and off as you scrolled through the preview list.
Fixed incorrect drag & drop tooltip in some situations when dragging over the Favorites root or branches in the folder tree.
The viewer now correctly detects when the image it's viewing has been renamed if the file is located in a junction or linked folder.
Scripting:
Added Prefs NOSCRIPT argument; when used with the LAYOUT argument it prevents OnOpusLister/OnOpenTab script events from firing for the new Listers opened by the layout.
Dialog events triggered by control initialization are no longer passed through to the script.
Added Show VIEWERCMD=cmdbar command which shows a FAYT-style command field in the viewer.
Added Preferences / Folder Tabs / Options / Lister closes when last tab closes option.
The @hidenosel and @disablenosel modifiers can now be negated, e.g. @hidenosel:! would hide a button if anything at all was selected.
When using the metadata panel to set an image's last modification timestamp, Opus now sets the EXIF DateTime tag to the same value automatically.
dopusrt.exe has a new /vcmd argument which lets you send commands to the last active viewer window.
Default toolbars now include a PowerShell Here menu item which runs the new CLI DOSPROMPT=powershell command. CLI DOSPROMPT=powershellISE is now also supported, for opening the PowerShell ISE instead of a basic PowerShell prompt.
In the viewer, you can now press Ctrl+TAB to switch the focus from a metadata field back to the main viewer window, and Ctrl+TAB to switch focus back to the same metadata field again.
In the button editor, increased the length of strings which the Label and Tip fields will accept.
Navigating to locked BitLocker devices now automatically prompts to unlock them on Windows 8 and Windows 10. (This already worked on Windows 7.)
When selecting icons for Labels and Collections, the icon path is automatically made relative to folder aliases if possible. (e.g. /home for where Opus is installed, /dopusdata for your config folder, /programfiles, etc.) This helps make your configuration more portable.
Paths to background images are now stored relative to standard aliases if possible, for better portability. (This was already the case for the Images folder in the configuration, but now works with more folders.) Paths to external toolbar and context menu icons are now stored relative to aliases as well.
The various options (color, image, label state, etc) on the Customize / Toolbars page for the standard toolbars were editable in Opus Light but not saved. These settings are now preserved correctly.
Preferences / Folder Tree / Options / Expand selected branch when changing tabs now also applies in a dual file display, with a single shared folder tree, when you change from one side to the other.
If a Folder Format specifies a background image that no longer exists, the effect is the same as if No Image was chosen in the Folder Format editor, but the editor instead displayed Default Image. The editor now displays No Image to match the actual behavior.
The Preferences search function now understands some alternate English spellings (e.g. color/colour, behaviour/behavior).
The Rename PRESET=last command was incorrectly documented as running immediately rather than opening the rename dialog. The docs have been corrected to reflect the actual behaviour. Also added Rename PRESET=!last which actually does let you run the last rename command without opening the rename dialog.
The rename preview no longer shows items as ghosted if their location has changed without the name changing too.
The rename dialog now updates any script-added custom fields correctly when loading a preset that has values for them saved, even if the control had previously been added by a different script.
The Replace dialog now respects the preferences flag to auto-rotate thumbnails using EXIF data.
Folder tree highlight option Use color from tab now works for tab colors which come from folder formats.
The control used for the list of Preferences pages, and in a few other places, now works better with dark Windows themes.
The command editor menus for the Prefs LAYOUT command no longer hide hidden layouts, since that's one place you would normally still want to see them.
Scrolling an image in the viewer by click+drag now "tracks" the image with the mouse when zoomed unless the control key is held down.
Fixed the Preferences dialog opening and then immediately closing if no Listers were open and the program was set to automatically close when no Listers were open. Preferences (and several other windows) will now keep the program alive similar to Lister windows.
Fixed rendering issue relating to size/date graphs introduced by previous beta.
Fixed an issue with miscalculation of ISO week numbers in some cases.
Fixed the breadcrumbs path field getting a bit confused if you were in a folder below Quick Access and then navigated directly to the real parent of that folder.
The Date.Format method can now be passed flags to override Preferences settings like day names in dates, when formatting dates and times according to the user's locale.
Added script Item.Update method to update an existing Item object's size/date/attributes if the file has been modified on disk.
The scripting Item.Labels method's category filter now works properly with user-defined categories.
Fixed a (rather esoteric) problem which meant the GetSizes MD5 command, if run from a script, did not work correctly with files selected.
Tab groups now obey the Preferences / Folders / Auto-Loading settings. The new TABGROUPFORCE switch can be used with the Go TABGROUPLOAD command to load a tab group and override the auto-load settings.
Fixed/improved a problem with native MTP support where creating folders (or sometimes even reading a directory) could cause Opus to freeze until the MTP device was unplugged.
Fixed problem where drag & drop of folders from a library to another Lister would not correctly count the files for the progress indicator.
Fixed line spacing not changing if you switched between Details and Power modes (without another mode in between) and the two had different line spacings set.
Fixed cosmetic issue when scrolling up in Tiles mode with certain combinations of visual settings.
Right-click on the viewer's title bar now shows the normal window menu rather than the viewer's context menu.
Image conversion no longer fails when updating EXIF data in JPG and PNG images if the destination requires UAC elevation to modify. Also changed what happens when the destination is an FTP site or Zip archive or similar, where the EXIF data will be dropped on conversion now (as it was in Opus 11) instead of always causing the operation to fail.
The viewer pane now only tries to display .URL files using a web browser if they point to HTTP, HTTPS, FTP or FILE URLs. In particular, shortcuts to Steam apps/games will no longer be triggered by the viewer; you'll only see the text content of the shortcuts instead.
Fixed details/power mode rendering issue with graphs (date/size) behind another column being truncated in some cases (e.g. if the column was set to left-justify and the width of the graph was greater than the width of the text).
If, while a folder is being read, you press a key that triggers the FAYT field, the FAYT will no longer automatically close when the folder read finishes.
Fixed not being able to change the file display toolbar back to the default in Preferences / File Displays / Border on a clean install of Opus Light.
The Customize / Keys list now includes all default toolbars in the Light version so that you can easily see their hotkeys and check for clashes (previously they would only be shown if the toolbar files actually existed on disk, which would only happen if you had run the Pro version before switching to Light).
Made a change which stops the Target column showing an out-of-date value for .url shortcuts if the .url shortcut file was edited manually (e.g. in a text editor) rather than through the Properties dialog.
Scripting:
Added OnListerResize script event.
The Metadata object now returns a Date object for date values (e.g. Metadata.image.datetaken) rather than VT_DATE variants.
Added Item.Labels method which returns a Vector<string> of all labels applying to an item.
Added an option to Preferences / File Operations / Progress Indicators to disable the progress indicator speed graph.
When copying two or more files the progress dialog now shows the total bytes copied / remaining as well as the values for the current file.
@if, @disableif and @hideif can now test if a command would be enabled rather than toggled. E.g. @if:enabled Go GROUPEXPAND=*.
It's now possible to assign the "stop on match" label to a file by itself, to prevent wildcard/label filters from applying to it without actually specifying a label explicitly.
Added workaround for Google Drive opening its folder using the \\?\ prefix even when it is unnecessary. (Things worked, but it was unsightly.) The prefix is now removed if it isn't needed.
The folder tree and file display should now update immediately in response to assigning labels to drive roots under the This PC (My Computer) folder.
The Prefs STYLESAVE dialog now asks if you want to replace an existing style instead of failing.
The Go DRIVEBUTTONS command would incorrectly omit MTP devices if any arguments were used (unless "mtp" was specified as well).
If the viewer custom title contained %L (for file label), the viewer would not correctly update file labels / status icons when advancing to the next image.
The TGA plugin's minimum size limit has been reduced from 45 bytes to 19 bytes, to allow extremely small TGA files to be viewed.
The Preferences / Favorites and Recent / Jump List page now supports Layouts that have been organised into folders. Note that on the jumplist itself they will appear as a flattened list.
Fixed problem that could cause problems with FTP in certain specific situations (e.g. with two single Listers, clicking the Up button in the FTP Lister while copying a file to it would cause the transfer to be aborted).
Music Comment in the file display and the scripting mp3comment field will now return comments up to 1000 characters long before truncation, instead of the old limit of 100.
If Rename is used in simple mode (Rename SIMPLE) and a wildcard pattern isn't entered, the rename dialog will now re-open automatically allowing the next selected file to be renamed (compatibility with Opus 11).
The rename script editor now works correctly in the Light edition.
Moving the mouse over the text viewer no longer causes the cursor to flicker between pointer and caret.
Fixed some problems with image marking in MTP folders.
Scripting:
Added OnFlatViewChange script event, to allow a script add-in to detect changes to the flat view mode in a tab.
Script dialogs now generate resize events when the window is resized. Must be enabled by setting Dialog.want_resize to True. Msg.cx and Msg.cy provide size information.
Added DialogListColumns.GetColumnAt method.
Added DialogListColumn.resize property - set to True to specify a column that auto-resizes with the listview.
Added NOSCRIPT argument to the Close command to stop the command triggering the OnCloseLister event.
The StringTools.Decode script method now skips over the UTF-8 BOM when decoding a Blob containing UTF-8 encoded data.
Fixed problem with Rename script custom fields where default field values would not be valid the first time the rename preview was refreshed.
The script Command object now correctly runs functions asynchronously if SetModifier("async") has been called.
Fixed bug which could cause the program to crash if a script dialog encountered a script error while processing the dialog message loop.
Fixed problem with OnCloseLister script event causing infinite loop/stack overflow if the event handler invoked the Close command to close the same Lister.
Reduced overhead of the Copy progress dialog when copying thousands of tiny files.
Fixed incorrect icons showing in the rename preview list (bug introduced in 12.2.1 Beta).
Fixed Preferences ignoring the "show built-in aliases" checkbox when first opening the Aliases page if no user-defined aliases exist.
Fixed problem with script dialogs that could lead to a script still processing messages in its message loop after a dialog had closed (which depending on the script and the exact timing, could lead to a script error).
A button-menu with "always enable drop-down" set would change the spacing between its label and drop-down arrow when the main button part became disabled. The spacing now stays the same in both states.
Added rename_default_focus option to Preferences / Miscellaneous / Advanced, to control which field in the Rename dialog gets input focus by default (scripts can override this).
Added Assume UTF-8 without BOM option to text viewer configuration.
Inline rename in the Folder Tree now supports the same case-changing hotkeys as most other rename fields in the program. (Ctrl+L for lowercase, Ctrl+U for uppercase, Ctrl+W to capitalize words and Ctrl+P to capitalize just the first letter).
The recently added @hideif and @disableif modifiers can now test for set variables like @if can (e.g. @disableif:$MyVar).
Scripting:
Added opacity property to the Dialog object (and also the dialog editor), allowing a dialog's opacity level to be controlled.
Added Dialog.SetTimer and KillTimer methods, which allow scripts to create recurring timer events.
Added Dialog.AddHotkey and DelHotkey methods so script dialogs can implement hotkeys (keyboard accelerators).
Added List View control type to script dialogs - this is like a List Box except it supports multiple columns and different display modes. To support this, the Control object has new columns and mode properties and the DialogListItem has new subitems and icon properties.
Added Lister.state property to report the source/destination/off state of a non-dual display Lister.
Static Text controls in script dialogs can now display images, by setting the Image property to true in the dialog template (the control's label then becomes the image filename).
Script dialogs can now accept files via drag & drop if the Accept Drops property is set in the dialog template. Dropped files will generate a drop event and the new Msg.object property provides a Vector of Item objects representing the files that were dropped. If the drop was over a control the Msg.control property will identify the target control.
Added Control.MoveItem method to move an existing item in a List Box, Combo Box or List View control.
Added the FSUtil.Drives method which returns a Vector of Drive objects, providing information about the drives present in the system.
The scripting File.Read method did not correctly read the entire file if not passed a size.
The scripting DOpus.Language property now always returns a lowercase version of the language name, to simplify testing against it.
Fixed error introduced in 12.2.1 which broke the @toggle:if modifier when testing variables.
Fixed error introduced in 12.2.1 where customized filetype drag & drop events did not work as expected.
Explorer Replacement is now stricter about finding existing windows/tabs when another program requests the user profile desktop directory and the Desktop virtual folder is showing in a lister (or vice versa). In specific situations, this will improve the response of "show in folder" options in other programs.
Fixed problem with {sel:xxx} status bar date codes, which displayed UTC instead of local time.
Improved the way the Update Checker shows you the folder with the downloaded installer, and similarly how the File Type Diagnostic utility shows you the zip file it makes.
Fixed crash introduced in 12.2.1 when using filters on script columns.
Fixed crash if your toolbar had a Set ENABLELABELFILTER button added to it but Preferences / Favorites and Recent / Label Assignments was completely empty.
Added @disableif and @hideif command modifiers, that let buttons be hidden or disabled based on the result of a function (e.g. @hideif:!Set DUAL=Toggle to hide a button when not in dual-display mode).
Added @disableifpath and @hideifpath command modifiers, to allow buttons to be hidden or disabled based on the current source path.
Set COLUMNSADD and similar commands can now specify a position for the column and flag that it is only to be used if the column isn't already present. Prefix the position with ! to do this. For example Set COLUMNSADD=Size(!2) would leave the Size column as-is if it already exists, and add it in position 2 otherwise. This also works with relative positions: Set COLUMNSADD=Status(!1+Name).
Adding an ! before various conditional modifier tests now work to negate the tests. This has been added for @if:!<blah>, @ifset:!<blah>, @ifpath:!, @ifpathr:!, @ifexists:! and @keydown:! (plus the new @disableif, @hideif, @disableifpath and @hideifpath modifiers).
Added Preferences / Viewer / Appearance / Show status icons option to display current image's status icons in the viewer.
Added Custom title option to Preferences / Viewer / Appearance.
The font used for the rename macro builder is now configurable via Preferences / Display / Colors and Fonts.
Added Preferences / Folder Tree / Options / Expand selected branch when changing tabs option.
A new setting, Preferences / Miscellaneous / Advanced: context_menu_icon_set, allows you to change the icon set used when generating the Add to Archive and similar context menu items within Opus. For example, if you want the menu items to use the standard 16x16 size (32x32 at 200% DPI, etc.) then you can now do that, assuming a suitable icon set is installed.
The Target clause in the advanced filter control now lets you limit matches to shortcuts only to files or only to folders.
The breadcrumbs path field has a new dragsafetyoff argument which allows you to copy or move from the breadcrumbs field using drag and drop, without having to explicitly hold Ctrl or Shift. Without the argument, drag and drop from breadcrumbs defaults to creating shortcuts, to avoid accidents.
The Customize / Keys list now displays a column showing which Toolbar a key comes from (if applicable). The toolbar name is shown in italics if its Always enable hotkeys option is turned on. The Locate Toolbar button will now open any sub-menus necessary to locate the button that contains the selected hotkey.
The Join dialog now adds an output filename by default.
Minor improvements to the Split dialog. It now remembers the last size and UUEncode settings you used. "Automatic" size on non-removable devices is now 100MB instead of 1.44MB. Handles splitting to the current folder (vs a destination folder) better.
Moved the Start Folder Tree at Preferences option from Folder Tree / Options to Folder Tree / Contents.
RAR decompression uses UnRAR.dll again unless overridden. It is faster for some operations and a recent update added support full timestamp accuracy and all three timestamps (Created, Modified, Accessed).
The Preferences option Launching Opus / Explorer Replacement / Open external folders in a new tab now routes new tabs to the most recently used Lister, rather than the source Lister.
In the advanced button editor, the help button (or F1) will open the page about command modifiers if clicked while on a line for one.
Scripting:
In script buttons launched via the viewer, clickData.Func.Dialog now has the viewer as its parent window and not the active file display.
Fixed problem where the Metadata object could return outdated data in some cases.
Group boxes in script dialogs did not refresh properly when their label was changed.
The Dialog object's x and y properties can now be set after the dialog has been shown, to move the dialog around the screen.
The Dialog object now has cx and cy properties to get and set its size (when the dialog is resizeable).
Added Dialog.SavePosition and Dialog.LoadPosition methods, to save and load dialog window position.
Added Dialog.Vars method which returns a Vars object associated with the dialog.
The Control.RemoveItem method now accepts -1 to clear the entire listbox/combo contents.
The Viewer object has new title property which allows the title in a viewer to be changed from a script.
Added fg, bg and style properties to the Control object. Currently only supported for static controls.
The Command.AddFiles method can now be given a Vector containing Path or strings (full paths), in addition to the Item objects which it previously allowed.
(Experimental) Fix for missing separators in some situations, due to menu items which get hidden. If you notice extra or missing separators, or anything wrong with toolbars in menus, please report it so we can investigate.
Fixed problem with image metadata writing not working on Windows XP.
Fixed problem when using the Show or Slideshow commands on a folder. The viewer correctly enumerated the folder's contents, but also tried to display the folder itself as the first image, resulting in an error message.
Fixed toggling checkbox mode not adjusting Auto-Fill column sizes appropriately.
Fixed not being able to drag folders from the breadcrumbs field and drop them into file displays.
Fixed file displays not always using the drag & drop source's preferred action (link, copy, move) if one was specified and no key was held down to override it.
Fixed Click selected tab to go to previous one option interfering with ctrl-clicking folder tabs to link them.
The Advanced Filter Type clause used raw names instead of user names for file type groups - didn't affect the default groups but user-created groups would appear as {GUID} strings in the drop-down.
If the Copy command was launched with the default Ctrl+1 hotkey it wouldn't prompt for a filter when filter mode was on.
Fixed Lister not always coming to the front if you activated it by clicking on an inactive folder tab, where one tab had a warning banner and the other did not.
Fixed folder tabs opening next beside the active tab instead of the end when dragging folders or tabs to the end of the tab bar, if certain Preferences settings were combined.
Dragging drive roots (e.g. "C:\") from breadcrumbs to the tab bar is no longer blocked and can be used to open them in new tabs.
The Properties SETLABEL command would ignore the ADDLABEL switch if a) a category filter was specified and b) SETLABELTOGGLE wasn't also used.
Fixed problem with layout separators appearing in the wrong positions.
Change in 12.2 would cause replace dialog to move to the right on the second and subsequent invocations if the generated file description was over a certain length.
Fixed Inherit columns from other matching formats folder formats option causing the sort order to be inherited/replaced as well.
Fixed crash if a script passed Command.AddFiles a Vector containing strings (instead of file Item objects).
Added FileType NEWCOUNT argument which lets you create more than one new file at once (e.g. FileType NEW=.txt NEWCOUNT=10).
Added CreateFolder ASK argument to cause the dialog to be displayed even if a name is provided (e.g. CreateFolder "New Folder Name" ASK).
Added drivelabel argument for breadcrumbs path fields, to display drive label along with the drive letter.
The advanced filter control now has a Case sensitive option for Name and several other clauses.
The Favorites item in the folder tree now has a context menu which lets you open the favorites editor (Preferences page).
The Save Tab Group dialog (that's displayed by the Go TABGROUPSAVE command) now has a checkbox letting you control the Close existing tabs flag for the new group.
The Find DUPES command now lets you use the NAME argument to provide a wildcard name filter when searching for duplicates.
The Replace File dialog's rename field now supports more of the features of the regular inline rename field (including capitalization, F2 to cycle selection, and left/right cursor handling).
Photoshop CMYK images with alpha are now supported.
The Music category in the filter control (advanced find) now lets you search on the Year field.
External icon sets can now refer to internal image resources (such as the default toolbar icons) without having to include redundant copies of the image data. The main goal is to allow alternative size (and DPI-scaling) variants of the internal sets. Internal icon sets contain four image sizes (22, 32, 48 and 64 pixels) but until now you only had access to two of the sizes at any given DPI. This also makes it possible to use the flat and glass icon styles at the same time.
Scripting:
Added Viewer.parenttab property.
The OnGetCustomFields rename script method now lets you assign default focus to one of the custom fields, by setting the GetCustomFieldData.focus property to the name of the field. You can also use !oldname and !newname to assign focus to the standard old and new name fields.
Added an interface for multiple-selection listboxes in script dialogs.
Control.SelectItem now works with multi-selection listboxes. -1 can be given as the index to select all items in the listbox.
New method Control.DeselectItem lets items be deselected.
Control.value now returns and accepts a Vector of DialogListItem objects for multiple-selection listboxes.
New property DialogListItem.selected provides another way to query or set the selection state of items in a multiple-selection listbox.
Script dialog status controls now correctly handle setting their initial text when the supplied string contains \n (to insert a line-break).
Script dialogs now support the icon property to set the dialog's titlebar icon.
Added x, y and position properties to Dialog object, to allow the position of script dialogs to be controlled. position can be "center" (the default), "parent" (relative to parent window), "monitor" (relative to monitor) or "absolute". If x and y are specified and position is not "center" then the coordinates are treated as relative to the specified position.
Fixed problem which could cause sort header to not appear in the default tab of a new Lister when in one of the icon modes.
Fixed problem with displaying correct filetype description for matlab .m files.
The Go FOLDERCONTENT=move (or =copy) command now works from the toolbar in the standalone image viewer.
Fixed problem which could cause slow startup with network favorites displayed in the tree.
Fixed problem which could cause the vertical scroll offset to be reset when going forwards/back in the history (instead of preserving the saved offset).
Scrolling horizontally in list mode by clicking the scrollbar gutter will no longer skip partially visible columns.
The relative date graphs are now based on the timestamps as displayed in the file display. So if milliseconds are not displayed, they also won't be considered when calculating the graphs (same goes for seconds).
CreateFolder now works properly when pipe-separated names are specified on the command line (e.g. CreateFolder blah\1|2|3).
Opus no longer inspects the contents of .tmp files in an attempt to generate thumbnails for them.
Updated to latest libpng (fixes problem loading image here)
Fixed crash in Rename dialog that could be caused by having an empty new name string in Find & Replace mode and turning on the Rename matching filenames as one option.
The move up/down buttons in the Folder Options / Columns tab did not work correctly.
Select FROMSCRIPT (when used from a script, obviously) now works reliably with libraries.
The Copy WHENEXISTS argument is now respected when extracting from zip archives.
When copying files, the replace dialog now re-opens relative to its previous top/right position, so that the mouse doesn't need to move to find the same button from one file to the next.
Fixed problem with folder sizes in infotips which could leave a partially calculated size behind if the initial calculation was aborted.
The Locate toolbar button in the Customize / Keys dialog will now flash the exact button the hotkey comes from rather than just the toolbar (and will expand sub-menus to make it visible, if needed).
If tree path highlighting is on and set to use the configured tab color, it now updates in real time when the tab color is changed.
Ctrl-S (to save a preset) now works in the rename dialog even when the script editor has focus.
The Go OPENCONTAINER command now works correctly in conjunction with the EXISTINGLISTER argument.
Drop-down menu buttons (e.g. those generated by Go FOLDERCONTENT=button) can now be accessed from the keyboard.
When dragging items around on the File Type editor's Context Menu tab, the line indicating where the item would end up could appear one item above or below the actual location.
The image viewer no longer resets the scroll position when moving from one image to another (unless the zoom level is also reset due to Preferences).
The Preferences / File Operations / Double-click on Files / Use internal picture viewer for... option didn't work if the Left double-click event for the Recognized images filetype was undefined. It now defaults to Show if not set but can still be overridden via the filetype editor if needed.
On Windows 8 and 10, the Set Wallpaper command had to be run twice to be effective if the desktop had been set to a solid color. A workaround has been added so this is no longer the case.
Improved Lister resizing performance when resizing from top/left of Windows when composition is enabled.
Setting labels on files in library paths always saved the label to the config, ignoring the "save to NTFS" flag.
Fixed problem where labeled folders would lose their labels in the folder tree when moved/copied (until a tree refresh).
Added FileType NEWCOUNT argument which lets you create more than one new file at once (e.g. FileType NEW=.txt NEWCOUNT=10).
Added CreateFolder ASK argument to cause the dialog to be displayed even if a name is provided (e.g. CreateFolder "New Folder Name" ASK).
Added drivelabel argument for breadcrumbs path fields, to display drive label along with the drive letter.
The advanced filter control now has a Case sensitive option for Name and several other clauses.
The Favorites item in the folder tree now has a context menu which lets you open the favorites editor (Preferences page).
The Save Tab Group dialog (that's displayed by the Go TABGROUPSAVE command) now has a checkbox letting you control the Close existing tabs flag for the new group.
The Find DUPES command now lets you use the NAME argument to provide a wildcard name filter when searching for duplicates.
The Replace File dialog's rename field now supports more of the features of the regular inline rename field (including capitalization, F2 to cycle selection, and left/right cursor handling).
Photoshop CMYK images with alpha are now supported.
The Music category in the filter control (advanced find) now lets you search on the Year field.
External icon sets can now refer to internal image resources (such as the default toolbar icons) without having to include redundant copies of the image data. The main goal is to allow alternative size (and DPI-scaling) variants of the internal sets. Internal icon sets contain four image sizes (22, 32, 48 and 64 pixels) but until now you only had access to two of the sizes at any given DPI. This also makes it possible to use the flat and glass icon styles at the same time.
Scripting:
Added Viewer.parenttab property.
The OnGetCustomFields rename script method now lets you assign default focus to one of the custom fields, by setting the GetCustomFieldData.focus property to the name of the field. You can also use !oldname and !newname to assign focus to the standard old and new name fields.
Added an interface for multiple-selection listboxes in script dialogs.
Control.SelectItem now works with multi-selection listboxes. -1 can be given as the index to select all items in the listbox.
New method Control.DeselectItem lets items be deselected.
Control.value now returns and accepts a Vector of DialogListItem objects for multiple-selection listboxes.
New property DialogListItem.selected provides another way to query or set the selection state of items in a multiple-selection listbox.
Fixed problem which could cause sort header to not appear in the default tab of a new Lister when in one of the icon modes.
Fixed problem with displaying correct filetype description for matlab .m files.
The Go FOLDERCONTENT=move (or =copy) command now works from the toolbar in the standalone image viewer.
Fixed problem which could cause slow startup with network favorites displayed in the tree.
Fixed problem which could cause the vertical scroll offset to be reset when going forwards/back in the history (instead of preserving the saved offset).
Scrolling horizontally in list mode by clicking the scrollbar gutter will no longer skip partially visible columns.
The relative date graphs are now based on the timestamps as displayed in the file display. So if milliseconds are not displayed, they also won't be considered when calculating the graphs (same goes for seconds).
CreateFolder now works properly when pipe-separated names are specified on the command line (e.g. CreateFolder blah\1|2|3).
Opus no longer inspects the contents of .tmp files in an attempt to generate thumbnails for them.
Updated to latest libpng (fixes problem loading image in this thread)
Fixed crash in Rename dialog that could be caused by having an empty new name string in Find & Replace mode and turning on the Rename matching filenames as one option.
The move up/down buttons in the Folder Options / Columns tab did not work correctly.
Select FROMSCRIPT (when used from a script, obviously) now works reliably with libraries.
The Copy WHENEXISTS argument is now respected when extracting from zip archives.
When copying files, the replace dialog now re-opens relative to its previous top/right position, so that the mouse doesn't need to move to find the same button from one file to the next.
Fixed problem with folder sizes in infotips which could leave a partially calculated size behind if the initial calculation was aborted.
The Locate toolbar button in the Customize / Keys dialog will now flash the exact button the hotkey comes from rather than just the toolbar (and will expand sub-menus to make it visible, if needed).
If tree path highlighting is on and set to use the configured tab color, it now updates in real time when the tab color is changed.
Ctrl-S (to save a preset) now works in the rename dialog even when the script editor has focus.
The Go OPENCONTAINER command now works correctly in conjunction with the EXISTINGLISTER argument.
Drop-down menu buttons (e.g. those generated by Go FOLDERCONTENT=button) can now be accessed from the keyboard.
When dragging items around on the File Type editor's Context Menu tab, the line indicating where the item would end up could appear one item above or below the actual location.
The image viewer no longer resets the scroll position when moving from one image to another (unless the zoom level is also reset due to Preferences).
The Preferences / File Operations / Double-click on Files / Use internal picture viewer for... option didn't work if the Left double-click event for the Recognized images filetype was undefined. It now defaults to Show if not set but can still be overridden via the filetype editor if needed.
On Windows 8 and 10, the Set Wallpaper command had to be run twice to be effective if the desktop had been set to a solid color. A workaround has been added so this is no longer the case.
Improved Lister resizing performance when resizing from top/left of Windows when composition is enabled.
Setting labels on files in library paths always saved the label to the config, ignoring the "save to NTFS" flag.
Fixed problem where labeled folders would lose their labels in the folder tree when moved/copied (until a tree refresh).
GPSoftware are pleased to announce the release of Directory Opus 12!
After more than two years of development, and 6 months of an extremely successful public beta test program, Directory Opus 12 is now available!
Generous discounts are available for existing users of Directory Opus when you upgrade to Opus 12 - and remember that you can add extra licenses when you upgrade and get the same discount on the additional licenses.
You can also view the Release Notes for a full list of changes.
Thanks to everyone who participated in the beta program. Remember, development doesn't stop just because Opus 12 has been released (in fact, development never stops!). Keep those bug reports and feature requests coming in.
(Directory Opus 12 is currently available as a public beta. Once ready, it will be available to purchase. Anyone purchasing a new copy of Opus 11 right now will get a free upgrade to 12, since it will be out so soon after the purchase.)
Second Update: All is well with the final Windows 10 Anniversary Update, and the problem was been resolved by Microsoft.
Update July 10: It looks like Windows 10 Insider build 14385 has fixed this, so far at least. Please let us know if you see otherwise.
If you're using a Windows Insider preview build of Windows 10 (especially 14376 and 14379) you may have found Directory Opus is crashing a lot.
After much effort we've traced this to the Connected User Experiences and Telemetry service. This Windows service seems to provide Microsoft with some sort of diagnostic feedback or client tracking (we're not sure to be honest).
One way to prove that it's involved is to, while Opus is running, shutdown that service from the Services control panel. You'll see Opus crash immediately. Our theory is that the service hooks into all applications periodically (maybe to track which applications users are running) and when it unloads itself again (either automatically, or in this case by you shutting down the service), something goes wrong and it crashes while removing its hooks.
(Note that we have seen reports of crashing and instability in other applications as well due to these Windows Insider builds - it's not just Opus that's affected.)
Until Microsoft fix this, you can disable this service to prevent the crashes.
Press Windows+R (or Start -> Run) and enter services.msc to open the Services control panel.
Locate the Connected User Experiences and Telemetry service, select it, and click the stop button at the top of the window to stop the service.
(note that if Opus is running, it will probably crash immediately at this point)
Right-click the same service entry, select Properties from the context menu, and change the Startup type to Disabled. Click OK.
Restart your machine.
A fifth step is to report this issue to Microsoft, as they're the only ones who can fix it long term (and the whole point of using the Insider builds is so you can report Windows bugs).
This stable update includes everything from the 11.18.1 beta update.
Fixed inverted colors in some CMYK JPGs.
Fixed button editor duplicating the next line if you double-clicked the end of a line, and then crashing if you clicked OK.
Duplicating a folder over an existing one would incorrectly display an error ("you can't copy a file over itself") for any files that clashed with existing ones in the target folder.
The Image command no longer requires CONVERT if either the WIDTH or HEIGHT arguments are specified (previously it needed both for CONVERT to not be needed).
Updated to 7z.dll v16 which includes security fixes.
Updated to latest UnRar.dll.
Fixed sorting error with Tags column.
Fixed FTP not logging into the Folder+ iOS FTP server app.
Lossless JPEG rotation was broken and always failed (falling back on lossy rotation if the command's arguments allowed it).
Fixed button editor duplicating the next line if you double-clicked the end of a line, and then crashing if you clicked OK.
Duplicating a folder over an existing one would incorrectly display an error ("you can't copy a file over itself") for any files that clashed with existing ones in the target folder.
The Image command no longer requires CONVERT if either the WIDTH or HEIGHT arguments are specified (previously it needed both for CONVERT to not be needed).
Updated to 7z.dll v16 which includes security fixes.
Updated to latest UnRar.dll.
Fixed sorting error with Tags column.
Fixed FTP not logging in to the Folder+ iOS FTP server app.
Lossless JPEG rotation was broken and always failed (falling back on lossy rotation if the command's arguments allowed it).