AWS Thinkbox Discussion Forums

DaVinci Resolve popup handling

Hi,

I have a plugin for Blackmagic’s DaVinci Resolve. https://github.com/Puppetworks-Animation-Studio/deadline-davinci-resolve

The application pops up a dialog when an item in the media pool is no longer available and hangs the application (even when started with -nogui).
I found a similar question here.
I added self.PopupHandling = True, but Deadline does not catch it. Checking with Process Explorer, the popup dialog’s owner is Resolve.exe, which is started and managed by my plugin.

What else can I try?

There’s a second part to popup handling, you’ll have to create handlers for the popups.

I’m sure you’ve see it but the example here in the docs shows a couple of popuphandlers.

self.AddPopupHandler( "Popup 3", "OK" ) will fire when a popup with the title/name of “Popup 3” and it will press the button labeled/named “OK”. To figure this out, there’s the Spy++ feature in Visual Studio. Or you can use WinSpy++ to figure out the title and the name of the button.

Give that a shot and let me know how it goes!

Hi Justin,

yeah, I tried the more advanced stuff too, like self.HandleQtPopups = True and self.SetEnvironmentVariable( "QT_USE_NATIVE_WINDOWS","1" ) without luck.
But in the topic I linked above there is this:

But Deadline does not detect DaVinci’s popups.

I also used Spy++ to get the title and the button of the popup, and tried setting it, but still no success.

    self.PopupHandling = True
    self.HandleQtPopups = True

    self.SetEnvironmentVariable("QT_USE_NATIVE_WINDOWS", "1")
    self.PopupButtonClasses = ("Qt5QWindowIcon",)
    self.AddPopupHandler(".*", "QPushButtonClassWindow")

Dang, you might be out of luck here.

Do you get anything in stdout from DaVinci? Maybe it can be run headlessly?

Also, maybe try setting that environment variable QT_USE_NATIVE_WINDOWS on the machine instead of letting the worker do it from inside the plugin. It’s a bit of a strech but it might help.

Unfortunately it outputs the error to stdout only after you close the popup…
Yes, it can run headlessly, with -nogui, that’s what I’m doing, but it still shows the popup. (Yes, I know, I should report it to their support, but I thought we could solve this the easy way…)

Using self.SetEnvironmentVariable("QT_USE_NATIVE_WINDOWS", "1") works, without it I cannot inspect the button with spy++. So one small achievement, we know that DaVinci uses Alien Widgets. :slight_smile:

Privacy | Site terms | Cookie preferences