diff --git a/openpype/tools/new_publisher/control.py b/openpype/tools/new_publisher/control.py index d9dfb529b3..618cfe98ce 100644 --- a/openpype/tools/new_publisher/control.py +++ b/openpype/tools/new_publisher/control.py @@ -156,11 +156,14 @@ class PublisherController: # Varianbles where callbacks are stored self._instances_refresh_callback_refs = set() self._plugins_refresh_callback_refs = set() + + self._publish_reset_callback_refs = set() self._publish_started_callback_refs = set() self._publish_validated_callback_refs = set() + self._publish_stopped_callback_refs = set() + self._publish_instance_changed_callback_refs = set() self._publish_plugin_changed_callback_refs = set() - self._publish_stopped_callback_refs = set() # State flags to prevent executing method which is already in progress self._resetting_plugins = False @@ -202,6 +205,10 @@ class PublisherController: self._plugins_refresh_callback_refs.add(ref) # --- Publish specific callbacks --- + def add_publish_reset_callback(self, callback): + ref = weakref.WeakMethod(callback) + self._publish_reset_callback_refs.add(ref) + def add_publish_started_callback(self, callback): ref = weakref.WeakMethod(callback) self._publish_started_callback_refs.add(ref) @@ -417,6 +424,8 @@ class PublisherController: self._publish_validation_errors = [] self._publish_error = None + self._trigger_callbacks(self._publish_reset_callback_refs) + def publish(self): """Run publishing.""" self._publish_up_validation = False diff --git a/openpype/tools/new_publisher/widgets/widgets.py b/openpype/tools/new_publisher/widgets/widgets.py index 22cd1dafb8..4f6b246776 100644 --- a/openpype/tools/new_publisher/widgets/widgets.py +++ b/openpype/tools/new_publisher/widgets/widgets.py @@ -956,8 +956,8 @@ class PublishOverlayFrame(QtWidgets.QFrame): copy_log_btn = QtWidgets.QPushButton("Copy log", content_widget) copy_log_btn.setVisible(False) - refresh_btn = QtWidgets.QPushButton(content_widget) - refresh_btn.setIcon(get_icon("refresh")) + reset_btn = QtWidgets.QPushButton(content_widget) + reset_btn.setIcon(get_icon("refresh")) stop_btn = QtWidgets.QPushButton(content_widget) stop_btn.setIcon(get_icon("stop")) @@ -971,7 +971,7 @@ class PublishOverlayFrame(QtWidgets.QFrame): footer_layout = QtWidgets.QHBoxLayout() footer_layout.addWidget(copy_log_btn, 0) footer_layout.addStretch(1) - footer_layout.addWidget(refresh_btn, 0) + footer_layout.addWidget(reset_btn, 0) footer_layout.addWidget(stop_btn, 0) footer_layout.addWidget(validate_btn, 0) footer_layout.addWidget(publish_btn, 0) @@ -997,12 +997,12 @@ class PublishOverlayFrame(QtWidgets.QFrame): hide_btn.clicked.connect(self.hide_requested) copy_log_btn.clicked.connect(self._on_copy_log) - refresh_btn.clicked.connect(self._on_refresh_clicked) + reset_btn.clicked.connect(self._on_reset_clicked) stop_btn.clicked.connect(self._on_stop_clicked) validate_btn.clicked.connect(self._on_validate_clicked) publish_btn.clicked.connect(self._on_publish_clicked) - controller.add_publish_refresh_callback(self._on_publish_reset) + controller.add_publish_reset_callback(self._on_publish_reset) controller.add_publish_started_callback(self._on_publish_start) controller.add_publish_validated_callback(self._on_publish_validated) controller.add_publish_stopped_callback(self._on_publish_stop) @@ -1023,7 +1023,7 @@ class PublishOverlayFrame(QtWidgets.QFrame): self.progress_widget = progress_widget self.copy_log_btn = copy_log_btn - self.refresh_btn = refresh_btn + self.reset_btn = reset_btn self.stop_btn = stop_btn self.validate_btn = validate_btn self.publish_btn = publish_btn @@ -1042,7 +1042,7 @@ class PublishOverlayFrame(QtWidgets.QFrame): self.message_label.setText("") self.copy_log_btn.setVisible(False) - self.refresh_btn.setEnabled(True) + self.reset_btn.setEnabled(True) self.stop_btn.setEnabled(False) self.validate_btn.setEnabled(True) self.publish_btn.setEnabled(True) @@ -1051,7 +1051,7 @@ class PublishOverlayFrame(QtWidgets.QFrame): self._set_success_property(-1) self.main_label.setText("Publishing...") - self.refresh_btn.setEnabled(False) + self.reset_btn.setEnabled(False) self.stop_btn.setEnabled(True) self.validate_btn.setEnabled(False) self.publish_btn.setEnabled(False) @@ -1088,7 +1088,7 @@ class PublishOverlayFrame(QtWidgets.QFrame): QtWidgets.QApplication.processEvents() def _on_publish_stop(self): - self.refresh_btn.setEnabled(True) + self.reset_btn.setEnabled(True) self.stop_btn.setEnabled(False) validate_enabled = not self.controller.publish_has_crashed publish_enabled = not self.controller.publish_has_crashed @@ -1148,8 +1148,8 @@ class PublishOverlayFrame(QtWidgets.QFrame): mime_data ) - def _on_refresh_clicked(self): - self.controller.stop_publish() + def _on_reset_clicked(self): + self.controller.reset_publish() def _on_stop_clicked(self): self.controller.stop_publish() diff --git a/openpype/tools/new_publisher/window.py b/openpype/tools/new_publisher/window.py index cf394a4afc..9890cb1da0 100644 --- a/openpype/tools/new_publisher/window.py +++ b/openpype/tools/new_publisher/window.py @@ -122,9 +122,9 @@ class PublisherWindow(QtWidgets.QWidget): # Footer message_input = QtWidgets.QLineEdit(main_frame) - refresh_btn = QtWidgets.QPushButton(main_frame) - refresh_btn.setIcon(get_icon("refresh")) - refresh_btn.setToolTip("Refresh publishing") + reset_btn = QtWidgets.QPushButton(main_frame) + reset_btn.setIcon(get_icon("refresh")) + reset_btn.setToolTip("Refresh publishing") stop_btn = QtWidgets.QPushButton(main_frame) stop_btn.setIcon(get_icon("stop")) @@ -141,7 +141,7 @@ class PublisherWindow(QtWidgets.QWidget): footer_layout = QtWidgets.QHBoxLayout() footer_layout.setContentsMargins(0, 0, 0, 0) footer_layout.addWidget(message_input, 1) - footer_layout.addWidget(refresh_btn, 0) + footer_layout.addWidget(reset_btn, 0) footer_layout.addWidget(stop_btn, 0) footer_layout.addWidget(validate_btn, 0) footer_layout.addWidget(publish_btn, 0) @@ -165,7 +165,7 @@ class PublisherWindow(QtWidgets.QWidget): save_btn.clicked.connect(self._on_save_clicked) change_view_btn.clicked.connect(self._on_change_view_clicked) - refresh_btn.clicked.connect(self._on_refresh_clicked) + reset_btn.clicked.connect(self._on_reset_clicked) stop_btn.clicked.connect(self._on_stop_clicked) validate_btn.clicked.connect(self._on_validate_clicked) publish_btn.clicked.connect(self._on_publish_clicked) @@ -180,7 +180,7 @@ class PublisherWindow(QtWidgets.QWidget): controller.add_instances_refresh_callback(self._on_instances_refresh) - controller.add_publish_refresh_callback(self._on_publish_reset) + controller.add_publish_reset_callback(self._on_publish_reset) controller.add_publish_started_callback(self._on_publish_start) controller.add_publish_validated_callback(self._on_publish_validated) controller.add_publish_stopped_callback(self._on_publish_stop) @@ -199,7 +199,7 @@ class PublisherWindow(QtWidgets.QWidget): self.message_input = message_input self.stop_btn = stop_btn - self.refresh_btn = refresh_btn + self.reset_btn = reset_btn self.validate_btn = validate_btn self.publish_btn = publish_btn @@ -323,8 +323,8 @@ class PublisherWindow(QtWidgets.QWidget): self.overlay_frame.setVisible(visible) - def _on_refresh_clicked(self): - self.controller.stop_publish() + def _on_reset_clicked(self): + self.controller.reset_publish() def _on_stop_clicked(self): self.controller.stop_publish() @@ -369,13 +369,13 @@ class PublisherWindow(QtWidgets.QWidget): self.subset_attributes_widget.set_current_instances(instances) def _on_publish_reset(self): - self.refresh_btn.setEnabled(True) + self.reset_btn.setEnabled(True) self.stop_btn.setEnabled(False) self.validate_btn.setEnabled(True) self.publish_btn.setEnabled(True) def _on_publish_start(self): - self.refresh_btn.setEnabled(False) + self.reset_btn.setEnabled(False) self.stop_btn.setEnabled(True) self.validate_btn.setEnabled(False) self.publish_btn.setEnabled(False) @@ -384,7 +384,7 @@ class PublisherWindow(QtWidgets.QWidget): self.validate_btn.setEnabled(False) def _on_publish_stop(self): - self.refresh_btn.setEnabled(True) + self.reset_btn.setEnabled(True) self.stop_btn.setEnabled(False) validate_enabled = not self.controller.publish_has_crashed publish_enabled = not self.controller.publish_has_crashed