Add "Artist Note" input field to Save Workfile prompt

This commit is contained in:
Roy Nieterau 2025-03-10 16:07:03 +01:00
parent e420a97543
commit 99e5e326f8
4 changed files with 28 additions and 7 deletions

View file

@ -1016,6 +1016,7 @@ class AbstractWorkfilesFrontend(AbstractWorkfilesCommon):
workdir,
filename,
template_key,
artist_note,
):
"""Save current state of workfile to workarea.

View file

@ -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
@ -701,11 +703,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,
src_filepath=None,
):
# Trigger before save event
@ -748,7 +751,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(

View file

@ -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):

View file

@ -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 = QtWidgets.QPlainTextEdit(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)
inputs_layout.addWidget(artist_note_input, 4, 1)
# 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()