add renumber frame button

This commit is contained in:
Kayla Man 2023-06-02 15:15:32 +08:00
parent ec923be44e
commit d6b22badd2
2 changed files with 36 additions and 13 deletions

View file

@ -177,6 +177,7 @@ def deliver_sequence(
format_dict,
report_items,
log,
renumber_frame=False,
frame_offset=0
):
""" For Pype2(mainly - works in 3 too) where representation might not
@ -299,19 +300,34 @@ def deliver_sequence(
src = os.path.normpath(
os.path.join(dir_path, src_file_name)
)
dsp_index = int(index) + frame_offset
if dsp_index < 0:
msg = "Frame has a smaller number than Frame Offset"
report_items[msg].append(src_file_name)
log.warning("{} <{}>".format(msg, context))
return report_items, 0
dst_padding = dst_collection.format("{padding}") % dsp_index
dst = "{}{}{}".format(dst_head, dst_padding, dst_tail)
dst = os.path.normpath(
os.path.join(delivery_folder, dst)
)
_copy_file(src, dst)
if renumber_frame:
first_index = src_collection.indexes[0]
dsp_index = (int(index) - first_index) + 1
dst_padding = dst_collection.format("{padding}") % dsp_index
dst = "{}{}{}".format(dst_head, dst_padding, dst_tail)
dst = os.path.normpath(
os.path.join(delivery_folder, dst)
)
_copy_file(src, dst)
else:
dsp_index = int(index) + frame_offset
if dsp_index < 0:
msg = "Frame has a smaller number than Frame Offset"
report_items[msg].append(src_file_name)
log.warning("{} <{}>".format(msg, context))
return report_items, 0
dst_padding = dst_collection.format("{padding}") % dsp_index
dst = "{}{}{}".format(dst_head, dst_padding, dst_tail)
dst = os.path.normpath(
os.path.join(delivery_folder, dst)
)
_copy_file(src, dst)
uploaded += 1
return report_items, uploaded

View file

@ -1,4 +1,5 @@
import copy
import math
from collections import defaultdict
from qtpy import QtWidgets, QtCore, QtGui
@ -88,8 +89,10 @@ class DeliveryOptionsDialog(QtWidgets.QDialog):
template_label.setCursor(QtGui.QCursor(QtCore.Qt.IBeamCursor))
template_label.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse)
renumber_frame = QtWidgets.QCheckBox()
frame_offset_value = QtWidgets.QSpinBox()
frame_offset_value.setMinimum(-99)
frame_offset_value.setMinimum(-(1<<32)//2)
root_line_edit = QtWidgets.QLineEdit()
@ -115,6 +118,7 @@ class DeliveryOptionsDialog(QtWidgets.QDialog):
input_layout.addRow("Delivery template", dropdown)
input_layout.addRow("Template value", template_label)
input_layout.addRow("Frame Offset", frame_offset_value)
input_layout.addRow("Renumber Frame", renumber_frame)
input_layout.addRow("Root", root_line_edit)
input_layout.addRow("Representations", repre_checkboxes_layout)
@ -143,6 +147,7 @@ class DeliveryOptionsDialog(QtWidgets.QDialog):
self.template_label = template_label
self.dropdown = dropdown
self.frame_offset_value = frame_offset_value
self.renumber_frame = renumber_frame
self.root_line_edit = root_line_edit
self.progress_bar = progress_bar
self.text_area = text_area
@ -170,6 +175,7 @@ class DeliveryOptionsDialog(QtWidgets.QDialog):
datetime_data = get_datetime_data()
template_name = self.dropdown.currentText()
format_dict = get_format_dict(self.anatomy, self.root_line_edit.text())
renumber_frame = self.renumber_frame.isChecked()
frame_offset = self.frame_offset_value.value()
for repre in self._representations:
if repre["name"] not in selected_repres:
@ -223,6 +229,7 @@ class DeliveryOptionsDialog(QtWidgets.QDialog):
if not frame:
new_report_items, uploaded = deliver_single_file(*args)
else:
args.append(renumber_frame)
args.append(frame_offset)
new_report_items, uploaded = deliver_sequence(*args)
report_items.update(new_report_items)