From 81dedb65970fc19d6df4367e4cf50bac469cee0a Mon Sep 17 00:00:00 2001 From: Derek Christ Date: Mon, 20 Sep 2021 11:41:11 +0200 Subject: [PATCH] Improve file menu of TraceAnalyzer. --- DRAMSys/traceAnalyzer/traceanalyzer.cpp | 47 +++++++- DRAMSys/traceAnalyzer/traceanalyzer.h | 8 +- DRAMSys/traceAnalyzer/traceanalyzer.ui | 142 ++++++++++++++++++------ 3 files changed, 155 insertions(+), 42 deletions(-) diff --git a/DRAMSys/traceAnalyzer/traceanalyzer.cpp b/DRAMSys/traceAnalyzer/traceanalyzer.cpp index dce1bbc3..fab2cb0e 100644 --- a/DRAMSys/traceAnalyzer/traceanalyzer.cpp +++ b/DRAMSys/traceAnalyzer/traceanalyzer.cpp @@ -119,16 +119,21 @@ void TraceAnalyzer::openTracefile(const QString &path) void TraceAnalyzer::on_menuFile_aboutToShow() { ui->actionOpen->setEnabled(true); + ui->actionQuit->setEnabled(true); bool tabsOpen = ui->traceFileTabs->count() > 0; bool exportAsVcdAvailable = PythonCaller::instance().vcdExportDependenciesAvailable(); + ui->actionSave->setEnabled(tabsOpen); + ui->actionSave_as->setEnabled(tabsOpen); + ui->actionSave_all->setEnabled(tabsOpen); + ui->actionReload->setEnabled(tabsOpen); ui->actionReload_all->setEnabled(tabsOpen); - ui->actionSaveChangesToDB->setEnabled(tabsOpen); ui->actionExportAsVCD->setEnabled(tabsOpen && exportAsVcdAvailable); - ui->actionClose_all->setEnabled(tabsOpen); ui->actionTest->setEnabled(tabsOpen); ui->actionMetrics->setEnabled(tabsOpen); + ui->actionClose->setEnabled(tabsOpen); + ui->actionClose_all->setEnabled(tabsOpen); } void TraceAnalyzer::on_traceFileTabs_tabCloseRequested(int index) @@ -144,6 +149,11 @@ void TraceAnalyzer::on_traceFileTabs_tabCloseRequested(int index) } } +void TraceAnalyzer::on_actionClose_triggered() +{ + on_traceFileTabs_tabCloseRequested(ui->traceFileTabs->currentIndex()); +} + void TraceAnalyzer::on_actionClose_all_triggered() { for (unsigned int i = ui->traceFileTabs->count(); i--;) @@ -154,6 +164,22 @@ void TraceAnalyzer::on_actionClose_all_triggered() statusLabel->clear(); } +void TraceAnalyzer::on_actionReload_triggered() +{ + auto traceFileTab = static_cast(ui->traceFileTabs->currentWidget()); + + QString traceFile = traceFileTab->getPathToTraceFile(); + + if (!traceFileTab->close()) + return; + + ui->traceFileTabs->removeTab(ui->traceFileTabs->currentIndex()); + openedTraceFiles.remove(traceFile); + delete traceFileTab; + + openTracefile(traceFile); +} + void TraceAnalyzer::on_actionReload_all_triggered() { TraceFileTab *traceFileTab; @@ -192,7 +218,20 @@ void TraceAnalyzer::on_actionReload_all_triggered() this->statusChanged(QString("All databases reloaded "), true); } -void TraceAnalyzer::on_actionSaveChangesToDB_triggered() +void TraceAnalyzer::on_actionSave_triggered() +{ + auto traceFileTab = static_cast(ui->traceFileTabs->currentWidget()); + traceFileTab->commitChangesToDB(); + + // TODO update status +} + +void TraceAnalyzer::on_actionSave_as_triggered() +{ + // TODO +} + +void TraceAnalyzer::on_actionSave_all_triggered() { for (int index = 0; index < ui->traceFileTabs->count(); index++) { // Changes in the database files will trigger the file watchers from @@ -212,7 +251,7 @@ void TraceAnalyzer::on_actionExportAsVCD_triggered() void TraceAnalyzer::statusChanged(QString message, bool saveChangesEnable) { statusLabel->setText(message + QTime::currentTime().toString()); - ui->actionSaveChangesToDB->setEnabled(saveChangesEnable); + ui->actionSave->setEnabled(saveChangesEnable); } void TraceAnalyzer::on_actionTest_triggered() diff --git a/DRAMSys/traceAnalyzer/traceanalyzer.h b/DRAMSys/traceAnalyzer/traceanalyzer.h index e6916862..cbde695e 100644 --- a/DRAMSys/traceAnalyzer/traceanalyzer.h +++ b/DRAMSys/traceAnalyzer/traceanalyzer.h @@ -80,12 +80,16 @@ private Q_SLOTS: void on_traceFileTabs_tabCloseRequested(int index); void on_actionOpen_triggered(); + void on_actionSave_triggered(); + void on_actionSave_as_triggered(); + void on_actionSave_all_triggered(); + void on_actionReload_triggered(); void on_actionReload_all_triggered(); - void on_actionSaveChangesToDB_triggered(); void on_actionExportAsVCD_triggered(); - void on_actionClose_all_triggered(); void on_actionTest_triggered(); void on_actionMetrics_triggered(); + void on_actionClose_triggered(); + void on_actionClose_all_triggered(); public Q_SLOTS: void statusChanged(QString message, bool saveChangesEnable = false); diff --git a/DRAMSys/traceAnalyzer/traceanalyzer.ui b/DRAMSys/traceAnalyzer/traceanalyzer.ui index 6a364223..f3abcd8c 100644 --- a/DRAMSys/traceAnalyzer/traceanalyzer.ui +++ b/DRAMSys/traceAnalyzer/traceanalyzer.ui @@ -54,20 +54,28 @@ - File + &File + + + + - + - + + + + + - Help + &Help @@ -77,54 +85,54 @@ + + + ../../../../.designer/backup../../../../.designer/backup + - Open + &Open... Ctrl+O - - - false + + + + ../../../../.designer/backup../../../../.designer/backup - Reload databases + &Reload - Ctrl+R + F5 - - - false + + + + ../../../../.designer/backup../../../../.designer/backup - Save changes to DB + &Save Ctrl+S - - false - - Close all - - - Ctrl+Q + C&lose all - Info + &Info - About + &About @@ -136,39 +144,101 @@ - - false - - Test + &Test Ctrl+T - - false - - Metrics + &Metrics Ctrl+M - - false + + + ../../../../.designer/backup../../../../.designer/backup - Export as VCD + Export as &VCD... - Ctrl+E + Ctrl+V + + + + + + ../../../../.designer/backup../../../../.designer/backup + + + &Close + + + Ctrl+W + + + + + R&eload all + + + + + + ../../../../.designer/backup../../../../.designer/backup + + + &Quit + + + Ctrl+Q + + + + + + .. + + + Save &all + + + + + + .. + + + Save &as... + + + Ctrl+Shift+S - + + + actionQuit + triggered() + TraceAnalyzer + close() + + + -1 + -1 + + + 399 + 299 + + + +