mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
74 lines
1.9 KiB
Python
74 lines
1.9 KiB
Python
import os
|
|
import sys
|
|
|
|
from avalon import api, io
|
|
from avalon.vendor import Qt
|
|
from pype import lib
|
|
import pyblish.api
|
|
|
|
|
|
def check_inventory():
|
|
if not lib.any_outdated():
|
|
return
|
|
|
|
host = api.registered_host()
|
|
outdated_containers = []
|
|
for container in host.ls():
|
|
representation = container['representation']
|
|
representation_doc = io.find_one(
|
|
{
|
|
"_id": io.ObjectId(representation),
|
|
"type": "representation"
|
|
},
|
|
projection={"parent": True}
|
|
)
|
|
if representation_doc and not lib.is_latest(representation_doc):
|
|
outdated_containers.append(container)
|
|
|
|
# Warn about outdated containers.
|
|
print("Starting new QApplication..")
|
|
app = Qt.QtWidgets.QApplication(sys.argv)
|
|
|
|
message_box = Qt.QtWidgets.QMessageBox()
|
|
message_box.setIcon(Qt.QtWidgets.QMessageBox.Warning)
|
|
msg = "There are outdated containers in the scene."
|
|
message_box.setText(msg)
|
|
message_box.exec_()
|
|
|
|
# Garbage collect QApplication.
|
|
del app
|
|
|
|
|
|
def application_launch():
|
|
check_inventory()
|
|
|
|
|
|
def install():
|
|
print("Installing Pype config...")
|
|
|
|
plugins_directory = os.path.join(
|
|
os.path.dirname(os.path.dirname(os.path.dirname(__file__))),
|
|
"plugins",
|
|
"aftereffects"
|
|
)
|
|
|
|
pyblish.api.register_plugin_path(
|
|
os.path.join(plugins_directory, "publish")
|
|
)
|
|
api.register_plugin_path(
|
|
api.Loader, os.path.join(plugins_directory, "load")
|
|
)
|
|
api.register_plugin_path(
|
|
api.Creator, os.path.join(plugins_directory, "create")
|
|
)
|
|
|
|
pyblish.api.register_callback(
|
|
"instanceToggled", on_pyblish_instance_toggled
|
|
)
|
|
|
|
api.on("application.launched", application_launch)
|
|
|
|
|
|
def on_pyblish_instance_toggled(instance, old_value, new_value):
|
|
"""Toggle layer visibility on instance toggles."""
|
|
instance[0].Visible = new_value
|