22 June 2020

Directory Opus 12.21

Directory Opus 12.21 is now available as a free update for all Directory Opus 12 users.

New versions are often made available several days before they will be detected by the update checker. You can download Opus using the links below if you don't want to wait.

Download:


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.

11 June 2020

Directory Opus 12.20.8 (Beta)

Directory Opus 12.20.8 (beta) is now available for all Opus 12 users.

This is a preliminary, beta release. Translations may not be fully up-to-date and some English text may appear in non-English versions.

Download:


Changes since 12.20.7:


  • 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
     
  • Fixed crash introduced in previous beta if you assigned a shared, stretched image to a docked toolbar.


  • 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

    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.

    8 June 2020

    Directory Opus 12.20.7 (Beta)

    Directory Opus 12.20.7 (beta) is now available for all Opus 12 users.

    This is a preliminary, beta release. Translations may not be fully up-to-date and some English text may appear in non-English versions.

    Download:


    Changes since 12.20.6:

    • 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.
       
    • 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.
       
    • 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.