From eea5dd80f7dd2cd9d30f384408c5f9a769aa827e Mon Sep 17 00:00:00 2001 From: Iron Prando da Silva Date: Mon, 15 Nov 2021 11:28:21 +0100 Subject: [PATCH] Added graying out of the dependency submenu. --- DRAMSys/traceAnalyzer/data/tracedb.cpp | 24 +++++++++++-------- DRAMSys/traceAnalyzer/data/tracedb.h | 1 + .../traceAnalyzer/presentation/traceplot.cpp | 4 +++- .../traceAnalyzer/presentation/traceplot.h | 4 +++- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/DRAMSys/traceAnalyzer/data/tracedb.cpp b/DRAMSys/traceAnalyzer/data/tracedb.cpp index ceb9c242..eb6fd547 100644 --- a/DRAMSys/traceAnalyzer/data/tracedb.cpp +++ b/DRAMSys/traceAnalyzer/data/tracedb.cpp @@ -148,19 +148,23 @@ vector> TraceDB::getTransactionsInTimespan(const Timespa return parseTransactionsFromQuery(selectTransactionsByTimespan, updateVisiblePhases); } -void TraceDB::updateDependenciesInTimespan(const Timespan &span) +bool TraceDB::checkDependencyTableExists() { executeQuery(checkDependenciesExist); - if (checkDependenciesExist.next()) - { + if (checkDependenciesExist.next() && checkDependenciesExist.value(0).toInt() == 1) + return true; - if (checkDependenciesExist.value(0).toInt() == 1) - { - selectDependenciesByTimespan.bindValue(":begin", span.Begin()); - selectDependenciesByTimespan.bindValue(":end", span.End()); - executeQuery(selectDependenciesByTimespan); - mUpdateDependenciesFromQuery(selectDependenciesByTimespan); - } + return false; +} + +void TraceDB::updateDependenciesInTimespan(const Timespan &span) +{ + if (checkDependencyTableExists()) + { + selectDependenciesByTimespan.bindValue(":begin", span.Begin()); + selectDependenciesByTimespan.bindValue(":end", span.End()); + executeQuery(selectDependenciesByTimespan); + mUpdateDependenciesFromQuery(selectDependenciesByTimespan); } } diff --git a/DRAMSys/traceAnalyzer/data/tracedb.h b/DRAMSys/traceAnalyzer/data/tracedb.h index bc93bd60..a07f087d 100644 --- a/DRAMSys/traceAnalyzer/data/tracedb.h +++ b/DRAMSys/traceAnalyzer/data/tracedb.h @@ -105,6 +105,7 @@ public: std::vector getDebugMessagesInTimespan(const Timespan &span, unsigned int limit); + bool checkDependencyTableExists(); DependencyInfos getDependencyInfos(DependencyInfos::Type infoType); QSqlDatabase getDatabase() const; diff --git a/DRAMSys/traceAnalyzer/presentation/traceplot.cpp b/DRAMSys/traceAnalyzer/presentation/traceplot.cpp index 2d0fcf21..43721a31 100644 --- a/DRAMSys/traceAnalyzer/presentation/traceplot.cpp +++ b/DRAMSys/traceAnalyzer/presentation/traceplot.cpp @@ -224,7 +224,7 @@ void TracePlot::setUpContextMenu() {setColorGroupingPhase, setColorGroupingTransaction, setColorGroupingThread, setColorGroupingAlphaTransaction}); contextMenu->addMenu(colorGroupingSubMenu); - QMenu *dependenciesSubMenu = new QMenu("Show dependencies", contextMenu); + dependenciesSubMenu = new QMenu("Show dependencies", contextMenu); dependenciesSubMenu->addActions( {disabledDependencies, selectedDependencies, allDependencies, switchDrawDependencyTextsOption}); contextMenu->addMenu(dependenciesSubMenu); @@ -274,6 +274,8 @@ void TracePlot::init(TraceNavigator *navigator, QScrollBar *scrollBar, CommentMo updateScrollbar(); + dependenciesSubMenu->setEnabled(navigator->TraceFile().checkDependencyTableExists()); + replot(); } diff --git a/DRAMSys/traceAnalyzer/presentation/traceplot.h b/DRAMSys/traceAnalyzer/presentation/traceplot.h index 911b1692..10376d51 100644 --- a/DRAMSys/traceAnalyzer/presentation/traceplot.h +++ b/DRAMSys/traceAnalyzer/presentation/traceplot.h @@ -182,11 +182,13 @@ private: QAction *setColorGroupingThread; QAction *setColorGroupingAlphaTransaction; QAction *exportToPdf; + ToggleCollapsedAction *toggleCollapsedState; + + QMenu *dependenciesSubMenu; QAction *disabledDependencies; QAction *selectedDependencies; QAction *allDependencies; QAction *switchDrawDependencyTextsOption; - ToggleCollapsedAction *toggleCollapsedState; TracePlotMouseLabel *mouseLabel;