Improve file menu of TraceAnalyzer.

This commit is contained in:
2021-09-20 11:41:11 +02:00
parent 3990bbc084
commit 81dedb6597
3 changed files with 155 additions and 42 deletions

View File

@@ -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<TraceFileTab *>(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<TraceFileTab *>(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()

View File

@@ -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);

View File

@@ -54,20 +54,28 @@
</property>
<widget class="QMenu" name="menuFile">
<property name="title">
<string>File</string>
<string>&amp;File</string>
</property>
<addaction name="actionOpen"/>
<addaction name="actionSave"/>
<addaction name="actionSave_as"/>
<addaction name="actionSave_all"/>
<addaction name="actionReload"/>
<addaction name="actionReload_all"/>
<addaction name="actionSaveChangesToDB"/>
<addaction name="separator"/>
<addaction name="actionExportAsVCD"/>
<addaction name="actionClose_all"/>
<addaction name="separator"/>
<addaction name="actionTest"/>
<addaction name="actionMetrics"/>
<addaction name="separator"/>
<addaction name="actionClose"/>
<addaction name="actionClose_all"/>
<addaction name="separator"/>
<addaction name="actionQuit"/>
</widget>
<widget class="QMenu" name="menuHelp">
<property name="title">
<string>Help</string>
<string>&amp;Help</string>
</property>
<addaction name="actionInfo"/>
<addaction name="actionAbout"/>
@@ -77,54 +85,54 @@
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="actionOpen">
<property name="icon">
<iconset theme="document-open">
<normaloff>../../../../.designer/backup</normaloff>../../../../.designer/backup</iconset>
</property>
<property name="text">
<string>Open</string>
<string>&amp;Open...</string>
</property>
<property name="shortcut">
<string>Ctrl+O</string>
</property>
</action>
<action name="actionReload_all">
<property name="enabled">
<bool>false</bool>
<action name="actionReload">
<property name="icon">
<iconset theme="view-refresh">
<normaloff>../../../../.designer/backup</normaloff>../../../../.designer/backup</iconset>
</property>
<property name="text">
<string>Reload databases</string>
<string>&amp;Reload</string>
</property>
<property name="shortcut">
<string>Ctrl+R</string>
<string>F5</string>
</property>
</action>
<action name="actionSaveChangesToDB">
<property name="enabled">
<bool>false</bool>
<action name="actionSave">
<property name="icon">
<iconset theme="document-save">
<normaloff>../../../../.designer/backup</normaloff>../../../../.designer/backup</iconset>
</property>
<property name="text">
<string>Save changes to DB</string>
<string>&amp;Save</string>
</property>
<property name="shortcut">
<string>Ctrl+S</string>
</property>
</action>
<action name="actionClose_all">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Close all</string>
</property>
<property name="shortcut">
<string>Ctrl+Q</string>
<string>C&amp;lose all</string>
</property>
</action>
<action name="actionInfo">
<property name="text">
<string>Info</string>
<string>&amp;Info</string>
</property>
</action>
<action name="actionAbout">
<property name="text">
<string>About</string>
<string>&amp;About</string>
</property>
</action>
<action name="actionPreferences">
@@ -136,39 +144,101 @@
</property>
</action>
<action name="actionTest">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Test</string>
<string>&amp;Test</string>
</property>
<property name="shortcut">
<string>Ctrl+T</string>
</property>
</action>
<action name="actionMetrics">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Metrics</string>
<string>&amp;Metrics</string>
</property>
<property name="shortcut">
<string>Ctrl+M</string>
</property>
</action>
<action name="actionExportAsVCD">
<property name="enabled">
<bool>false</bool>
<property name="icon">
<iconset theme="document-export">
<normaloff>../../../../.designer/backup</normaloff>../../../../.designer/backup</iconset>
</property>
<property name="text">
<string>Export as VCD</string>
<string>Export as &amp;VCD...</string>
</property>
<property name="shortcut">
<string>Ctrl+E</string>
<string>Ctrl+V</string>
</property>
</action>
<action name="actionClose">
<property name="icon">
<iconset theme="document-close">
<normaloff>../../../../.designer/backup</normaloff>../../../../.designer/backup</iconset>
</property>
<property name="text">
<string>&amp;Close</string>
</property>
<property name="shortcut">
<string>Ctrl+W</string>
</property>
</action>
<action name="actionReload_all">
<property name="text">
<string>R&amp;eload all</string>
</property>
</action>
<action name="actionQuit">
<property name="icon">
<iconset theme="application-exit">
<normaloff>../../../../.designer/backup</normaloff>../../../../.designer/backup</iconset>
</property>
<property name="text">
<string>&amp;Quit</string>
</property>
<property name="shortcut">
<string>Ctrl+Q</string>
</property>
</action>
<action name="actionSave_all">
<property name="icon">
<iconset theme="document-save-all">
<normaloff>.</normaloff>.</iconset>
</property>
<property name="text">
<string>Save &amp;all</string>
</property>
</action>
<action name="actionSave_as">
<property name="icon">
<iconset theme="document-save-as">
<normaloff>.</normaloff>.</iconset>
</property>
<property name="text">
<string>Save &amp;as...</string>
</property>
<property name="shortcut">
<string>Ctrl+Shift+S</string>
</property>
</action>
</widget>
<resources/>
<connections/>
<connections>
<connection>
<sender>actionQuit</sender>
<signal>triggered()</signal>
<receiver>TraceAnalyzer</receiver>
<slot>close()</slot>
<hints>
<hint type="sourcelabel">
<x>-1</x>
<y>-1</y>
</hint>
<hint type="destinationlabel">
<x>399</x>
<y>299</y>
</hint>
</hints>
</connection>
</connections>
</ui>