From 2e652deaf47ecc640f6431f1e19586bb5eb366fc Mon Sep 17 00:00:00 2001 From: Lukas Steiner Date: Wed, 25 Nov 2020 15:02:08 +0100 Subject: [PATCH] Fix checkboxes in metrics window. --- DRAMSys/traceAnalyzer/evaluationtool.cpp | 44 +++++++++++++++--------- DRAMSys/traceAnalyzer/evaluationtool.ui | 17 +++++---- DRAMSys/traceAnalyzer/tracefiletab.ui | 2 +- 3 files changed, 39 insertions(+), 24 deletions(-) diff --git a/DRAMSys/traceAnalyzer/evaluationtool.cpp b/DRAMSys/traceAnalyzer/evaluationtool.cpp index 09b96b13..83223bdd 100644 --- a/DRAMSys/traceAnalyzer/evaluationtool.cpp +++ b/DRAMSys/traceAnalyzer/evaluationtool.cpp @@ -143,20 +143,25 @@ void EvaluationTool::runTests() ui->traceTestTreeWidget->clear(); ui->testLight->setGray(); - if (traceFilesModel->rowCount() == 0) - return; - bool allTestsPassed = true; + bool boxesChecked = false; - for (int row = 0; row < traceFilesModel->rowCount(); ++row) { + for (int row = 0; row < traceFilesModel->rowCount(); ++row) + { TraceFileItem *item = static_cast(traceFilesModel->item(row)); - TraceTestResults traceTestResult = pythonCaller.runTestsOnTrace( - item->getPath()); - if (!traceTestResult.hasPassedAllTests()) - allTestsPassed = false; - ui->traceTestTreeWidget->addTraceTestResult(traceTestResult); + if (item->checkState() == Qt::Checked) + { + boxesChecked = true; + TraceTestResults traceTestResult = pythonCaller.runTestsOnTrace(item->getPath()); + if (!traceTestResult.hasPassedAllTests()) + allTestsPassed = false; + ui->traceTestTreeWidget->addTraceTestResult(traceTestResult); + } } + if (!boxesChecked) + return; + ui->traceTestTreeWidget->expandAll(); if (allTestsPassed) @@ -186,10 +191,13 @@ void EvaluationTool::calculateMetrics(vector selectedMetrics) ui->traceMetricTreeWidget->clear(); for (int row = 0; row < traceFilesModel->rowCount(); ++row) { TraceFileItem *item = static_cast(traceFilesModel->item(row)); - TraceCalculatedMetrics result = pythonCaller.calculateMetricsOnTrace( - item->getPath(), selectedMetrics); - calculatedMetrics.push_back(result); - ui->traceMetricTreeWidget->addTraceMetricResults(result); + if (item->checkState() == Qt::Checked) + { + TraceCalculatedMetrics result = pythonCaller.calculateMetricsOnTrace( + item->getPath(), selectedMetrics); + calculatedMetrics.push_back(result); + ui->traceMetricTreeWidget->addTraceMetricResults(result); + } } ui->traceMetricTreeWidget->expandAll(); } @@ -203,7 +211,7 @@ EvaluationTool::TraceFileItem::TraceFileItem(const QString &path) { this->path = path; setText(QFileInfo(this->path).baseName()); - setCheckable( false ); + setCheckable(true); setCheckState(Qt::Checked); setEditable(false); } @@ -238,11 +246,15 @@ void EvaluationTool::genPlots() if (traceFilesModel->rowCount() == 0) return; - for (int row = 0; row < traceFilesModel->rowCount(); ++row) { + for (int row = 0; row < traceFilesModel->rowCount(); ++row) + { TraceFileItem *item = static_cast(traceFilesModel->item(row)); - ui->traceMetricTreeWidget->addTracePlotResults(QFileInfo( + if (item->checkState() == Qt::Checked) + { + ui->traceMetricTreeWidget->addTracePlotResults(QFileInfo( item->getPath()).baseName(), pythonCaller.generatePlotsOnTrace(item->getPath())); + } } ui->traceMetricTreeWidget->expandAll(); } diff --git a/DRAMSys/traceAnalyzer/evaluationtool.ui b/DRAMSys/traceAnalyzer/evaluationtool.ui index cec14f63..a54f5938 100644 --- a/DRAMSys/traceAnalyzer/evaluationtool.ui +++ b/DRAMSys/traceAnalyzer/evaluationtool.ui @@ -24,6 +24,9 @@ 0 + + QAbstractItemView::NoSelection + @@ -43,7 +46,7 @@ 0 0 702 - 432 + 436 @@ -106,7 +109,7 @@ 0 0 702 - 432 + 436 @@ -138,11 +141,11 @@ - - - Generate plots - - + + + Generate plots + + diff --git a/DRAMSys/traceAnalyzer/tracefiletab.ui b/DRAMSys/traceAnalyzer/tracefiletab.ui index 781cc1fd..cb7e5d1d 100644 --- a/DRAMSys/traceAnalyzer/tracefiletab.ui +++ b/DRAMSys/traceAnalyzer/tracefiletab.ui @@ -63,7 +63,7 @@ - 2 + 0