12.3 5th December, 2016
- 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.
- @if, @disableif and
@hideif can now test if a command would be enabled rather
than toggled. E.g. @if:enabled Go GROUPEXPAND=*.
- The @hidenosel and @disablenosel
modifiers can now be negated, e.g. @hidenosel:! would hide a
button if anything at all was selected.
- 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.
- Reduced overhead of the Copy progress dialog when copying thousands of
tiny files.
- 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 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.
- 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
- 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 spacing
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.
- 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.
- 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 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 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.
- (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).
- 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 if your toolbar had a Set ENABLELABELFILTER
button added to it but Preferences / Favorites and Recent / Label
Assignments was completely empty.
- 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).
- CLI DOSPROMPT command now works from a context menu in
the tree (previously it would always be disabled).
- 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 run the Settings / File Types command with
the File Types dialog already open but minimized, it will now be
restored (previously nothing would happen).
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- The Date.Sub method now works properly for years and
months.