Skip to content

window

Tray publisher is extending publisher tool.

Adds ability to select project using overlay widget with list of projects.

Tray publisher can be considered as host implementeation with creators and publishing plugins.

ChooseProjectController

Source code in client/ayon_traypublisher/ui/window.py
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
class ChooseProjectController:
    def __init__(self):
        self._event_system = QueuedEventSystem()
        self._projects_model = ProjectsModel(self)
        self._registry = AYONSettingsRegistry("traypublisher")

    def get_project_items(self, sender=None):
        return self._projects_model.get_project_items(sender)

    def emit_event(self, topic, data=None, source=None):
        """Use implemented event system to trigger event."""

        if data is None:
            data = {}
        self._event_system.emit(topic, data, source)

    def register_event_callback(self, topic, callback):
        self._event_system.add_callback(topic, callback)

    def get_last_user_project_name(self) -> Optional[str]:
        try:
            return self._registry.get_item("project_name")
        except ValueError:
            pass

    def set_last_user_project_name(self, project_name: str):
        self._registry.set_item("project_name", project_name)

emit_event(topic, data=None, source=None)

Use implemented event system to trigger event.

Source code in client/ayon_traypublisher/ui/window.py
40
41
42
43
44
45
def emit_event(self, topic, data=None, source=None):
    """Use implemented event system to trigger event."""

    if data is None:
        data = {}
    self._event_system.emit(topic, data, source)