From 8886117d08a5de9e03958ee54d8d4bc2ba5d1e1e Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 8 Jul 2021 11:53:15 +0200 Subject: [PATCH] catch subset changes and pass selection to attributes widget --- openpype/tools/new_publisher/window.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/openpype/tools/new_publisher/window.py b/openpype/tools/new_publisher/window.py index f97bf32453..02d4dc7563 100644 --- a/openpype/tools/new_publisher/window.py +++ b/openpype/tools/new_publisher/window.py @@ -112,6 +112,10 @@ class PublisherWindow(QtWidgets.QWidget): validate_btn.clicked.connect(self._on_validate_clicked) publish_btn.clicked.connect(self._on_publish_clicked) + subset_view.selectionModel().selectionChanged.connect( + self._on_subset_change + ) + self.main_frame = main_frame self.context_label = context_label @@ -196,6 +200,21 @@ class PublisherWindow(QtWidgets.QWidget): def _on_control_reset(self): self._refresh_instances() + def _on_subset_change(self, *_args): + instances = [] + instances_by_id = {} + for instance in self.controller.instances: + instance_id = instance.data["uuid"] + instances_by_id[instance_id] = instance + + for index in self.subset_view.selectionModel().selectedIndexes(): + instance_id = index.data(QtCore.Qt.UserRole) + instance = instances_by_id.get(instance_id) + if instance: + instances.append(instance) + + self.subset_attributes_widget.set_current_instances(instances) + def main(): """Main function for testing purposes."""