feat(resolve): refactory Creator for clips

This commit is contained in:
Jakub Jezek 2020-11-30 12:02:07 +01:00
parent 6448380312
commit f59f7bb398
No known key found for this signature in database
GPG key ID: C4B96E101D2A47F3
4 changed files with 37 additions and 47 deletions

View file

@ -303,7 +303,7 @@ def get_name_with_data(clip_data, presets):
})
def create_compound_clip(clip_data, folder, rename=False, **kwargs):
def create_compound_clip(clip_data, name, folder):
"""
Convert timeline object into nested timeline object
@ -311,8 +311,7 @@ def create_compound_clip(clip_data, folder, rename=False, **kwargs):
clip_data (dict): timeline item object packed into dict
with project, timeline (sequence)
folder (resolve.MediaPool.Folder): media pool folder object,
rename (bool)[optional]: renaming in sequence or not
kwargs (optional): additional data needed for rename=True (presets)
name (str): name for compound clip
Returns:
resolve.MediaPoolItem: media pool item with compound clip timeline(cct)
@ -324,34 +323,12 @@ def create_compound_clip(clip_data, folder, rename=False, **kwargs):
# get details of objects
clip_item = clip["item"]
track = clip_data["track"]
mp = project.GetMediaPool()
# get clip attributes
clip_attributes = get_clip_attributes(clip_item)
print(f"_ clip_attributes: {pformat(clip_attributes)}")
if rename:
presets = kwargs.get("presets")
if presets:
name, data = get_name_with_data(clip_data, presets)
# add hirarchy data to clip attributes
clip_attributes.update(data)
else:
name = "{:0>3}_{:0>4}".format(
int(track["index"]), int(clip["index"]))
else:
# build name
clip_name_split = clip_item.GetName().split(".")
name = "_".join([
track["name"],
str(track["index"]),
clip_name_split[0],
str(clip["index"])]
)
# get metadata
mp_item = clip_item.GetMediaPoolItem()
mp_props = mp_item.GetClipProperty()

View file

@ -4,6 +4,17 @@ QWidget {
font-size: 13px;
}
QComboBox {
border: 1px solid #090909;
background-color: #201f1f;
color: #ffffff;
}
QComboBox QAbstractItemView
{
color: white;
}
QPushButton {
border: 1px solid #090909;
background-color: #201f1f;

View file

@ -390,23 +390,24 @@ class PublishClip:
vertical_sync_default = False
driving_layer_default = ""
def __init__(self, cls, track_item, **kwargs):
def __init__(self, cls, track_item_data, **kwargs):
# populate input cls attribute onto self.[attr]
self.__dict__.update(cls.__dict__)
# get main parent objects
self.track_item = track_item["clip"]["item"]
sequence_name = track_item["sequence"].GetName()
self.track_item_data = track_item_data
self.track_item = track_item_data["clip"]["item"]
sequence_name = track_item_data["sequence"].GetName()
self.sequence_name = str(sequence_name).replace(" ", "_")
# track item (clip) main attributes
self.ti_name = self.track_item.GetName()
self.ti_index = int(track_item["clip"]["index"])
self.ti_index = int(track_item_data["clip"]["index"])
# get track name and index
track_name = track_item["track"]["name"]
track_name = track_item_data["track"]["name"]
self.track_name = str(track_name).replace(" ", "_")
self.track_index = int(track_item["track"]["index"])
self.track_index = int(track_item_data["track"]["index"])
# adding tag.family into tag
if kwargs.get("avalon"):
@ -415,6 +416,9 @@ class PublishClip:
# adding ui inputs if any
self.ui_inputs = kwargs.get("ui_inputs", {})
# adding media pool folder if any
self.mp_folder = kwargs.get("mp_folder")
# populate default data before we get other attributes
self._populate_track_item_default_data()
@ -438,12 +442,16 @@ class PublishClip:
new_name = self.tag_data.pop("newClipName")
if self.rename:
# rename track item
self.track_item.setName(new_name)
self.tag_data["asset"] = new_name
else:
self.tag_data["asset"] = self.ti_name
self.track_item = lib.create_compound_clip(
self.track_item_data,
self.tag_data["asset"],
self.mp_folder
)
# create pype tag on track_item and add data
lib.imprint(self.track_item, self.tag_data)

View file

@ -240,11 +240,6 @@ class CreateShotClipNew(resolve.Creator):
sorted_selected_track_items.extend(unsorted_selected_track_items)
kwargs = {
"ui_inputs": widget.result,
"avalon": self.data
}
# sequence attrs
sq_frame_start = self.sequence.GetStartFrame()
sq_markers = self.sequence.GetMarkers()
@ -252,6 +247,14 @@ class CreateShotClipNew(resolve.Creator):
# create media bin for compound clips (trackItems)
mp_folder = resolve.create_current_sequence_media_bin(self.sequence)
kwargs = {
"ui_inputs": widget.result,
"avalon": self.data,
"mp_folder": mp_folder,
"sq_frame_start": sq_frame_start,
"sq_markers": sq_markers
}
for i, track_item_data in enumerate(sorted_selected_track_items):
self.rename_index = i
@ -260,12 +263,3 @@ class CreateShotClipNew(resolve.Creator):
# clear color after it is done
track_item_data["clip"]["item"].ClearClipColor()
# convert track item to timeline media pool item
resolve.create_compound_clip(
track_item_data,
mp_folder,
rename=True,
**dict(
{"presets": widget.result})
)