Can one desktop app invoke another?

I’d like to put a custom front-end on tk-multi-publish. I’m thinking one way to do it is I could create a small desktop app with my custom front end, write the saved items info somewhere, and then have my app invoke tk-multi-publish in such a way as to pick up the items I saved from the front end app (via a custom hook) and not use its own drag & drop initial dialog.
Is that possible? Can one app “call” another one?

Through the engine member you’d have access to the other apps in the current context.

See this hook in tk-nuke for tk-multi-publish2 that expects tk-nuke-writenode app to be available: tk-nuke/collector.py at master · shotgunsoftware/tk-nuke · GitHub

1 Like

Thanks @Halil. I’m trying this now, and have some initial things working. Thank you for the pointer!

Perhaps someone could help with one thing I’m hung up on:
My app gets the tk-multi-publish app and its module OK, and then I call

tk_publish_module.show_dialog(tk_publish_app)

which shows the usual publish UI. But I then want a handle to that widget so I can call its _on_drop() method with my files. And unfortunately that show_dialog method doesn’t return anything.

I can do this if I modify tk-multi-publish to return the widget in its show_dialog() method, but is there a way to get the app’s widget without modifying tk-multi-publish? I’d like to keep that pristine, and just put my selection UI in front of it.

Any ideas?