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

Commit

Permalink
Merge pull request #1106 from pypeclub/bugfix/2_0_1074-nuke-loader-co…
Browse files Browse the repository at this point in the history
…ntext

Reset loader's asset selection on context change
  • Loading branch information
mkolar authored Mar 10, 2021
2 parents c88400c + b00a624 commit dd80226
Showing 1 changed file with 12 additions and 15 deletions.
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

0 comments on commit dd80226

Please sign in to comment.