Beta 5 (12.0.5) is now available.
[ul][li] Directory Opus 12 Beta installer (all supported languages)[/li]
[li]Get your Beta certificate here.[/li]
[li]Preliminary release notes (PDF, 80 pages)[/li][/ul]
Changes in 12.0.5 Beta:
[li]Beta translations added for Dutch, German, Hungarian, Norwegian, Polish, Russian, Swedish and (new to Opus 12) Spanish for Mexico. These add to English, French, Greek, Japanese and Spanish for Spain support from previous betas. (More languages and updates are in the pipeline. Some new functionality may still be in English.)
[/li][li]Please report translation issues via the new Opus 12 Beta Translations area of the support forum.[/li][/ul]
[li]New icons throughout the program by Cris van Minnen:
[ul] [li]Internal toolbar icons are now in two flavors: Flat is the new style and fits in with Windows 8 and Windows 10. Glass is the old style and fits in with Windows Vista and Windows 7.
[/li][li]Your Windows version decides the style by default, but you can override it by going to Preferences / Toolbars / Icons, selecting the Internal Icon Set and clicking the Icon Style button.
[/li][li]Other icons used throughout the program are in the new flat style, and most icons now have high DPI variants. (Icon DPI scaling is handled automatically and not something you need to configure.)
[/li][li]The internal toolbar icons include high DPI images as well as several new icon categories. If you have previously installed Cris’s icon sets from the forum, or sets based on them (e.g. “Icons for ultra high definition monitor 4K”), you may wish to review what you have installed and delete any sets which are now redundant, to avoid wasting memory and ensure the best quality icons at all DPIs.
[/li][/ul][/li][li]You can now import icon sets by via drag & drop to Preferences / Toolbars / Icons. Various other minor improvements to the same UI.
[/li][li]Preferences now tells you the file location of external icon sets when they are selected. In particular, this helps understand where an icon set is coming from if it’s part of a script .OSP package.
[/li][li]Fixed (uncommon) 8-bpp icon sets turning black if DPI scaled. (Affected "A-Z (Grey).dis" from the Alphabet Icons collection on the forum.)[/li][/ul]
[li]Fixed crash when loading a new list of pictures into an existing standalone viewer (via drag & drop, or via double-click with the recycle viewer option on).
[/li][li]Fixed inverted colors in some CMYK JPGs.
[/li][li]Fixed viewer not refreshing properly when toggling the alpha channel, changing gamma, and similar.
[/li][li]The Marked panel no longer takes the focus when it opens automatically.
[/li][li]Fixed viewer image-marking when in the root of a drive. (The %F code for marked picture collections now has the :\ stripped from path roots.)
[/li][li]AcitveX viewer workaround for Windows Media Player bug on filesystems with short paths disabled.
[/li][li]Toolbar buttons in the viewer now work when shift or control are held down (and qualifiers are passed through to scripts correctly).
[/li][li]Added Show VIEWERCMD=selectfile command to select the viewer’s current file in the folder tab it came from.
[/li][li]For script functions launched from the viewer, the clickData.func.sourcetab property is now set to the original source folder tab (if any) which launched the viewer.
[/li][li]You can now copy files to the clipboard from the marked pictures pane in the Viewer (via right-click context menu, or Ctrl+C).
[/li][li]Marking a picture in the viewer now scrolls the mark pane to show the picture’s thumbnail (if it was out-of-view).
[/li][li]You can now disable internal image viewers via Preferences / Miscellaneous / Advanced: viewer_disable_internal. For example, this allows you to divert the TIFF viewer to a third-party ActiveX control which handles multi-page TIFFs.
[/li][li]You can now block the Movie plugin from handling certain extensions (even if their registry information specifies they are video types) by adding them to the list of extensions with a ~ before them. For example .avi,.mpg,~.wmv would tell the plugin to handle .avi and .mpg but ignore .wmv files.
[/li][li]Show commands with embedded functions now work when launched via filetypes. e.g. To open the viewer and then open the metadata panel within it:
[li]The Rename macro builder now shows an indication of the current caret position in all other filenames.
[/li][li]Fixed bug in Rename when combining Find & Replace with sequential numbering, and the “replace string” was empty.[/li][/ul]
Find Filters and Pattern Matching
[li]In standard pattern matching, ~* (“not anything”) will now match an empty string.
[/li][li]Fixed Date clauses in advanced Filter controls not displaying correctly when in “before” and “after” modes.
[/li][li]In advanced Filter controls, dropdown lists did not show a scrollbar when their contents were too large and it was not possible to view all available options.[/li][/ul]
Labels, Status Icons and related columns
[li]Advanced Find, searching by Label, now correctly matches label filters.
[/li][li]The Label column now shows any wildcard/filter labels that match a file, as well as specifically assigned labels.
[/li][li]Sorting by the Status column is now reliable.
[/li][li]The list of Labels in Preferences wasn’t properly sorted in group order when initially displayed.
[/li][li]The list generated by Properties SETLABEL=!submenu now puts labels which are in categories above uncategorized labels. (Previously they were intermixed.)
[/li][li]Added a new Properties SETLABEL=!submenu2 mode which puts uncategorized labels in an Uncategorized category.
[/li][li]The LABELCATEGORY argument for Properties SETLABEL can now match uncategorized labels using the pattern ~* (which means “not anything”).
[/li][li]The Properties SETLABEL command now supports embedded commands. As an example, the command below will generate a menu of Status Labels where selecting a label will toggle it on the selected files and then, thanks to the embedded command, turn the Status column on so that you can see the result.
The first line of the command comes from the default toolbars. The new part is what comes after it in the [ … ] embedded command section.
Properties SETLABEL !menu LABELCATEGORY raw:Status ADDLABEL SETLABELTOGGLE
Other file display columns
[li]Configurable field justification is no longer allowed for the Filename column (since it doesn’t work properly).
[/li][li]Date-time columns now work better when left or center justified.
[/li][li]Columns set to Fit or Fill are no longer resized while column headers are being resized manually; they now update their widths when the mouse button is released.
Set COLUMNSADD is now capable of changing the auto-size and max-size properties of existing columns without changing their positions. For example, Set COLUMNSADD=name(!,a,0) will set the Name column to auto-size with no maximum width.
If you’re using the new Fill, Expand and Collapse column modes, you may want a quick way to switch everything to auto-size. The following script auto-sizes all columns if any have their widths restricted, and otherwise will reset the folder format (including columns and column widths) to what a new window would show for the folder.
Script Type: JScript
var anyColumns = false;
var cmdLine = "Set COLUMNSADD=";
for(var e = new Enumerator(clickData.func.sourcetab.format.columns); !e.atEnd(); e.moveNext())
var col = e.item();
if (!col.Autosize || col.Max != 0)
if (anyColumns) cmdLine += ",";
cmdLine += col.Name;
cmdLine += "(!,a,0)"; // Keep position. Auto-size. No maximum.
anyColumns = true;
if (!anyColumns) cmdLine = "Set FORMAT=!folder";
Favorites and Layouts
[ul][li]The Favorites list (shown in menus) now displays only the folder name instead of the full path, for items without a specified name (to match what happens in Preferences).
[/li][li]Fixed Favorites menu only handling embedded commands and ‘&’ label prefixes at the top level and not in sub-folders.
[/li][li]When opening layouts, listers whose titlebars are completely off-screen will now be moved on-screen, to help with layouts saved under different monitor configurations.
[/li][li]Fixed Settings > Backup & Restore not including layouts which were in sub-folders in the backup.
[/li][li]When re-saving an existing lister layout that was loaded from a sub-folder, the full path (including the sub-folder) is now included in the default filename field.
[/li][li]When the layout name is displayed in places like the Lister title bar, it now includes any sub-folders.[/li][/ul]
[li]The options to change colours, images, etc. on the Customize / Context Menus are back again. (They were hidden in error.)
[/li][li]Fixed potential crash if you reset a toolbar to factory defaults while the search field had focus.
[/li][li]Fixed crash if a button contained a line with just “@ifset:” on its own. (The line makes the command invalid, but should not cause a crash.)
[/li][li]Fixed button editor duplicating the next line if you double-clicked the end of a line, and then crashing if you clicked OK.
[/li][li]When toolbars are backed up and reset due to a new major version (e.g. 11 to 12; not 12.x to 12.y), the “always enabled hotkeys” list is now also reset to avoid ending up with clashing hotkeys due to a mixture of old and new toolbars.[/li][/ul]
[li]Added script Lister.utilpage property which lets you query the current utility pane page (could already do this via IsSet but this is easier).
[/li][li]The script output log in the Rename and Function Editor dialogs now scrolls with the mouse wheel.
[/li][li]Up/down controls in script dialogs now move with their edit control when the dialog is resized.
[/li][li]The OnListerClose script event now lets a script prevent the closing Lister from being saved as the new default Lister, via the new prevent_save property. e.g. You can use this to revert to the old behavior of not saving sync/dupe Listers:
Script Type: VBScript
If closeListerData.lister.utilpane = 1 Then
If closeListerData.lister.utilpage = "sync" Or closeListerData.lister.utilpage = "dupe" Then
closeListerData.prevent_save = True
[/li][li]The script Control object’s interface, for advanced scripted dialogs, has been redesigned inline with tbone’s suggestions. Old methods have been removed and any scripts in development based on the previous betas may need changes.
Methods are now:
AddItem(strName [, strData]) or AddItem(objItem)
InsertItemAt(intIndex, strName [, strData]) or InsertItemAt(objItem)
RemoveItem(intIndex or objItem)
SelectItem(intIndex or objItem)
SelectRange(intFirst [, intLast]) or SelectRange()
on GET, value will return a string (edit field), a bool (simple checkbox/radio button), a long (tri-state checkbox or tab), or a DialogListItem (combo/listbox)
on SET, value takes a string (edit field or tab), a bool or long (checkbox/radio/tab), a long or a DialogListItem (combo/listbox)
The DialogListItem has the following properties:
[/li][li]Setting the “default” property for a button control in the dialog editor now automatically turns it off for any other buttons.
[/li][li]The “Evenly Space” commands in the dialog editor now reposition the last control as well as the others. (Previously, the first and last controls were excluded.)
[/li][li]The Script object (given to script add-ins) now has a LoadResources method which lets a script load resources from an external file, rather than embedding them at the end of the script file itself. Note that for .OSP script packages, the resource files must have a .odxml suffix if the resource files are bundled in the package (non-packaged scripts can use any file extension).
[/li][li]The new Script.LoadResources can also take an XML string directly, as an alternative to loading the data from disk.
[/li][li]Help file correction for Dialog.getstring.
[/li][li]Help file correction for Item.Open arguments (it doesn’t take a path; the path is implicit) and slight clarification of FSUtil.OpenFile arguments.
[/li][li]Item.Open and FSUtil.OpenFile can now pass “NoElevate” or “ElevateNoAsk” to prevent triggering UAC prompts when opening files. “NoElevate” avoids elevation entirely while “ElevateNoAsk” gains elevation only if something else has already triggered it within the script’s context. Script columns which open files should use these to avoid triggering annoying UAC prompts in the background.[/li][/ul]
[li]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.
[/li][li]Fixed de-selection not always occurring when you first clicked the background of the inactive side of a dual file display, regardless of Preferences / File Displays / Mouse / Allow file selection when clicking to switch source/destination state.
[/li][li]Fixed Print/Export Folder not correctly outputting .CSV or .TSV format files if the first two or more columns of a row were completely blank. (Rare, since Name usually comes first.)
[/li][li]The Image command no longer requires the CONVERT argument if either of the WIDTH or HEIGHT arguments are specified. (Previously it needed both WIDTH and HEIGHT for CONVERT to become optional.)
[/li][li]The Set SAVEFORMAT command now includes the current folder background image settings in the saved format.
[/li][li]Fixed rare unresponsive window when opening a new lister.
[/li][li]Fixed high CPU usage while file info-tips with thumbnails were shown in certain situations.
[/li][li]When Opus resolves junctions and softlink paths it now stops resolving when it hits a UNC path that resolves to a non-UNC path (e.g. dir -> \server\drive\dir -> device), since the final resolved path would only make sense on the remote machine.
[/li][li]Aliases that resolve to a path with a trailing slash will now have the slash stripped if the remainder of the path begins with a slash. (e.g. /homeroot/Windows used to resolve to C:\Windows but will resolve to C:\Windows now.)
[/li][li]New-look About and Start Window (splash screen) dialogs. The Start Window can now be controlled via the keyboard.[/li][/ul]