From 1ddaba1f596897e11d41e96376ae21f34a1b06bd Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 7 Jan 2021 11:55:04 +0100 Subject: [PATCH] catch workfile creation --- pype/tools/workfiles/app.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/pype/tools/workfiles/app.py b/pype/tools/workfiles/app.py index ee2f5686b5..54c1be07b4 100644 --- a/pype/tools/workfiles/app.py +++ b/pype/tools/workfiles/app.py @@ -396,6 +396,7 @@ class TasksWidget(QtWidgets.QWidget): class FilesWidget(QtWidgets.QWidget): """A widget displaying files that allows to save and open files.""" file_selected = QtCore.Signal(object, str, str) + workfile_created = QtCore.Signal(str) def __init__(self, parent=None): super(FilesWidget, self).__init__(parent=parent) @@ -410,8 +411,7 @@ class FilesWidget(QtWidgets.QWidget): # TODO change template key based on task self.template_key = "work" - # Do not set root with Anatomy's roots because it would break host's - # implementation of `work_root` function + # This is not root but workfile directory self.root = None self.host = api.registered_host() @@ -626,6 +626,8 @@ class FilesWidget(QtWidgets.QWidget): dst = os.path.join(self.root, work_file) shutil.copy(src, dst) + self.workfile_created.emit(dst) + self.refresh() def _get_selected_filepath(self): @@ -682,7 +684,11 @@ class FilesWidget(QtWidgets.QWidget): self._enter_session() # Make sure we are in the right session self.host.save_file(file_path) + self.set_asset_task(self._asset, self._task) + + self.workfile_created.emit(file_path) + self.refresh() def on_file_select(self): @@ -898,6 +904,7 @@ class Window(QtWidgets.QMainWindow): assets_widget.current_changed.connect(self.on_asset_changed) tasks_widget.task_changed.connect(self.on_task_changed) files_widget.file_selected.connect(self.on_file_select) + files_widget.workfile_created.connect(self.on_workfile_create) self.assets_widget = assets_widget self.tasks_widget = tasks_widget @@ -911,9 +918,6 @@ class Window(QtWidgets.QMainWindow): self.resize(1000, 600) - def on_file_select(self, asset_doc, task_name, filepath): - self.side_panel.set_context(asset_doc, task_name, filepath) - def keyPressEvent(self, event): """Custom keyPressEvent. @@ -931,6 +935,12 @@ class Window(QtWidgets.QMainWindow): def on_asset_changed(self): tools_lib.schedule(self._on_asset_changed, 50, channel="mongo") + def on_file_select(self, asset_doc, task_name, filepath): + self.side_panel.set_context(asset_doc, task_name, filepath) + + def on_workfile_create(self, filepath): + workdir, filename = os.path.split(filepath) + def set_context(self, context): if "asset" in context: asset = context["asset"]