mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
fusion: adding reset resolution
(cherry picked from commit 209511ee3d938e21c20cff03edcdbbde4a4791f0)
This commit is contained in:
parent
e8d6f1d9e9
commit
e72c768068
3 changed files with 45 additions and 11 deletions
|
|
@ -23,7 +23,8 @@ from .workio import (
|
|||
from .lib import (
|
||||
maintained_selection,
|
||||
get_additional_data,
|
||||
update_frame_range
|
||||
update_frame_range,
|
||||
set_framerange
|
||||
)
|
||||
|
||||
from .menu import launch_openpype_menu
|
||||
|
|
@ -53,6 +54,7 @@ __all__ = [
|
|||
"maintained_selection",
|
||||
"get_additional_data",
|
||||
"update_frame_range",
|
||||
"set_framerange",
|
||||
|
||||
# menu
|
||||
"launch_openpype_menu",
|
||||
|
|
|
|||
|
|
@ -8,12 +8,14 @@ from Qt import QtGui
|
|||
import avalon.api
|
||||
from avalon import io
|
||||
from .pipeline import get_current_comp, comp_lock_and_undo_chunk
|
||||
|
||||
from openpype.api import (
|
||||
get_asset
|
||||
)
|
||||
self = sys.modules[__name__]
|
||||
self._project = None
|
||||
|
||||
|
||||
def update_frame_range(start, end, comp=None, set_render_range=True):
|
||||
def update_frame_range(start, end, comp=None, set_render_range=True, **kwargs):
|
||||
"""Set Fusion comp's start and end frame range
|
||||
|
||||
Args:
|
||||
|
|
@ -22,6 +24,7 @@ def update_frame_range(start, end, comp=None, set_render_range=True):
|
|||
comp (object, Optional): comp object from fusion
|
||||
set_render_range (bool, Optional): When True this will also set the
|
||||
composition's render start and end frame.
|
||||
kwargs (dict): additional kwargs
|
||||
|
||||
Returns:
|
||||
None
|
||||
|
|
@ -36,6 +39,16 @@ def update_frame_range(start, end, comp=None, set_render_range=True):
|
|||
"COMPN_GlobalEnd": end
|
||||
}
|
||||
|
||||
# exclude handles if any found in kwargs
|
||||
if kwargs.get("handle_start"):
|
||||
handle_start = kwargs.get("handle_start")
|
||||
attrs["COMPN_GlobalStart"] = int(start - handle_start)
|
||||
|
||||
if kwargs.get("handle_end"):
|
||||
handle_end = kwargs.get("handle_end")
|
||||
attrs["COMPN_GlobalEnd"] = int(end + handle_end)
|
||||
|
||||
# set frame range
|
||||
if set_render_range:
|
||||
attrs.update({
|
||||
"COMPN_RenderStart": start,
|
||||
|
|
@ -46,6 +59,18 @@ def update_frame_range(start, end, comp=None, set_render_range=True):
|
|||
comp.SetAttrs(attrs)
|
||||
|
||||
|
||||
def set_framerange():
|
||||
asset_doc = get_asset()
|
||||
start = asset_doc["data"]["frameStart"]
|
||||
end = asset_doc["data"]["frameEnd"]
|
||||
|
||||
data = {
|
||||
"handle_start": asset_doc["data"]["handleStart"],
|
||||
"handle_end": asset_doc["data"]["handleEnd"]
|
||||
}
|
||||
update_frame_range(start, end, set_render_range=True, **data)
|
||||
|
||||
|
||||
def get_additional_data(container):
|
||||
"""Get Fusion related data for the container
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
import os
|
||||
import sys
|
||||
|
||||
from Qt import QtWidgets, QtCore
|
||||
|
|
@ -11,7 +10,9 @@ from openpype.hosts.fusion.scripts import (
|
|||
set_rendermode,
|
||||
duplicate_with_inputs
|
||||
)
|
||||
|
||||
from openpype.hosts.fusion.api import (
|
||||
set_framerange
|
||||
)
|
||||
|
||||
class Spacer(QtWidgets.QWidget):
|
||||
def __init__(self, height, *args, **kwargs):
|
||||
|
|
@ -61,12 +62,11 @@ class OpenPypeMenu(QtWidgets.QWidget):
|
|||
manager_btn = QtWidgets.QPushButton("Manage...", self)
|
||||
libload_btn = QtWidgets.QPushButton("Library...", self)
|
||||
rendermode_btn = QtWidgets.QPushButton("Set render mode...", self)
|
||||
set_framerange_btn = QtWidgets.QPushButton("Set Frame Range", self)
|
||||
set_resolution_btn = QtWidgets.QPushButton("Set Resolution", self)
|
||||
duplicate_with_inputs_btn = QtWidgets.QPushButton(
|
||||
"Duplicate with input connections", self
|
||||
)
|
||||
reset_resolution_btn = QtWidgets.QPushButton(
|
||||
"Reset Resolution from project", self
|
||||
)
|
||||
|
||||
layout = QtWidgets.QVBoxLayout(self)
|
||||
layout.setContentsMargins(10, 20, 10, 20)
|
||||
|
|
@ -90,12 +90,13 @@ class OpenPypeMenu(QtWidgets.QWidget):
|
|||
|
||||
layout.addWidget(Spacer(15, self))
|
||||
|
||||
layout.addWidget(set_framerange_btn)
|
||||
layout.addWidget(set_resolution_btn)
|
||||
layout.addWidget(rendermode_btn)
|
||||
|
||||
layout.addWidget(Spacer(15, self))
|
||||
|
||||
layout.addWidget(duplicate_with_inputs_btn)
|
||||
layout.addWidget(reset_resolution_btn)
|
||||
|
||||
self.setLayout(layout)
|
||||
|
||||
|
|
@ -111,7 +112,8 @@ class OpenPypeMenu(QtWidgets.QWidget):
|
|||
rendermode_btn.clicked.connect(self.on_rendernode_clicked)
|
||||
duplicate_with_inputs_btn.clicked.connect(
|
||||
self.on_duplicate_with_inputs_clicked)
|
||||
reset_resolution_btn.clicked.connect(self.on_reset_resolution_clicked)
|
||||
set_resolution_btn.clicked.connect(self.on_set_resolution_clicked)
|
||||
set_framerange_btn.clicked.connect(self.on_set_framerange_clicked)
|
||||
|
||||
self._callbacks = []
|
||||
self.register_callback("taskChanged", self.on_task_changed)
|
||||
|
|
@ -171,9 +173,14 @@ class OpenPypeMenu(QtWidgets.QWidget):
|
|||
duplicate_with_inputs.duplicate_with_input_connections()
|
||||
print("Clicked Set Colorspace")
|
||||
|
||||
def on_reset_resolution_clicked(self):
|
||||
def on_set_resolution_clicked(self):
|
||||
print("Clicked Reset Resolution")
|
||||
|
||||
def on_set_framerange_clicked(self):
|
||||
print("Clicked Reset Framerange")
|
||||
set_framerange()
|
||||
|
||||
|
||||
|
||||
def launch_openpype_menu():
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue