Directory Opus 12.3 is now available for all Opus 12 users.
(Do not install this if you are still using Opus 11 or earlier, unless you want to upgrade to Opus 12.)
Download:
- Universal version (all supported languages)
- Deutsche version
- 中文版
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.
- Fix for "Crash in 12.2.5".
- Scripting:
- 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).