mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 08:24:53 +01:00
refactor launching the workfile - remove redundant code
This commit is contained in:
parent
7e6af882bd
commit
e6bb56b088
2 changed files with 10 additions and 51 deletions
|
|
@ -8,7 +8,6 @@ import json
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
|
|
||||||
import six
|
import six
|
||||||
from qtpy import QtCore, QtWidgets
|
|
||||||
import ayon_api
|
import ayon_api
|
||||||
|
|
||||||
from ayon_core.lib import StringTemplate
|
from ayon_core.lib import StringTemplate
|
||||||
|
|
@ -24,11 +23,7 @@ from ayon_core.pipeline import (
|
||||||
from ayon_core.pipeline.create import CreateContext
|
from ayon_core.pipeline.create import CreateContext
|
||||||
from ayon_core.pipeline.template_data import get_template_data
|
from ayon_core.pipeline.template_data import get_template_data
|
||||||
from ayon_core.pipeline.context_tools import get_current_folder_entity
|
from ayon_core.pipeline.context_tools import get_current_folder_entity
|
||||||
from ayon_core.tools.utils import (
|
from ayon_core.tools.utils import PopupUpdateKeys, SimplePopup
|
||||||
PopupUpdateKeys,
|
|
||||||
SimplePopup,
|
|
||||||
host_tools
|
|
||||||
)
|
|
||||||
from ayon_core.tools.utils.host_tools import get_tool_by_name
|
from ayon_core.tools.utils.host_tools import get_tool_by_name
|
||||||
|
|
||||||
import hou
|
import hou
|
||||||
|
|
@ -1198,46 +1193,3 @@ def prompt_reset_context():
|
||||||
update_content_on_context_change()
|
update_content_on_context_change()
|
||||||
|
|
||||||
dialog.deleteLater()
|
dialog.deleteLater()
|
||||||
|
|
||||||
|
|
||||||
def wait_startup_launch_workfiles_app():
|
|
||||||
"""Show workfiles tool on Houdini launch.
|
|
||||||
|
|
||||||
Trigger to show workfiles tool on application launch. Can be executed only
|
|
||||||
once all other calls are ignored.
|
|
||||||
|
|
||||||
Workfiles tool show is deferred after application initialization using
|
|
||||||
QTimer.
|
|
||||||
|
|
||||||
Basically, it should wait till the app finish starting up.
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Show workfiles tool using timer
|
|
||||||
# - this will be probably triggered during initialization in that case
|
|
||||||
# the application is not be able to show uis so it must be
|
|
||||||
# deferred using timer
|
|
||||||
# - timer should be processed when initialization ends
|
|
||||||
# When applications starts to process events.
|
|
||||||
timer = QtCore.QTimer()
|
|
||||||
timer.timeout.connect(lambda: _launch_workfile_app(timer))
|
|
||||||
timer.setInterval(100)
|
|
||||||
timer.start()
|
|
||||||
|
|
||||||
|
|
||||||
def _launch_workfile_app(timer):
|
|
||||||
# Safeguard to not show window when application is still starting up
|
|
||||||
# or is already closing down.
|
|
||||||
closing_down = QtWidgets.QApplication.closingDown()
|
|
||||||
starting_up = QtWidgets.QApplication.startingUp()
|
|
||||||
|
|
||||||
# Stop the timer if application finished start up of is closing down
|
|
||||||
if closing_down or not starting_up:
|
|
||||||
timer.stop()
|
|
||||||
|
|
||||||
# Skip if application is starting up or closing down
|
|
||||||
if starting_up or closing_down:
|
|
||||||
return
|
|
||||||
|
|
||||||
# Make sure on top is enabled on first show so the window is not hidden
|
|
||||||
# under main nuke window
|
|
||||||
host_tools.show_workfiles(parent=hou.qt.mainWindow(), on_top=True)
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import logging
|
||||||
import hou # noqa
|
import hou # noqa
|
||||||
|
|
||||||
from ayon_core.host import HostBase, IWorkfileHost, ILoadHost, IPublishHost
|
from ayon_core.host import HostBase, IWorkfileHost, ILoadHost, IPublishHost
|
||||||
|
from ayon_core.tools.utils import host_tools
|
||||||
import pyblish.api
|
import pyblish.api
|
||||||
|
|
||||||
from ayon_core.pipeline import (
|
from ayon_core.pipeline import (
|
||||||
|
|
@ -25,6 +25,13 @@ from ayon_core.lib import (
|
||||||
emit_event,
|
emit_event,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def show_workfiles_tool():
|
||||||
|
# Make sure on top is enabled on first show so the
|
||||||
|
# window is not hidden under main nuke window
|
||||||
|
print("showing workfiles tool..")
|
||||||
|
from ayon_core.tools.utils import host_tools
|
||||||
|
host_tools.show_workfiles(parent=hou.qt.mainWindow(),
|
||||||
|
on_top=True)
|
||||||
|
|
||||||
log = logging.getLogger("ayon_houdini")
|
log = logging.getLogger("ayon_houdini")
|
||||||
|
|
||||||
|
|
@ -87,7 +94,7 @@ class HoudiniHost(HostBase, IWorkfileHost, ILoadHost, IPublishHost):
|
||||||
hdefereval.executeDeferred(shelves.generate_shelves)
|
hdefereval.executeDeferred(shelves.generate_shelves)
|
||||||
hdefereval.executeDeferred(creator_node_shelves.install)
|
hdefereval.executeDeferred(creator_node_shelves.install)
|
||||||
if os.environ.get("AYON_WORKFILE_TOOL_ON_START"):
|
if os.environ.get("AYON_WORKFILE_TOOL_ON_START"):
|
||||||
hdefereval.executeDeferred(lib.wait_startup_launch_workfiles_app)
|
hdefereval.executeDeferred(lambda: host_tools.show_workfiles(parent=hou.qt.mainWindow()))
|
||||||
|
|
||||||
def workfile_has_unsaved_changes(self):
|
def workfile_has_unsaved_changes(self):
|
||||||
return hou.hipFile.hasUnsavedChanges()
|
return hou.hipFile.hasUnsavedChanges()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue