diff --git a/source/RobotAPI/libraries/armem_gui/instance/tree_builders/DataTreeBuilderBase.cpp b/source/RobotAPI/libraries/armem_gui/instance/tree_builders/DataTreeBuilderBase.cpp index 3b624f9404e6eede5d8c6963dc13c885f383782d..8a73afd2069896bbea2577b8f6d73f7df95b1ab5 100644 --- a/source/RobotAPI/libraries/armem_gui/instance/tree_builders/DataTreeBuilderBase.cpp +++ b/source/RobotAPI/libraries/armem_gui/instance/tree_builders/DataTreeBuilderBase.cpp @@ -3,6 +3,7 @@ #include <QTreeWidgetItem> #include <ArmarXCore/core/exceptions/local/ExpressionException.h> +// #include <ArmarXCore/core/logging/Logging.h> #include <RobotAPI/libraries/armem_gui/TreeWidgetBuilder.h> #include <RobotAPI/libraries/armem_gui/instance/sanitize_typename.h> @@ -12,6 +13,9 @@ namespace armarx::armem::gui::instance { + const int keyIndexRole = Qt::UserRole + 10; + + DataTreeBuilderBase::DataTreeBuilderBase() { } @@ -35,7 +39,7 @@ namespace armarx::armem::gui::instance QTreeWidgetItem* DataTreeBuilderBase::makeItem(size_t key) const { QTreeWidgetItem* item = new QTreeWidgetItem(); - item->setData(0, Qt::UserRole, static_cast<int>(key)); + item->setData(0, keyIndexRole, static_cast<int>(key)); return item; } @@ -74,7 +78,11 @@ namespace armarx::armem::gui::instance ListBuilder builder; builder.setCompareFn([](size_t key, QTreeWidgetItem * item) { - return armarx::detail::compare(static_cast<int>(key), item->data(0, Qt::UserRole).toInt()); + QVariant itemKey = item->data(0, keyIndexRole); + ARMARX_CHECK_EQUAL(itemKey.type(), QVariant::Type::Int); + // << VAROUT(key) << " | " << VAROUT(item->text(0).toStdString()) << itemKey.typeName(); + + return armarx::detail::compare(static_cast<int>(key), itemKey.toInt()); }); builder.setMakeItemFn([this](size_t key) {