If you use the image marking function of the viewer in its default mode, when the viewer closes a new tab will open showing the marked pictures collection. This script lets you divert that new tab to open the collection in the existing tab (the one the source images came from) - meaning that the Back button will then work to take you back to the source folder.
Note that because of limitations in the scripting interface this is slightly clumsy - the new tab opens, then closes again. We are looking at a way to streamline this in the future.
To use this script, paste it to a .vbs file in your script add-ins folder (
If you're using a non-English language version of Opus, or have changed the name of the Marked Pictures collection in Preferences, you'll need to edit the
Const MarkedPicturePrefixline at the top of the script to tell the script what to look for.
option explicit ' if the "Marked Pictures" prefix isn't correct for your language/configuration you will need to edit this string Const MarkedPicturePrefix = "Marked Pictures" ' MarkedCollectionSameTab ' (c) 2017 jpott ' This is a script for Directory Opus. ' See http://www.gpsoft.com.au/DScripts/redirect.asp?page=scripts for development information. ' Called by Directory Opus to initialize the script Function OnInit(initData) initData.name = "MarkedCollectionSameTab" initData.version = "1.0" initData.copyright = "(c) 2017 jpott" ' initData.url = "https://resource.dopus.com/viewforum.php?f=35" initData.desc = "Make marked collections open in the same tab as the source images" initData.default_enable = true initData.min_version = "12.0" End Function ' Called when a new tab is opened Function OnOpenTab(openTabData) ' see if this is a "marked pictures" folder. if the "Marked Pictures" prefix isn't correct ' for your language/configuration you will need to edit the string if Left(openTabData.tab.path, 7 + Len(MarkedPicturePrefix)) <> "coll://" & MarkedPicturePrefix then Exit Function end if ' find first item in that collection Dim rd Set rd = DOpus.FSUtil.ReadDir(openTabData.tab.path) if rd.complete then Exit Function end if Dim item Set item = rd.Next ' find a tab showing that item's path Dim tab, existing_tab for each tab in openTabData.tab.lister.tabs if tab.path = item.path then Set existing_tab = tab exit for end if next if not isempty(existing_tab) then ' read the folder into the old tab Dim cmd Set cmd = DOpus.Create.Command cmd.SetSourceTab(existing_tab) cmd.RunCommand("go """ & openTabData.tab.path & """") ' close the new tab cmd.SetSourceTab(openTabData.tab) cmd.RunCommand("go tabclose") end if End Function