From 9040047fdd75ad4f11c9a95036f095c3a3373d7b Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Thu, 6 Oct 2022 10:56:06 +0200 Subject: [PATCH 1/2] fix context validation title selection and sizes --- .../tools/publisher/widgets/validations_widget.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/openpype/tools/publisher/widgets/validations_widget.py b/openpype/tools/publisher/widgets/validations_widget.py index fd9410df98..4fa5ed4902 100644 --- a/openpype/tools/publisher/widgets/validations_widget.py +++ b/openpype/tools/publisher/widgets/validations_widget.py @@ -79,6 +79,7 @@ class ValidationErrorTitleWidget(QtWidgets.QWidget): help_text_by_instance_id = {} context_validation = False + items = [] if ( not error_info or (len(error_info) == 1 and error_info[0][0] is None) @@ -87,8 +88,10 @@ class ValidationErrorTitleWidget(QtWidgets.QWidget): toggle_instance_btn.setArrowType(QtCore.Qt.NoArrow) description = self._prepare_description(error_info[0][1]) help_text_by_instance_id[None] = description + # Add fake item to have minimum size hint of view widget + items.append(QtGui.QStandardItem("Context")) + else: - items = [] for instance, exception in error_info: label = instance.data.get("label") or instance.data.get("name") item = QtGui.QStandardItem(label) @@ -101,7 +104,9 @@ class ValidationErrorTitleWidget(QtWidgets.QWidget): description = self._prepare_description(exception) help_text_by_instance_id[instance.id] = description - instances_model.invisibleRootItem().appendRows(items) + if items: + root_item = instances_model.invisibleRootItem() + root_item.appendRows(items) instances_view = ValidationErrorInstanceList(self) instances_view.setModel(instances_model) @@ -177,7 +182,6 @@ class ValidationErrorTitleWidget(QtWidgets.QWidget): """Mark this widget as selected on click.""" self.set_selected(True) - self._set_expanded(True) def current_desctiption_text(self): if self._context_validation: @@ -225,6 +229,7 @@ class ValidationErrorTitleWidget(QtWidgets.QWidget): self._change_style_property(selected) if selected: self.selected.emit(self._index) + self._set_expanded(True) def _on_toggle_btn_click(self): """Show/hide instances list.""" @@ -238,6 +243,9 @@ class ValidationErrorTitleWidget(QtWidgets.QWidget): elif expanded is self._expanded: return + if expanded and self._context_validation: + return + self._expanded = expanded self._view_widget.setVisible(expanded) if expanded: From baa8643f7d5a04a87ea98ba1a69f2e4525f5e1ca Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Thu, 6 Oct 2022 11:05:42 +0200 Subject: [PATCH 2/2] hide set current asset button if asset is not set --- openpype/tools/publisher/widgets/assets_widget.py | 9 ++++----- openpype/tools/publisher/widgets/create_widget.py | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/openpype/tools/publisher/widgets/assets_widget.py b/openpype/tools/publisher/widgets/assets_widget.py index 7a77c9e898..39bf3886ea 100644 --- a/openpype/tools/publisher/widgets/assets_widget.py +++ b/openpype/tools/publisher/widgets/assets_widget.py @@ -24,7 +24,6 @@ class CreateWidgetAssetsWidget(SingleSelectAssetsWidget): self.set_refresh_btn_visibility(False) self.set_current_asset_btn_visibility(False) - self._current_asset_name = None self._last_selection = None self._enabled = None @@ -69,13 +68,13 @@ class CreateWidgetAssetsWidget(SingleSelectAssetsWidget): self._last_selection = self.get_selected_asset_id() self._clear_selection() - def set_current_asset_name(self, asset_name): - self._current_asset_name = asset_name + def update_current_asset(self): # Hide set current asset if there is no one - self.set_current_asset_btn_visibility(asset_name is not None) + asset_name = self._get_current_session_asset() + self.set_current_asset_btn_visibility(bool(asset_name)) def _get_current_session_asset(self): - return self._current_asset_name + return self._controller.current_asset_name def _create_source_model(self): return AssetsHierarchyModel(self._controller) diff --git a/openpype/tools/publisher/widgets/create_widget.py b/openpype/tools/publisher/widgets/create_widget.py index fb4d1dd718..4c9fa63d24 100644 --- a/openpype/tools/publisher/widgets/create_widget.py +++ b/openpype/tools/publisher/widgets/create_widget.py @@ -422,7 +422,7 @@ class CreateWidget(QtWidgets.QWidget): # data self._refresh_creators() - self._assets_widget.set_current_asset_name(self.current_asset_name) + self._assets_widget.update_current_asset() self._assets_widget.select_asset_by_name(asset_name) self._tasks_widget.set_asset_name(asset_name) self._tasks_widget.select_task_name(task_name)