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) diff --git a/openpype/tools/publisher/widgets/validations_widget.py b/openpype/tools/publisher/widgets/validations_widget.py index 48b7370eee..74be672f3b 100644 --- a/openpype/tools/publisher/widgets/validations_widget.py +++ b/openpype/tools/publisher/widgets/validations_widget.py @@ -87,6 +87,8 @@ class ValidationErrorTitleWidget(QtWidgets.QWidget): toggle_instance_btn.setArrowType(QtCore.Qt.NoArrow) description = self._prepare_description(error_item) help_text_by_instance_id[None] = description + # Add fake item to have minimum size hint of view widget + items.append(QtGui.QStandardItem("Context")) continue label = error_item.instance_label @@ -188,7 +190,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: @@ -255,6 +256,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.""" @@ -268,6 +270,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: