From e55597e3613f201ec34faa8d08ff6536c3fc3804 Mon Sep 17 00:00:00 2001 From: nelson Date: Fri, 26 Sep 2025 08:46:25 +0100 Subject: [PATCH] fix crash (#1587) (cherry picked from commit 9fc805430608f21027de319afa2cd68b0e4abcfb) --- .../properties/property_tree_widget.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/rviz_common/src/rviz_common/properties/property_tree_widget.cpp b/rviz_common/src/rviz_common/properties/property_tree_widget.cpp index 3f6632e5e..4bbbc1d62 100644 --- a/rviz_common/src/rviz_common/properties/property_tree_widget.cpp +++ b/rviz_common/src/rviz_common/properties/property_tree_widget.cpp @@ -103,7 +103,7 @@ void PropertyTreeWidget::setModel(PropertyTreeModel * model) if (model_) { connect( model_, SIGNAL(propertyHiddenChanged(const Property*)), - this, SLOT(propertyHiddenChanged(const Property*)), Qt::QueuedConnection); + this, SLOT(propertyHiddenChanged(const Property*)), Qt::DirectConnection); connect( model_, SIGNAL(expand(const QModelIndex&)), this, SLOT(expand(const QModelIndex&))); @@ -119,12 +119,14 @@ void PropertyTreeWidget::setModel(PropertyTreeModel * model) void PropertyTreeWidget::propertyHiddenChanged(const Property * property) { if (model_) { - const auto & parent_index = model_->parentIndex(property); - if (parent_index.isValid()) { - setRowHidden(property->rowNumberInParent(), parent_index, property->getHidden()); - } else { - printf("Trying to hide property '%s' that is not part of the model.\n", - qPrintable(property->getName())); + if (property->parent() != nullptr) { + const auto & parent_index = model_->parentIndex(property); + if (parent_index.isValid()) { + setRowHidden(property->rowNumberInParent(), parent_index, property->getHidden()); + } else { + printf("Trying to hide property '%s' that is not part of the model.\n", + qPrintable(property->getName())); + } } } }