From cdee1c452f0a3f1519ecfd9790b2fea70bf72bd7 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 31 Aug 2021 17:24:32 +0200 Subject: [PATCH] groups are expanded/collapsed on single click --- .../publish_log_viewer/widgets.py | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/openpype/tools/new_publisher/publish_log_viewer/widgets.py b/openpype/tools/new_publisher/publish_log_viewer/widgets.py index ce92d63f26..cbe768845f 100644 --- a/openpype/tools/new_publisher/publish_log_viewer/widgets.py +++ b/openpype/tools/new_publisher/publish_log_viewer/widgets.py @@ -6,7 +6,8 @@ from Qt import QtWidgets, QtCore, QtGui import pyblish.api from .constants import ( - ITEM_ID_ROLE + ITEM_ID_ROLE, + ITEM_IS_GROUP_ROLE ) from .delegates import GroupItemDelegate from .model import ( @@ -25,6 +26,7 @@ class PluginItem: self.label = plugin_data["label"] self.order = plugin_data["order"] self.skipped = plugin_data["skipped"] + self.passed = plugin_data["passed"] logs = [] errored = False @@ -166,6 +168,7 @@ class PublishLogViewerWidget(QtWidgets.QWidget): instances_view.setIndentation(0) instances_view.setHeaderHidden(True) instances_view.setEditTriggers(QtWidgets.QTreeView.NoEditTriggers) + instances_view.setExpandsOnDoubleClick(False) instances_delegate = GroupItemDelegate(instances_view) instances_view.setItemDelegate(instances_delegate) @@ -181,6 +184,7 @@ class PublishLogViewerWidget(QtWidgets.QWidget): plugins_view.setIndentation(0) plugins_view.setHeaderHidden(True) plugins_view.setEditTriggers(QtWidgets.QTreeView.NoEditTriggers) + plugins_view.setExpandsOnDoubleClick(False) plugins_delegate = GroupItemDelegate(plugins_view) plugins_view.setItemDelegate(plugins_delegate) @@ -199,6 +203,8 @@ class PublishLogViewerWidget(QtWidgets.QWidget): instances_view.selectionModel().selectionChanged.connect( self._on_instance_change ) + instances_view.clicked.connect(self._on_instance_view_clicked) + plugins_view.clicked.connect(self._on_plugin_view_clicked) plugins_view.selectionModel().selectionChanged.connect( self._on_plugin_change ) @@ -227,6 +233,24 @@ class PublishLogViewerWidget(QtWidgets.QWidget): self._plugins_model = plugins_model self._plugins_proxy = plugins_proxy + def _on_instance_view_clicked(self, index): + if not index.isValid() or not index.data(ITEM_IS_GROUP_ROLE): + return + + if self._instances_view.isExpanded(index): + self._instances_view.collapse(index) + else: + self._instances_view.expand(index) + + def _on_plugin_view_clicked(self, index): + if not index.isValid() or not index.data(ITEM_IS_GROUP_ROLE): + return + + if self._plugins_view.isExpanded(index): + self._plugins_view.collapse(index) + else: + self._plugins_view.expand(index) + def set_report(self, report_data): self._ignore_selection_changes = True