From 8ba2badb61096d3d02f45423fb8720c3859c7445 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 16 Apr 2014 23:54:41 +0200 Subject: [PATCH] refs #209, update GUI to save/delete/check simconnect.cfg file (FSX) --- samples/blackgui/mainwindow.h | 4 +- samples/blackgui/mainwindow.ui | 49 +++++++++++++++++- samples/blackgui/mainwindow_init.cpp | 4 +- samples/blackgui/mainwindow_settings.cpp | 64 ++++++++++++++++++++++-- 4 files changed, 112 insertions(+), 9 deletions(-) diff --git a/samples/blackgui/mainwindow.h b/samples/blackgui/mainwindow.h index 0df7ff4b6..d1a2a9020 100644 --- a/samples/blackgui/mainwindow.h +++ b/samples/blackgui/mainwindow.h @@ -437,8 +437,8 @@ private slots: //! Save a simconnect.cfg file for FSX void saveSimConnectCfg(); - //!Open directoryfor simconnect.cfg (if local) - void openSimConnectCfg(); + //! simConnect.cfg: open, exists? delete + void simConnectCfgFile(); }; #pragma pop_macro("interface") diff --git a/samples/blackgui/mainwindow.ui b/samples/blackgui/mainwindow.ui index 881edb5af..51ee85a76 100644 --- a/samples/blackgui/mainwindow.ui +++ b/samples/blackgui/mainwindow.ui @@ -2320,8 +2320,8 @@ QStatusBar QLabel { - - + + @@ -2329,6 +2329,13 @@ QStatusBar QLabel { + + + + Delete + + + @@ -2345,6 +2352,44 @@ QStatusBar QLabel { + + + + "simconnect.cfg" exists? + + + + + + + + 4 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + Check + + + + + + diff --git a/samples/blackgui/mainwindow_init.cpp b/samples/blackgui/mainwindow_init.cpp index aebc54a27..6596d5ccb 100644 --- a/samples/blackgui/mainwindow_init.cpp +++ b/samples/blackgui/mainwindow_init.cpp @@ -359,7 +359,9 @@ void MainWindow::initGuiSignals() // Settings simulator this->connect(this->ui->pb_SettingsSimulatorFsxTestConnection, &QPushButton::clicked, this, &MainWindow::testSimConnectConnection); this->connect(this->ui->pb_SettingsSimulatorFsxSaveSimconnectCfg, &QPushButton::clicked, this, &MainWindow::saveSimConnectCfg); - this->connect(this->ui->pb_SettingsSimulatorFsxOpenSimconnectCfg, &QPushButton::clicked, this, &MainWindow::openSimConnectCfg); + this->connect(this->ui->pb_SettingsSimulatorFsxOpenSimconnectCfg, &QPushButton::clicked, this, &MainWindow::simConnectCfgFile); + this->connect(this->ui->pb_SettingsSimulatorFsxDeleteSimconnectCfg, &QPushButton::clicked, this, &MainWindow::simConnectCfgFile); + this->connect(this->ui->pb_SettingsSimulatorFsxExistsSimconncetCfg, &QPushButton::clicked, this, &MainWindow::simConnectCfgFile); // no warnings in release build Q_UNUSED(connected); diff --git a/samples/blackgui/mainwindow_settings.cpp b/samples/blackgui/mainwindow_settings.cpp index 5888ae7e5..13f874195 100644 --- a/samples/blackgui/mainwindow_settings.cpp +++ b/samples/blackgui/mainwindow_settings.cpp @@ -142,6 +142,9 @@ void MainWindow::saveHotkeys() this->displayStatusMessages(msgs); } +/* + * Clear particular hotkey + */ void MainWindow::clearHotkey() { QModelIndex i = this->ui->tv_SettingsMiscHotkeys->currentIndex(); @@ -152,6 +155,9 @@ void MainWindow::clearHotkey() this->m_modelSettingsHotKeys->update(i, defKey); } +/* + * SimConnect working? + */ void MainWindow::testSimConnectConnection() { QString address = this->ui->le_SettingsSimulatorFsxAddress->text().trimmed(); @@ -184,9 +190,13 @@ void MainWindow::testSimConnectConnection() this->displayStatusMessage(CStatusMessage(CStatusMessage::TypeTrafficNetwork, CStatusMessage::SeverityInfo, msg)); } +/* + * Save simconnect.cfg + */ void MainWindow::saveSimConnectCfg() { if (!this->m_rt->getIContextSimulator()) return; + if (!this->m_rt->getIContextSimulator()->isSimulatorAvailable()) return; QString address = this->ui->le_SettingsSimulatorFsxAddress->text().trimmed(); QString port = this->ui->le_SettingsSimulatorFsxPort->text().trimmed(); @@ -223,11 +233,57 @@ void MainWindow::saveSimConnectCfg() QString m = QString("Cannot write ").append(fileName); this->displayStatusMessage(CStatusMessage(CStatusMessage::TypeTrafficNetwork, CStatusMessage::SeverityError, m)); } + this->ui->pb_SettingsSimulatorFsxExistsSimconncetCfg->click(); // update status } -void MainWindow::openSimConnectCfg() +/* + * simconnect.cfg: open, delete, exists? + */ +void MainWindow::simConnectCfgFile() { - QFileInfo fi(CSimConnectUtilities::getLocalSimConnectCfgFilename()); - QString path = QDir::toNativeSeparators(fi.absolutePath()); - QDesktopServices::openUrl(QUrl("file:///" + path )); + if (!this->m_rt->getIContextSimulator()) return; + if (!this->m_rt->getIContextSimulator()->isSimulatorAvailable()) return; + + QObject *sender = QObject::sender(); + if (sender == this->ui->pb_SettingsSimulatorFsxOpenSimconnectCfg) + { + QFileInfo fi(CSimConnectUtilities::getLocalSimConnectCfgFilename()); + QString path = QDir::toNativeSeparators(fi.absolutePath()); + QDesktopServices::openUrl(QUrl("file:///" + path)); + } + else if (sender == this->ui->pb_SettingsSimulatorFsxDeleteSimconnectCfg) + { + if (!this->m_rt->getIContextSimulator()) return; + QString fileName = BlackSim::Fsx::CSimConnectUtilities::getLocalSimConnectCfgFilename(); + QString m = QString("Deleted %1 ").append(fileName); + if (this->m_rt->getIContextSimulator()->usingLocalObjects()) + { + QFile f(fileName); + f.remove(); + m = m.arg("locally"); + } + else + { + this->m_rt->getIContextApplication()->removeFile(fileName); + m = m.arg("remotely"); + } + this->displayStatusMessage(CStatusMessage(CStatusMessage::TypeSimulator, CStatusMessage::SeverityInfo, m)); + this->ui->pb_SettingsSimulatorFsxExistsSimconncetCfg->click(); // update status + } + else if (sender == this->ui->pb_SettingsSimulatorFsxExistsSimconncetCfg) + { + if (!this->m_rt->getIContextSimulator()) return; + QString fileName = BlackSim::Fsx::CSimConnectUtilities::getLocalSimConnectCfgFilename(); + bool exists = this->m_rt->getIContextSimulator()->usingLocalObjects() ? + QFile::exists(fileName) : + this->m_rt->getIContextApplication()->existsFile(fileName); + if (exists) + { + this->ui->le_SettingsSimulatorFsxExistsSimconncetCfg->setText(fileName); + } + else + { + this->ui->le_SettingsSimulatorFsxExistsSimconncetCfg->setText("no file"); + } + } }