GP SoftwareTwitter
Opus FAQsManualCommandsObjects

Auto-Refresh the Viewer Pane?


I posted about this back in 2014, I'd like to refresh the query: I'm scanning jpeg images of book pages and want to monitor the quality of each page as it is scanned to a folder. The Viewer Pane is the logical place to do that, but I have to interrupt my scanning to click on the latest image to get the Viewer Pane to update and display it. If I sort the folder display by newly created at the top, I can see a thumbnail of the latest scanned page, but that's too small to see quality details.

Is there a way to have the Viewer Pane refresh to show the latest addition to a folder, or the topmost or bottom-most file, etc.? My current workaround is to set the Max Thumbnail Size to 1024 and then I can see each updated image scroll at the top of the folder (sort by latest created or reverse file name). Obviously this isn't what thumbnails were designed to accomplish and it uses a lot of cache and memory.


Does your scanner software let you configure it to run an arbitrary program after each scan?


Well, I run multiple scanners/software: Plustek OpticBook (proprietary), Fujitsu ScanSnap IX500 (proprietary), and sometimes VueScan with the OpticBook. The ScanSnap feeds 50 pages per minute (25 x 2 duplex), so I doubt invoking an external program successively at that rate is going to work as an option. The ScanSnap itself displays each page as scanned but too small to monitor for streaking on the images caused by dust accumulation. Thus I prefer to use DirOpus for its superior interface. The extra-big thumbnail approach actually works pretty well, but an automatically updating Viewer Pane would be even better.


The viewer pane could be made to auto-update using a script, if you can get your scanner software to run an external program. Hence my question.


I see. Is there a way for a script to sense a new file added to the current "active" folder and display that file in the viewer pane, keeping the script's scope self-contained within Dir Opus?


The command Select DATE=newest SETFOCUS will automatically select the most recent file in the file display and display it in the viewer pane (if it's open), so if you could call a script that runs that command from your scanner software whenever it finishes a scan then you could probably make it work. You'd possibly need a small delay to wait for the file list to update to show any new files (or run Go REFRESH first).


Thanks. I don't believe I can invoke an external program from my most frequently used software, that's why I was wondering if a script can work 'within' DirOpus itself, i.e., can a script monitor an event in DirOpus like a file added to a folder and do something in DirOpus in response, set the Viewr Pane to focus on it. (You can see I don't know about scripting in DirOpus!) So I'll stick with the thumbnails method for now. I've got the maximum set to 1024 pixels and that or 512 works well enough for my needs and I've been pleasantly surprised to not have memory issues so far with the large sizes.


I would like the standalone viewer auto-refresh like viewer pane when i select a file from a lister, is it possible?


[quote="0xt1n, post:8, topic:26249"]
I would like the standalone viewer auto-refresh like viewer pane when i select a file from a lister[/quote]

Only the viewer pane can respond to selection changes in the lister, at least currently.

The standalone viewer can tell the lister to select its current file when you change files in the viewer (e.g. via mousewheel or spacebar) but can't be controlled in the opposite direction at the moment.


Here's a little script that will keep showing the newest file in the source until you press shift-ctrl-alt. Update interval is set to 1 sec.

function OnClick(clickData) {
    var cmd = clickData.func.command;
    var tab = clickData.func.sourcetab;
    cmd.RunCommand('Close ALLVIEWERS');
    while (DOpus.GetQualifiers != 'shift,ctrl,alt') {
        cmd.RunCommand('Go REFRESH');
        cmd.RunCommand('Select NONE');
        cmd.RunCommand('Select DATE=newest SETFOCUS');
        cmd.RunCommand('Select SHOWFOCUS');
    cmd.RunCommand('Close ALLVIEWERS');

ShowInterval.dcf (1.4 KB)


Thank you for your replies.
I tried your code but could't make it work lxp, it froze Dopus and i had to restart.
What I am looking is just trigger the viewer when i click a file or show the selected file in 1 sec interval for example as your script.
My aim is to get Seer or QuickLook behaviour inside Dopus with its Standalone viewer and I know that it is achievable but just could't make the viewer refresh every time. I put the "Show" button to "Space" hotkey and keep the viewer window open on top. I select a file and click "Space", viewer opens but when I click to another file I need to hit the "Space" again to trigger. I would like the viewer auto-refresh.
As Leo said, it is not available at the moment i think.


I posted in this thread two years ago now. Since then I've continued to use the thumbnails method and it's really quite good. With thumbnails set to multiples such as 1024 / 512 / 256 on my 30" monitor, and sorting set to Modified or Created Date with most recent at the top, each new file thumbnail appears at the top left of the file pane as it is created. So no interval time polling is needed (no script for that matter), the screen only updates when a new file is created in the folder. I've used it to monitor sheetfed scanning by my Fujitsu ScanSnap, which scans very quickly, and DirOpus displays each scan/thumbnail with no more than a 1-second delay from the scan. (The ScanSnap program itself only displays small thumbnails of images, not large enough to check quality.) Using this I routinely scan 200 to 400 images into a folder as 1024-pixel thumbnails with no memory issues and a bonus of being able to see a couple of the most recent scans at once and to scroll to see the preceding ones. It works well enough that I no longer consider the lack of an auto update in the Viewer Pane as a problem.


Did you keep the keys pressed down long enough? The script only checks once every second.