mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
Merge pull request #1182 from BigRoy/enhancement/save_workfile_artist_note_input
Add "Artist Note" input field to Save Workfile prompt
This commit is contained in:
commit
b1fa7e5341
4 changed files with 37 additions and 10 deletions
|
|
@ -1016,6 +1016,7 @@ class AbstractWorkfilesFrontend(AbstractWorkfilesCommon):
|
|||
workdir,
|
||||
filename,
|
||||
template_key,
|
||||
artist_note,
|
||||
):
|
||||
"""Save current state of workfile to workarea.
|
||||
|
||||
|
|
@ -1040,6 +1041,7 @@ class AbstractWorkfilesFrontend(AbstractWorkfilesCommon):
|
|||
workdir,
|
||||
filename,
|
||||
template_key,
|
||||
artist_note,
|
||||
):
|
||||
"""Action to copy published workfile representation to workarea.
|
||||
|
||||
|
|
@ -1054,12 +1056,13 @@ class AbstractWorkfilesFrontend(AbstractWorkfilesCommon):
|
|||
workdir (str): Workarea directory.
|
||||
filename (str): Workarea filename.
|
||||
template_key (str): Template key.
|
||||
artist_note (str): Artist note.
|
||||
"""
|
||||
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def duplicate_workfile(self, src_filepath, workdir, filename):
|
||||
def duplicate_workfile(self, src_filepath, workdir, filename, artist_note):
|
||||
"""Duplicate workfile.
|
||||
|
||||
Workfiles is not opened when done.
|
||||
|
|
@ -1068,6 +1071,7 @@ class AbstractWorkfilesFrontend(AbstractWorkfilesCommon):
|
|||
src_filepath (str): Source workfile path.
|
||||
workdir (str): Destination workdir.
|
||||
filename (str): Destination filename.
|
||||
artist_note (str): Artist note.
|
||||
"""
|
||||
|
||||
pass
|
||||
|
|
|
|||
|
|
@ -554,6 +554,7 @@ class BaseWorkfileController(
|
|||
workdir,
|
||||
filename,
|
||||
template_key,
|
||||
artist_note,
|
||||
):
|
||||
self._emit_event("save_as.started")
|
||||
|
||||
|
|
@ -565,6 +566,7 @@ class BaseWorkfileController(
|
|||
workdir,
|
||||
filename,
|
||||
template_key,
|
||||
artist_note=artist_note,
|
||||
)
|
||||
except Exception:
|
||||
failed = True
|
||||
|
|
@ -584,6 +586,7 @@ class BaseWorkfileController(
|
|||
workdir,
|
||||
filename,
|
||||
template_key,
|
||||
artist_note,
|
||||
):
|
||||
self._emit_event("copy_representation.started")
|
||||
|
||||
|
|
@ -595,6 +598,7 @@ class BaseWorkfileController(
|
|||
workdir,
|
||||
filename,
|
||||
template_key,
|
||||
artist_note,
|
||||
src_filepath=representation_filepath
|
||||
)
|
||||
except Exception:
|
||||
|
|
@ -608,7 +612,7 @@ class BaseWorkfileController(
|
|||
{"failed": failed},
|
||||
)
|
||||
|
||||
def duplicate_workfile(self, src_filepath, workdir, filename):
|
||||
def duplicate_workfile(self, src_filepath, workdir, filename, artist_note):
|
||||
self._emit_event("workfile_duplicate.started")
|
||||
|
||||
failed = False
|
||||
|
|
@ -701,11 +705,12 @@ class BaseWorkfileController(
|
|||
|
||||
def _save_as_workfile(
|
||||
self,
|
||||
folder_id,
|
||||
task_id,
|
||||
workdir,
|
||||
filename,
|
||||
template_key,
|
||||
folder_id: str,
|
||||
task_id: str,
|
||||
workdir: str,
|
||||
filename: str,
|
||||
template_key: str,
|
||||
artist_note: str,
|
||||
src_filepath=None,
|
||||
):
|
||||
# Trigger before save event
|
||||
|
|
@ -748,7 +753,11 @@ class BaseWorkfileController(
|
|||
self._host_save_workfile(dst_filepath)
|
||||
|
||||
# Make sure workfile info exists
|
||||
self.save_workfile_info(folder_id, task_name, dst_filepath, None)
|
||||
if not artist_note:
|
||||
artist_note = None
|
||||
self.save_workfile_info(
|
||||
folder_id, task_name, dst_filepath, note=artist_note
|
||||
)
|
||||
|
||||
# Create extra folders
|
||||
create_workdir_extra_folders(
|
||||
|
|
|
|||
|
|
@ -213,7 +213,8 @@ class FilesWidget(QtWidgets.QWidget):
|
|||
self._controller.duplicate_workfile(
|
||||
filepath,
|
||||
result["workdir"],
|
||||
result["filename"]
|
||||
result["filename"],
|
||||
artist_note=result["artist_note"]
|
||||
)
|
||||
|
||||
def _on_workarea_browse_clicked(self):
|
||||
|
|
@ -261,6 +262,7 @@ class FilesWidget(QtWidgets.QWidget):
|
|||
result["workdir"],
|
||||
result["filename"],
|
||||
result["template_key"],
|
||||
artist_note=result["artist_note"]
|
||||
)
|
||||
|
||||
def _on_workarea_path_changed(self, event):
|
||||
|
|
@ -313,6 +315,7 @@ class FilesWidget(QtWidgets.QWidget):
|
|||
result["workdir"],
|
||||
result["filename"],
|
||||
result["template_key"],
|
||||
artist_note=result["artist_note"]
|
||||
)
|
||||
|
||||
def _on_save_as_request(self):
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from qtpy import QtWidgets, QtCore
|
||||
|
||||
from ayon_core.tools.utils import PlaceholderLineEdit
|
||||
from ayon_core.tools.utils import PlaceholderLineEdit, PlaceholderPlainTextEdit
|
||||
|
||||
|
||||
class SubversionLineEdit(QtWidgets.QWidget):
|
||||
|
|
@ -143,6 +143,11 @@ class SaveAsDialog(QtWidgets.QDialog):
|
|||
version_layout.addWidget(version_input)
|
||||
version_layout.addWidget(last_version_check)
|
||||
|
||||
# Artist note widget
|
||||
artist_note_input = PlaceholderPlainTextEdit(inputs_widget)
|
||||
artist_note_input.setPlaceholderText(
|
||||
"Provide a note about this workfile.")
|
||||
|
||||
# Preview widget
|
||||
preview_widget = QtWidgets.QLabel("Preview filename", inputs_widget)
|
||||
preview_widget.setWordWrap(True)
|
||||
|
|
@ -161,6 +166,7 @@ class SaveAsDialog(QtWidgets.QDialog):
|
|||
subversion_label = QtWidgets.QLabel("Subversion:", inputs_widget)
|
||||
extension_label = QtWidgets.QLabel("Extension:", inputs_widget)
|
||||
preview_label = QtWidgets.QLabel("Preview:", inputs_widget)
|
||||
artist_note_label = QtWidgets.QLabel("Artist Note:", inputs_widget)
|
||||
|
||||
# Build inputs
|
||||
inputs_layout = QtWidgets.QGridLayout(inputs_widget)
|
||||
|
|
@ -172,6 +178,8 @@ class SaveAsDialog(QtWidgets.QDialog):
|
|||
inputs_layout.addWidget(extension_combobox, 2, 1)
|
||||
inputs_layout.addWidget(preview_label, 3, 0)
|
||||
inputs_layout.addWidget(preview_widget, 3, 1)
|
||||
inputs_layout.addWidget(artist_note_label, 4, 0, 1, 2)
|
||||
inputs_layout.addWidget(artist_note_input, 5, 0, 1, 2)
|
||||
|
||||
# Build layout
|
||||
main_layout = QtWidgets.QVBoxLayout(self)
|
||||
|
|
@ -206,11 +214,13 @@ class SaveAsDialog(QtWidgets.QDialog):
|
|||
self._extension_combobox = extension_combobox
|
||||
self._subversion_input = subversion_input
|
||||
self._preview_widget = preview_widget
|
||||
self._artist_note_input = artist_note_input
|
||||
|
||||
self._version_label = version_label
|
||||
self._subversion_label = subversion_label
|
||||
self._extension_label = extension_label
|
||||
self._preview_label = preview_label
|
||||
self._artist_note_label = artist_note_label
|
||||
|
||||
# Post init setup
|
||||
|
||||
|
|
@ -322,6 +332,7 @@ class SaveAsDialog(QtWidgets.QDialog):
|
|||
"folder_id": self._folder_id,
|
||||
"task_id": self._task_id,
|
||||
"template_key": self._template_key,
|
||||
"artist_note": self._artist_note_input.toPlainText(),
|
||||
}
|
||||
self.close()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue