From e5bb692caf7e76f3fb1d08df3d0cff12f7471185 Mon Sep 17 00:00:00 2001 From: Jonathan Glines Date: Wed, 9 Nov 2022 09:28:14 -0800 Subject: [PATCH] Fix performance counters without a category In the performance counter selection dialog, show counters without a category at root of tree, rather than as children of a nameless "" category. --- .../Dialogs/PerformanceCounterSelection.cpp | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/qrenderdoc/Windows/Dialogs/PerformanceCounterSelection.cpp b/qrenderdoc/Windows/Dialogs/PerformanceCounterSelection.cpp index cd5351a98..7462cb3cf 100644 --- a/qrenderdoc/Windows/Dialogs/PerformanceCounterSelection.cpp +++ b/qrenderdoc/Windows/Dialogs/PerformanceCounterSelection.cpp @@ -303,23 +303,31 @@ void PerformanceCounterSelection::SetCounters(const QVector RDTreeWidgetItem *categoryItem = NULL; - const rdcstr category = desc.category; - auto categoryIterator = categories.find(category); - - if(categoryIterator == categories.end()) + if(desc.category.empty()) { - RDTreeWidgetItem *item = new RDTreeWidgetItem(); - item->setText(0, desc.category); - item->setCheckState(0, Qt::Unchecked); - item->setData(0, PreviousCheckStateRole, Qt::Unchecked); - currentRoot->addChild(item); - - categories[category] = item; - categoryItem = item; + // Show uncategorized counters at the root level + categoryItem = currentRoot; } else { - categoryItem = categoryIterator.value(); + const rdcstr category = desc.category; + auto categoryIterator = categories.find(category); + + if(categoryIterator == categories.end()) + { + RDTreeWidgetItem *item = new RDTreeWidgetItem(); + item->setText(0, desc.category); + item->setCheckState(0, Qt::Unchecked); + item->setData(0, PreviousCheckStateRole, Qt::Unchecked); + currentRoot->addChild(item); + + categories[category] = item; + categoryItem = item; + } + else + { + categoryItem = categoryIterator.value(); + } } RDTreeWidgetItem *counterItem = new RDTreeWidgetItem();