12.21 16th June, 2020
The following changes were part of the 12.20.1 - 12.20.8 beta
updates:
- Added columns to the native This PC view to show percentage space
free and full as a number (instead of as a bar graph).
- Added special handling when moving folders up to parents, where the same
folder names appear both above and below the source level. (e.g.
C:\A\A\A\A up to C:\A when
C:\A\A\A\A\A\A exists.)
- Added support for File Explorer's %V code. This inserts
the selected file or folder if there is one, and the current folder path
otherwise.
- The FAYT field's Range Select mode
(# key by default) now lets you select a range based on the
current focus position. For example, #+10 will select the
next 10 files from the current position, and #-5 will select
the previous 5. You can also use, for example, #-5+5 to
select 5 files either side.
- Previously the Range Select mode required the
Index column to be added before you could use it, but now the
mode is always available (in details/power mode) and the Index
column will be automatically added if needed, and removed again once
the FAYT closes..
- Background threads generating metadata now prioritise the active tab. When
you switch tabs any outstanding threads are re-ordered so results for the
newly active tab should start to be returned much more quickly.
- A number of improvements to the Go FOLDERCONTENT
command:
- Go FOLDERCONTENT now sorts and filters items by their
localized display names, not the underlying disk names.
- Go FOLDERCONTENT=useshell now supports multiple
folders. Also added support for merging the current folder "." with one or
more fixed paths.
- Go FOLDERCONTENT=useshell now shows better descriptions
(on mouse hover) for shortcuts.
- Go FOLDERCONTENT=useshell no longer treats zip files as
folders.
- Go FOLDERCONTENT without useshell now
adds a separator between files and folders at the top level. (Previously,
this only happened within sub-menus or when useshell was
specified.)
- The Join dialog now puts the focus in the output filename field
by default. If all input files have the same file extension, the default
output filename will now be given that extension as well.
- Library member folders are now shown in the tree in the order they're
configured via the Properties dialog, rather than being sorted
alphabetically.
- The option to hide OneDrive for Business in the folder tree now
applies to OneDrive for School as well.
- In Windows 10, the folder tree no longer appends the drive letter (or
share name) to the name of library member folders (this is to match what
Explorer does).
- When selected files are filtered out of the display by the filter bar (or
the FAYT in filter mode), they are now deselected automatically.
- Added alternative syntax for opening a specific file in the viewer pane.
As well as the old Show VIEWPANECMD="open,C:\cat.jpg" you can
also now use Show "C:\Cat.jpg" VIEWPANECMD=open.
- Show VIEWPANECMD=open now works with filenames and
relative paths; previously it required a full path.
- A command like Delete
FILE="coll://CollectionName" will no longer show any warning or
confirmation dialogs if the collection already does not exist.
- Fixed zip files appearing in breadcrumbs menus when archives were turned
off for them.
- The breadcrumbs option for showing This PC as an icon now only
affects This PC, not other folders that are the first path branch
(e.g. Network, or folders below Desktop).
- Go OPENCONTAINER=target now selects the target file even
if the OPENINDUAL argument is used to open the containing
folder in the other file display.
- The FileType NEW command can now create directories by
specifying directory as the file type to create. This lets
you create multiple directories at once (e.g. FileType NEW=directory
NEWCOUNT=10).
- The FileType NEWNAME argument can now be used to specify
a separate name that's used when the original name clashes, and to control
where the incremental number is inserted. For example, FileType
NEW=.txt NEWNAME="Text:Text Num %c" would use "Text" for the
initial name, and then try "Text Num 1", "Text Num 2" etc.
You can use %Nc to zero-pad the number to N digits
(e.g. %3c to zero pad to three digits). The default behavior
if a separate name isn't specified is still to append the incremental
number in brackets.
- The dopusrt /col command can now be used to create
"duplicate files" collections, similar to those produced by the duplicate file
finder.
- The /add command has new /dupeid and
/name switches.
- The /create command has a new /dupes
switch.
- The /import command allows duplicate IDs and group
names to be assigned in the import file.
- The Preferences aliases list now selects the next alias after one
is deleted.
- Fixed incompatibility with PeaZip context menu.
- Improved compatibility with context menus added by
PotPlayer.
- Added support for a type of nested context menu used by some software
(e.g. the Sound ForgeConvert To sub-menu).
- Added support for a second type of nested context menu used by some
software.
- Added options to Preferences / File Displays / Mouse to
turn off Mouse Wheel + Ctrl for changing font/thumbnail sizes and Mouse Wheel
+ Shift for navigating back and forward.
- File display music columns now support yet another variant of MP4 music
tags.
- Fixed problem where the user-entered list of cloud folders would not be
used unless OneDrive or Dropbox were also installed.
- The Prefs PAGE command can now automatically select and
display the configuration editor for a script, e.g. Prefs
PAGE=scripts:dopstack to go to the Scripts page, select the
DopStack.js script and open the editor for its
configuration.
- The Rename command has a new NOIGNOREEXT
argument which allows you to open the Rename dialog for interactive
use while turning off the Ignore Extensions checkbox.
- Fixed copy queue buttons looking incorrect at 125% DPI scaling.
- Fixed Go FOLDERCONTENT menus which merge multiple paths
together. (e.g. Start Menu Button: https://resource.dopus.com/t/start-menu-button/3540
)
- Fixed crash if you used the mouse wheel over certain parts of the
Customize > Context Menus UI.
- Fixed a problem with automatic filename quoting getting confused by a
= argument separator (e.g.
CREATEFOLDER={file|noext} would put the quote before the
CREATEFOLDER rather than after the
=).
- Fixed drag & drop into a file display with manual sort enabled, where
dropping a file between two sub-folders now drops it to the current folder,
consistent with what the visual preview indicates.
- If a folder tab shows a collection which is deleted, the tab now reacts by
going up a level (if the collection stays deleted) or refreshing (if the
collection is re-created immediately).
- The dialog for creating new FTP site bookmarks no longer resets the
password drop-down when you change the connection type drop-down.
- Improved feedback if PDF metadata update fails.
- Fixed a problem with the MD5 cache which could in some cases
cause checksums to not be calculated (files would show as duplicates but with
a zero checksum).
- Improved compatibility with music tags in certain M4A files.
- Resetting the Archives filetype group to its default
settings now initialises the default file extensions for the group.
- Fixed the Flat View state of the first folder carrying over to
its replacement when loading a Folder Tab Group.
- By default, Opus no longer overrides the font chosen by virtual folders
which Opus does not handle itself. A new option Preferences / Display
/ Options / Enable custom fonts in virtual folders exists to turn
this back on, but note that it can cause cosmetic issues or even crashes when
going to those folders.
- Fixed drop-downs at the bottom of Preferences / Display /
Images not updating correctly when custom images were
removed.
- Fixed a crash that could occur if you rapidly refreshed a file
collection.
- The standalone viewer now adds the initial file it opens to the Windows
recent documents list.
- Fixed unnecessary null being added at end of IPTC string tags.
- If a rename fails because a file is in-use Opus will now show the
processes that have the file locked if possible (same as when trying to
delete).
- Fixed Go FROMSEL NEW=nodual opening a Lister with a
second folder tree, if the default Lister had dual folder trees.
- The Image Viewer toolbar now respects the icon size override on
the CustomizeToolbars page.
- Fixed CustomizeToolbars list in Opus Light
showing the wrong checkbox state for the Images toolbar if it
was turned on.
- In Opus Light, you can now override the File Display Border
toolbar's icon size and the setting will be saved to disk.
- The CustomizeToolbars list now shows File
Display Border toolbars as in-use, to help identify them. They can also
no longer be turned on as normal toolbars (although you can still do so via
commands if you really want to for some reason).
- If the File Display Border or Image Viewer toolbars are
changed in Preferences while the Customize dialog is also
open, the Customize dialog now updates itself.
- When the standalone viewer is displaying something with the
Text plugin, you can now close it with Esc.
- Fixed a crash which could occur in the standalone viewer if you had the
Reuse existing viewer windows option turned on and
double-clicked the same image twice in extremely quick succession (e.g. due to
a faulty mouse button).
- When you right-click a file which is a member of multiple File Type
Groups, the context menu items they add (if any) are now in the same
order as the groups in the file type editor (i.e. by group name).
- Improved Rename dialog's filtering of invalid characters to allow
":" to be typed after {scp even when not at the very end of the
line.
- The progress dialog's unattended mode errors dialog no longer shows itself
when the progress dialog is minimized and restored if the unattended option
has been turned off again.
- Fixed an issue where the standalone viewer could be blank after exiting
fullscreen mode in specific situations.
- Layouts applied to existing windows (Prefs
LAYOUTTHISLISTER) should now work with Navigation Lock and
Linked Folder Tabs.
- If you have a toolbar with empty space on the right (or bottom, for
vertical toolbars), and you move the mouse across the last button and into the
empty space, the button will no longer be left highlighted.
- Drive roots may now be added to file collections. (Primarily intended for
scripts/commands.)
- A command that copies files into a file collection using
{filepath} etc. codes now works correctly with more than one
item selected.
- Fixed the folder tree scrolling to the wrong position if both
Expand selected branch when changing tabs and
Position selected item in the middle of the tree were enabled
at once.
- Changing the advanced no_folder_cd_thumbs or
cd_thumb_coverart_file settings now clears any cached folder
thumbnails and does a refresh immediately.
- Buttons can now use things like @ifpath:/trash to make
commands conditional on being in virtual folders like Recycle Bin.
- Using the Favorites FILTER argument no longer filters out
separators from the Favorites list (other than to remove double separators
where everything between them was filtered out).
- Fixed a cosmetic issue with the Backup & Restore dialog at
125% DPI scaling.
- The option to specify a single image (via name or wildcard) for folder
thumbnails can now be used to allow up to 4 images per folder thumbnail that
match the wildcard.
- When dragging attachments from Outlook to an Opus Lister, Opus now detects
the special 1/1/4501 timestamp that Outlook uses for some reason, and
substitutes the current date and time instead.
- If you turn on the Lister's Copy or Delete filter and
then run a command which explicitly specifies a filter, the command will now
use the filter it specifies without prompting. (Normal commands which don't
specify a filter will still prompt you to choose or define one.)
- If a copy/move operation uses a custom queue name this is now shown in the
title bar of the progress dialog as described in the manual.
- Fixed misdetection of mixed DPI mode in some situations, which sometimes
meant transition animations were disabled when they would have worked
OK.
- You can now have Favorites menus using large icons by turning on
the Large Image Size checkbox in the button which generates
the list (or for the whole toolbar).
- Folder name localization is now only enabled on certain drives, to prevent
problems with Google Drive File Stream.
- Possible fix for a crash encountered by a user (https://resource.dopus.com/t/finding-error-cause/35738).
- Fixed background not rendering correctly if you had an auto-hide docked
toolbar with a stretched background.
- Fixed find by a specific file type not working properly in the simple Find
mode.
- The Preferences / File Displays / Mouse / Allow drag and drop into
sub-folders option now applies when dragging over files (e.g.
archives, executables) as well as folders.
- When opening PowerShell via the CLI command, you can
now use the new EXEC and TITLE arguments to
specify the PowerShell executable to use (e.g. if you want PowerShell 7
instead of Windows PowerShell) and the window titlebar.
- Added mitigation for problems caused if someone/something created a file
named backup in
/dopusdata/UserCommands.
- Fixed icons in some dialogs getting clipped slightly at 125% DPI
scaling.
- Made some changes to hopefully prevent files sometimes being deselected
when they are modified by the Image Conversion command.
- The GetSizes progress dialog now enables the Skip
button, allowing the current folder to be skipped but the rest of the
calculation to continue.
Listview controls in script dialogs can now have their items displayed in
groups:
- The Control object has new methods for managing
groups:
- AddGroup(name, id, flags) - id must be numeric, 1 or
greater. flags "c" - collapsible, "d" - collapsed.
- RemoveGroup(id) - remove group
- GetGroupById(id) - returns a
DialogListGroup object
- EnableGroupView(fEnable) - enable/disable group
view
- The DialogListItem object has new group
property; returns or sets group ID the item is in.
- New DialogListGroup object, returned by
Control.GetGroupById method.
- Has properties: id, name,
expanded
Script dialogs can now offer drag and drop of files using the new
Dialog.Drag method.
- Drag can be initiated either from a static control or a listview control.
The new Drag Source property must be set to
True on the control.
- When the user initiates a drag, you'll receive a drag
event. The value property indicates whether it's left or
right button.
- If you want to allow a drag and drop, call the
Dialog.Drag method in response. The first parameter provides
the files to be dragged (same as can be passed to
DOpus.SetClip). The optional second parameter provides
allowable actions for the drag - copy, move,
link as a comma-separated string. The default is
copy if not specified. You can also specify the default
action by prefixing with a * (e.g.
copy,*move,link to allow all three but make
move the default).
- Return value of the Drag method indicates the result of
the drag - copy, move or
link for a left button drag, drop for a
right button drag, and cancel if the drag was aborted.
Other scripting changes:
- The bg and fg properties for the
Control object now work for listview controls as
well.
- Added Control.textbg property for listview controls to
set the text background color.
- The DialogListItem script object now supports
fg, bg, and style
properties, allowing text and background color, and text styles, to be set on
a per-item basis.
- The DialogListItem object has a new
disabled property that lets listview items be individually
disabled. When disabled, they're not able to be selected, right-clicked or
double-clicked.
- Added the want_close property for the script
Dialog object. If set to true, clicking the close button on a
script dialog will generate a close event. It's up to the
script to close the dialog using the EndDlg() method.
- Added rotate property to the Control
script object (for static controls set to image mode). This allows the script
to rotate the displayed image.
- Added protection against a crash that could be caused by having lots of
tabs opening at once with a script that implements the
OnBeforeFolderChange event.
- Script columns displayed in Listers now update their headings/names if the
script is edited or calls Script.InitColumns or
Script.RefreshColumn.
- Scripts generated by the Create New Script dialog now escape or
replace quotes, backslashes and other special or invalid code or path
characters typed into the dialog.
- Documented the refreshsub action for the
OnBeforeFolderChange and OnAfterFolderChange
script events.
- The Command.AddFilesFromClipboard script method now works
better when the clipboard files came from a library.
- The Item.filegroup script property now works correctly in
script functions run from a context menu.
- Added Dialog.WatchTab script method. Allows a (detached)
script dialog to receive various notifications about a folder tab (file
selection, file changes, etc).
- Script dialogs shown as a checkbox list (using
Dialog.choices) are now themed and resizable.
- Improved autosizing of script dialog listview columns.
- Added Report Clicks property for static controls in
script dialogs. With this turned on, static controls will report
click, dblclk and rclick
events when clicked.
- Added UnorderedSet script object. Similar to a string set
except it can store any type of data, and doesn't sort the values you add to
it.
- Added script Vector.unique method to remove duplicate
values from a Vector.
- Script add-ins can now load data like images from a sub-folder in the
script add-ins directory. The sub-folder must have the same name as the script
itself (without the file extension). This might be useful while a script is
under development, before you package it as a script package for
distribution.
- The script dialog editor now shows checkboxes in list mode listviews in
the same location as the real dialog displayed them (top-left rather than
centered).
- The Vector script object can now be indexed in JScript
using [] as well as () (e.g.
vector[5]).
- The Vector.assign method can now accept a JScript array
to copy the contents to an Opus Vector object.
- The DOpus.Create.Vector factory method can now accept
another Vector or JScript array to initialise the new array
from (equivalent to creating the Vector and then calling the
assign method).
- Small change to the way the Script global script object
is initialized, to hopefully make it accessible from python scripts.
- The scripting StringTools object's
Encode and Decode methods can now convert to
and from raw UTF-16 data, including support for both Big Endian and Little
Endian, and optional Byte Order Marks.
The following changes are new to 12.21:
- Fixed minor issue with full-width spacers on docked, auto-hide toolbars
with stretched background images.
- The DialogListItem.disabled script property didn't work
for reading the disabled state in all cases.
- The DialogListItem.checked script property only returned
true or false, rather than the correct numeric value.
- The DialogListItem.group script property now works
properly to assign a list view item to a group.