mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
101 lines
2.3 KiB
Python
101 lines
2.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""Open install dialog."""
|
|
|
|
import os
|
|
import sys
|
|
|
|
os.chdir(os.path.dirname(__file__)) # for override sys.path in Deadline
|
|
|
|
from .bootstrap_repos import (
|
|
BootstrapRepos,
|
|
OpenPypeVersion
|
|
)
|
|
from .version import __version__ as version
|
|
|
|
# Store OpenPypeVersion to 'sys.modules'
|
|
# - this makes it available in OpenPype processes without modifying
|
|
# 'sys.path' or 'PYTHONPATH'
|
|
if "OpenPypeVersion" not in sys.modules:
|
|
sys.modules["OpenPypeVersion"] = OpenPypeVersion
|
|
|
|
|
|
def _get_qt_app():
|
|
from qtpy import QtWidgets, QtCore
|
|
|
|
app = QtWidgets.QApplication.instance()
|
|
if app is not None:
|
|
return app
|
|
|
|
for attr_name in (
|
|
"AA_EnableHighDpiScaling",
|
|
"AA_UseHighDpiPixmaps",
|
|
):
|
|
attr = getattr(QtCore.Qt, attr_name, None)
|
|
if attr is not None:
|
|
QtWidgets.QApplication.setAttribute(attr)
|
|
|
|
if hasattr(QtWidgets.QApplication, "setHighDpiScaleFactorRoundingPolicy"):
|
|
QtWidgets.QApplication.setHighDpiScaleFactorRoundingPolicy(
|
|
QtCore.Qt.HighDpiScaleFactorRoundingPolicy.PassThrough
|
|
)
|
|
|
|
return QtWidgets.QApplication(sys.argv)
|
|
|
|
|
|
def open_dialog():
|
|
"""Show Igniter dialog."""
|
|
if os.getenv("OPENPYPE_HEADLESS_MODE"):
|
|
print("!!! Can't open dialog in headless mode. Exiting.")
|
|
sys.exit(1)
|
|
from .install_dialog import InstallDialog
|
|
|
|
app = _get_qt_app()
|
|
|
|
d = InstallDialog()
|
|
d.open()
|
|
|
|
app.exec_()
|
|
return d.result()
|
|
|
|
|
|
def open_update_window(openpype_version):
|
|
"""Open update window."""
|
|
if os.getenv("OPENPYPE_HEADLESS_MODE"):
|
|
print("!!! Can't open dialog in headless mode. Exiting.")
|
|
sys.exit(1)
|
|
|
|
from .update_window import UpdateWindow
|
|
|
|
app = _get_qt_app()
|
|
|
|
d = UpdateWindow(version=openpype_version)
|
|
d.open()
|
|
|
|
app.exec_()
|
|
version_path = d.get_version_path()
|
|
return version_path
|
|
|
|
|
|
def show_message_dialog(title, message):
|
|
"""Show dialog with a message and title to user."""
|
|
if os.getenv("OPENPYPE_HEADLESS_MODE"):
|
|
print("!!! Can't open dialog in headless mode. Exiting.")
|
|
sys.exit(1)
|
|
|
|
from .message_dialog import MessageDialog
|
|
|
|
app = _get_qt_app()
|
|
|
|
dialog = MessageDialog(title, message)
|
|
dialog.open()
|
|
|
|
app.exec_()
|
|
|
|
|
|
__all__ = [
|
|
"BootstrapRepos",
|
|
"open_dialog",
|
|
"open_update_window",
|
|
"show_message_dialog",
|
|
"version"
|
|
]
|