From 31b7662db17969290688251b50d4dea9e673d3ed Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 20 Nov 2017 14:33:44 +0000 Subject: [PATCH] Fix adding empty tree widget items in performance counter selection --- qrenderdoc/Widgets/Extended/RDTreeWidget.cpp | 2 +- qrenderdoc/Windows/Dialogs/PerformanceCounterSelection.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/qrenderdoc/Widgets/Extended/RDTreeWidget.cpp b/qrenderdoc/Widgets/Extended/RDTreeWidget.cpp index f6ce07b2e..562f7d158 100644 --- a/qrenderdoc/Widgets/Extended/RDTreeWidget.cpp +++ b/qrenderdoc/Widgets/Extended/RDTreeWidget.cpp @@ -540,7 +540,7 @@ void RDTreeWidgetItem::setData(int column, int role, const QVariant &value) dataVec.push_back(RoleData(role, value)); - if(role < Qt::UserRole) + if(m_widget && role < Qt::UserRole) m_widget->m_model->itemChanged(this, {role}); } diff --git a/qrenderdoc/Windows/Dialogs/PerformanceCounterSelection.cpp b/qrenderdoc/Windows/Dialogs/PerformanceCounterSelection.cpp index 85dd0c78a..680a800a7 100644 --- a/qrenderdoc/Windows/Dialogs/PerformanceCounterSelection.cpp +++ b/qrenderdoc/Windows/Dialogs/PerformanceCounterSelection.cpp @@ -281,10 +281,10 @@ void PerformanceCounterSelection::SetCounters(const QVector if(family != currentFamily) { currentRoot = new RDTreeWidgetItem(); - ui->counterTree->addTopLevelItem(currentRoot); currentRoot->setText(0, ToString(family)); currentRoot->setCheckState(0, Qt::Unchecked); currentRoot->setData(0, PreviousCheckStateRole, Qt::Unchecked); + ui->counterTree->addTopLevelItem(currentRoot); categories.clear(); @@ -299,10 +299,10 @@ void PerformanceCounterSelection::SetCounters(const QVector if(categoryIterator == categories.end()) { RDTreeWidgetItem *item = new RDTreeWidgetItem(); - currentRoot->addChild(item); item->setText(0, desc.category); item->setCheckState(0, Qt::Unchecked); item->setData(0, PreviousCheckStateRole, Qt::Unchecked); + currentRoot->addChild(item); categories[category] = item; categoryItem = item; @@ -313,12 +313,12 @@ void PerformanceCounterSelection::SetCounters(const QVector } RDTreeWidgetItem *counterItem = new RDTreeWidgetItem(); - categoryItem->addChild(counterItem); counterItem->setText(0, desc.name); counterItem->setData(0, CounterDescriptionRole, desc.description); counterItem->setData(0, CounterIdRole, (uint32_t)desc.counterID); counterItem->setCheckState(0, Qt::Unchecked); counterItem->setData(0, PreviousCheckStateRole, Qt::Unchecked); + categoryItem->addChild(counterItem); m_CounterToTreeItem[desc.counterID] = counterItem; }