From 2ccc2a101cfd304d1767e8f667fb6db3a73c2cab Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Tue, 3 Oct 2023 22:10:51 +0200 Subject: [PATCH 1/4] Add save current file button + "Save" shortcut when menu is active --- openpype/hosts/resolve/api/menu.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/resolve/api/menu.py b/openpype/hosts/resolve/api/menu.py index b3717e01ea..fd5a4cec78 100644 --- a/openpype/hosts/resolve/api/menu.py +++ b/openpype/hosts/resolve/api/menu.py @@ -1,13 +1,14 @@ import os import sys -from qtpy import QtWidgets, QtCore +from qtpy import QtWidgets, QtCore, QtGui from openpype.tools.utils import host_tools +from openpype.pipeline import registered_host from .pipeline import ( publish, - launch_workfiles_app + launch_workfiles_app, ) @@ -54,6 +55,7 @@ class OpenPypeMenu(QtWidgets.QWidget): ) self.setWindowTitle("OpenPype") + save_current_btn = QtWidgets.QPushButton("Save current file", self) workfiles_btn = QtWidgets.QPushButton("Workfiles ...", self) create_btn = QtWidgets.QPushButton("Create ...", self) publish_btn = QtWidgets.QPushButton("Publish ...", self) @@ -75,6 +77,10 @@ class OpenPypeMenu(QtWidgets.QWidget): layout = QtWidgets.QVBoxLayout(self) layout.setContentsMargins(10, 20, 10, 20) + layout.addWidget(save_current_btn) + + layout.addWidget(Spacer(15, self)) + layout.addWidget(workfiles_btn) layout.addWidget(create_btn) layout.addWidget(publish_btn) @@ -99,6 +105,8 @@ class OpenPypeMenu(QtWidgets.QWidget): self.setLayout(layout) + save_current_btn.clicked.connect(self.on_save_current_clicked) + save_current_btn.setShortcut(QtGui.QKeySequence.Save) workfiles_btn.clicked.connect(self.on_workfile_clicked) create_btn.clicked.connect(self.on_create_clicked) publish_btn.clicked.connect(self.on_publish_clicked) @@ -111,6 +119,15 @@ class OpenPypeMenu(QtWidgets.QWidget): # reset_resolution_btn.clicked.connect(self.on_set_resolution_clicked) experimental_btn.clicked.connect(self.on_experimental_clicked) + def on_save_current_clicked(self): + host = registered_host() + current_file = host.current_file() + if not current_file: + return + + print(f"Saving current file to: {current_file}") + host.save_file(current_file) + def on_workfile_clicked(self): print("Clicked Workfile") launch_workfiles_app() From fe11a3aed27cf3b0b215209c2148fa4167d52e96 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Wed, 4 Oct 2023 08:50:52 +0200 Subject: [PATCH 2/4] Revert cosmetic change --- openpype/hosts/resolve/api/menu.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/hosts/resolve/api/menu.py b/openpype/hosts/resolve/api/menu.py index fd5a4cec78..024b367235 100644 --- a/openpype/hosts/resolve/api/menu.py +++ b/openpype/hosts/resolve/api/menu.py @@ -8,7 +8,7 @@ from openpype.pipeline import registered_host from .pipeline import ( publish, - launch_workfiles_app, + launch_workfiles_app ) From f94cd729f6d88565f593979921748920e48e05ec Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Fri, 6 Oct 2023 17:49:20 +0200 Subject: [PATCH 3/4] Refactor to new style host --- openpype/hosts/resolve/api/menu.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/resolve/api/menu.py b/openpype/hosts/resolve/api/menu.py index ff8d5d4c6a..160cc44fdb 100644 --- a/openpype/hosts/resolve/api/menu.py +++ b/openpype/hosts/resolve/api/menu.py @@ -116,12 +116,12 @@ class OpenPypeMenu(QtWidgets.QWidget): def on_save_current_clicked(self): host = registered_host() - current_file = host.current_file() + current_file = host.get_current_workfile() if not current_file: return print(f"Saving current file to: {current_file}") - host.save_file(current_file) + host.save_workfile(current_file) def on_workfile_clicked(self): print("Clicked Workfile") From 32e88ebc9663431dcc58a62c8e4a4bb784848966 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Mon, 30 Oct 2023 23:47:53 +0100 Subject: [PATCH 4/4] Show workfiles tool if current file is not set to make it clear there's user interaction needed to save --- openpype/hosts/resolve/api/menu.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openpype/hosts/resolve/api/menu.py b/openpype/hosts/resolve/api/menu.py index 160cc44fdb..9c6fe4957c 100644 --- a/openpype/hosts/resolve/api/menu.py +++ b/openpype/hosts/resolve/api/menu.py @@ -118,6 +118,9 @@ class OpenPypeMenu(QtWidgets.QWidget): host = registered_host() current_file = host.get_current_workfile() if not current_file: + print("Current project is not saved. " + "Please save once first via workfiles tool.") + host_tools.show_workfiles() return print(f"Saving current file to: {current_file}")