Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Reset loader's asset selection on context change #1106

Merged
merged 1 commit into from
Mar 10, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 12 additions & 15 deletions pype/hosts/maya/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def install():
avalon.before("save", on_before_save)

log.info("Overriding existing event 'taskChanged'")
override_event("taskChanged", on_task_changed)
override_task_change_event()

log.info("Setting default family states for loader..")
avalon.data["familiesStateToggled"] = ["imagesequence"]
Expand All @@ -59,22 +59,19 @@ def uninstall():
menu.uninstall()


def override_event(event, callback):
"""
Override existing event callback
Args:
event (str): name of the event
callback (function): callback to be triggered

Returns:
None

"""
def override_task_change_event():
"""Override taskChanged event callback in avalon's maya implementation."""

ref = weakref.WeakSet()
ref.add(callback)
event_name = "taskChanged"
callbacks = pipeline._registered_event_handlers.get(event_name)
if callbacks:
# Remove callback from `avalon.maya.pipeline`
from avalon.maya.pipeline import _on_task_changed

pipeline._registered_event_handlers[event] = ref
if _on_task_changed in callbacks:
callbacks.remove(_on_task_changed)
# Register pype's callback
avalon.on(event_name, on_task_changed)


def on_init(_):
Expand Down