Expose Publish Progress UI


We’ve been making great use of tk-multi-publish2 over the last year or so using it for all kinds of publishes as it’s plugin workflow makes extension easier. One thing that we’re currently doing is using the publish UI for submitting jobs to the farm (as this means we can easily include scene publish and other downstream publish operations all as one). This is working great except that the UI doesn’t always lend itself to a particular task.

So we’ve started moving over to using the tk-multi-publish2 API to run the publishes in headless mode so we can make whatever UI we want (or put the UI into a node). The big thing that we miss is the validation progress widget. I think it would be really nice to expose some of the UI components from the app so that you can easily reuse certain components in your particular workflow.

I noticed that publish_tree_widget is now available by running publish_app.import_module(‘tk_multi_publish2’).publish_tree_widget but not sure whether that was intentional. Also it doesn’t seem obvious how to set this up and you need a few other widgets that aren’t exposed.

I’m currently having to reimplement the progress handler and then pass the logger into the manager when creating it.

Any suggestions on other workarounds?


Hmm, yeah I can see why that would be useful.
We do push some of the UI components out into our qtwidgets framework, for example the context picker is taken from there.
However I guess we usually separate out a UI component if we think we will use it somewhere else, and the validation progress widget would be quite specific to the publish app. That said I see where you are coming from, if you are wanting to rebuild the publish UI, but borrow bits.

I would say that the roadmap is a good place to suggest this, I don’t know of any work arounds off the top of my head, and I don’t think the method you used for getting the publish_tree_widget is intended to be a public method, so things might change there without warning from release to release.


Thanks @philip.scadding I’ll try to get round to writing a roadmap idea. I’m going to go ahead and try to re-implement something like the progress widget.

Good to know that using import_module is not considered public API.



To clarify, the method itself is public, but is intended to be used in your own custom apps, but not to extract out components from one of our apps :smiley:.