Skip to content
Snippets Groups Projects
Commit 02041943 authored by Rainer Kartmann's avatar Rainer Kartmann
Browse files

Fix list items being re-created due to wrong compare function

parent b8c115e8
No related branches found
No related tags found
1 merge request!188ArMem Updates
......@@ -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)
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment