mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 13:24:54 +01:00
feat(nks): workio integration
This commit is contained in:
parent
bfdb1bc379
commit
4da9c04d9e
2 changed files with 82 additions and 0 deletions
|
|
@ -4,7 +4,17 @@ from avalon.tools import workfiles
|
|||
from avalon import api as avalon
|
||||
from pyblish import api as pyblish
|
||||
|
||||
from .workio import (
|
||||
open,
|
||||
save,
|
||||
current_file,
|
||||
has_unsaved_changes,
|
||||
file_extensions,
|
||||
work_root
|
||||
)
|
||||
|
||||
from .. import api
|
||||
|
||||
from .menu import (
|
||||
install as menu_install,
|
||||
_update_menu_task_label
|
||||
|
|
@ -17,6 +27,17 @@ import hiero
|
|||
|
||||
log = Logger().get_logger(__name__, "nukestudio")
|
||||
|
||||
__all__ = [
|
||||
# Workfiles API
|
||||
"open",
|
||||
"save",
|
||||
"current_file",
|
||||
"has_unsaved_changes",
|
||||
"file_extensions",
|
||||
"work_root",
|
||||
]
|
||||
|
||||
|
||||
AVALON_CONFIG = os.getenv("AVALON_CONFIG", "pype")
|
||||
|
||||
PARENT_DIR = os.path.dirname(__file__)
|
||||
|
|
|
|||
61
pype/nukestudio/workio.py
Normal file
61
pype/nukestudio/workio.py
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
"""Host API required Work Files tool"""
|
||||
import os
|
||||
import hiero
|
||||
|
||||
|
||||
def file_extensions():
|
||||
return [".hrox"]
|
||||
|
||||
|
||||
def has_unsaved_changes():
|
||||
return hiero.core.projects()[-1]
|
||||
|
||||
|
||||
def save(filepath):
|
||||
project = hiero.core.projects()[-1]
|
||||
|
||||
if project:
|
||||
project.saveAs(filepath)
|
||||
else:
|
||||
project = hiero.core.newProject()
|
||||
project.saveAs(filepath)
|
||||
|
||||
|
||||
def open(filepath):
|
||||
try:
|
||||
hiero.core.openProject(filepath)
|
||||
return True
|
||||
except Exception as e:
|
||||
try:
|
||||
from PySide.QtGui import *
|
||||
from PySide.QtCore import *
|
||||
except:
|
||||
from PySide2.QtGui import *
|
||||
from PySide2.QtWidgets import *
|
||||
from PySide2.QtCore import *
|
||||
|
||||
prompt = "Cannot open the selected file: `{}`".format(e)
|
||||
hiero.core.log.error(prompt)
|
||||
dialog = QMessageBox.critical(
|
||||
hiero.ui.mainWindow(), "Error", unicode(prompt))
|
||||
|
||||
|
||||
def current_file():
|
||||
import os
|
||||
import hiero
|
||||
|
||||
current_file = hiero.core.projects()[-1].path()
|
||||
normalised = os.path.normpath(current_file)
|
||||
|
||||
# Unsaved current file
|
||||
if normalised is '':
|
||||
return "NOT SAVED"
|
||||
|
||||
return normalised
|
||||
|
||||
|
||||
|
||||
def work_root():
|
||||
from avalon import api
|
||||
|
||||
return os.path.normpath(api.Session["AVALON_WORKDIR"]).replace("\\", "/")
|
||||
Loading…
Add table
Add a link
Reference in a new issue