Improve bugprone enabling/disabling of menu items in TraceAnalyzer

This commit is contained in:
2021-09-16 16:05:53 +02:00
parent 2ccfc4abf5
commit 5abdc19cfa
2 changed files with 18 additions and 28 deletions

View File

@@ -65,13 +65,6 @@ TraceAnalyzer::TraceAnalyzer(QWidget *parent) :
ui(new Ui::TraceAnalyzer)
{
setUpGui();
// Disable actions except for "Open" until some file is open.
ui->actionReload_all->setEnabled(false);
ui->actionSaveChangesToDB->setEnabled(false);
ui->actionExportAsVCD->setEnabled(false);
ui->actionClose_all->setEnabled(false);
ui->actionTest->setEnabled(false);
ui->actionMetrics->setEnabled(false);
}
TraceAnalyzer::TraceAnalyzer(QSet<QString> paths, StartupOption option,
@@ -120,20 +113,24 @@ void TraceAnalyzer::openTracefile(const QString &path)
ui->traceFileTabs->addTab(tab, QFileInfo(path).baseName());
openedTraceFiles.insert(path);
// Enable actions
ui->actionReload_all->setEnabled(true);
ui->actionSaveChangesToDB->setEnabled(true);
if (PythonCaller::instance().vcdExportDependenciesAvailable())
ui->actionExportAsVCD->setEnabled(true);
ui->actionClose_all->setEnabled(true);
ui->actionTest->setEnabled(true);
ui->actionMetrics->setEnabled(true);
statusLabel->clear();
}
void TraceAnalyzer::on_menuFile_aboutToShow()
{
ui->actionOpen->setEnabled(true);
bool tabsOpen = ui->traceFileTabs->count() > 0;
bool exportAsVcdAvailable = PythonCaller::instance().vcdExportDependenciesAvailable();
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);
}
void TraceAnalyzer::on_traceFileTabs_tabCloseRequested(int index)
{
TraceFileTab *traceFileTab = static_cast<TraceFileTab *>
@@ -154,14 +151,6 @@ void TraceAnalyzer::on_actionClose_all_triggered()
on_traceFileTabs_tabCloseRequested(i);
}
// All files closed. Disable actions except for "Open".
ui->actionReload_all->setEnabled(false);
ui->actionSaveChangesToDB->setEnabled(false);
ui->actionExportAsVCD->setEnabled(false);
ui->actionClose_all->setEnabled(false);
ui->actionTest->setEnabled(false);
ui->actionMetrics->setEnabled(false);
statusLabel->clear();
}

View File

@@ -76,14 +76,15 @@ private:
QSet<QString> openedTraceFiles;
private Q_SLOTS:
void on_menuFile_aboutToShow();
void on_traceFileTabs_tabCloseRequested(int index);
void on_actionOpen_triggered();
void on_actionReload_all_triggered();
void on_actionSaveChangesToDB_triggered();
void on_actionExportAsVCD_triggered();
void on_traceFileTabs_tabCloseRequested(int index);
void on_actionClose_all_triggered();
void on_actionTest_triggered();
void on_actionMetrics_triggered();
public Q_SLOTS: