From 2d4cdc8010e7f61bb9465714a803b6a1f2cba98e Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 5 Nov 2018 16:23:02 +0100 Subject: [PATCH] Ref T349, P3D version settings UI --- .../fsxcommon/fsxsettingscomponent.ui | 58 ++++++++++--------- .../fsxcommon/simconnectsettingscomponent.cpp | 45 ++++++++++++-- .../fsxcommon/simconnectsettingscomponent.h | 15 ++++- .../fsxcommon/simconnectsettingscomponent.ui | 55 +++++++++++++++--- 4 files changed, 132 insertions(+), 41 deletions(-) diff --git a/src/plugins/simulator/fsxcommon/fsxsettingscomponent.ui b/src/plugins/simulator/fsxcommon/fsxsettingscomponent.ui index abc7573cc..9c88497db 100644 --- a/src/plugins/simulator/fsxcommon/fsxsettingscomponent.ui +++ b/src/plugins/simulator/fsxcommon/fsxsettingscomponent.ui @@ -13,8 +13,8 @@ FSX/P3D settings - - + + @@ -47,21 +47,7 @@ - - - - - - - - - - - - - - - + Trace simConnect calls (this will trace sendId calls and provide further information) @@ -71,7 +57,7 @@ - + Enable SB SimConnect offsets. Those are needed to detect "Ident" and "Standby" from your transponder (supported by some vendors as PMDG). @@ -81,34 +67,48 @@ - + + + + + + + + + + + + + + + Use the terrain probe (32bit only) - - - - - - - - + Enable FSUIPC support - + + + + + + + + @@ -116,6 +116,8 @@ cb_UseFsuipc cb_SBOffsets cb_EnableTerrainProbe + pb_CopyTerrainProbe + pb_Refresh diff --git a/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.cpp b/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.cpp index 725c57a32..17bfda5a1 100644 --- a/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.cpp +++ b/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.cpp @@ -8,11 +8,11 @@ */ #include "SimConnectsettingscomponent.h" -#include "ui_SimConnectsettingscomponent.h" +#include "ui_simconnectsettingscomponent.h" #include "blackgui/guiapplication.h" #include "blackcore/context/contextapplication.h" #include "blackcore/context/contextsimulator.h" -#include "blackmisc/simulation/fsx/SimConnectutilities.h" +#include "blackmisc/simulation/fsx/simconnectutilities.h" #include "blackmisc/network/networkutils.h" #include "blackmisc/logmessage.h" #include "blackconfig/buildconfig.h" @@ -28,13 +28,14 @@ using namespace BlackMisc; using namespace BlackMisc::Simulation; using namespace BlackMisc::Simulation::Fsx; using namespace BlackMisc::Network; +using namespace BlackGui; namespace BlackSimPlugin { namespace FsxCommon { CSimConnectSettingsComponent::CSimConnectSettingsComponent(QWidget *parent) : - QFrame(parent), + COverlayMessagesFrame(parent), ui(new Ui::CSimConnectSettingsComponent) { ui->setupUi(this); @@ -46,8 +47,12 @@ namespace BlackSimPlugin connect(ui->pb_OpenUserCfgFile, &QPushButton::clicked, this, &CSimConnectSettingsComponent::openUserSimConnectCfgFile); connect(ui->pb_TestConnection, &QPushButton::clicked, this, &CSimConnectSettingsComponent::testSwiftSimConnectConnection); connect(ui->pb_SaveAsSimConnectIni, &QPushButton::clicked, this, &CSimConnectSettingsComponent::saveSimConnectIniFileDialog); - this->setSimConnectInfo(); + + if (m_p3d64bit) + { + connect(ui->cb_P3DVersion, &QComboBox::currentTextChanged, this, &CSimConnectSettingsComponent::onP3DVersionChanged); + } } CSimConnectSettingsComponent::~CSimConnectSettingsComponent() @@ -214,17 +219,49 @@ namespace BlackSimPlugin { ui->pte_SimConnectInfo->setPlainText("Static linking P3Dv4 x64"); m_simulator = CSimulatorInfo(CSimulatorInfo::P3D); + m_p3d64bit = true; + + const QString v = m_p3dVersion.get(); + this->setComboBox(v); } else { const CWinDllUtils::DLLInfo SimConnectInfo = CSimConnectUtilities::simConnectDllInfo(); ui->pte_SimConnectInfo->setPlainText(SimConnectInfo.summary()); m_simulator = CSimulatorInfo(CSimulatorInfo::FSX); + m_p3d64bit = false; } + + ui->lbl_P3DVersion->setVisible(m_p3d64bit); + ui->cb_P3DVersion->setVisible(m_p3d64bit); + ui->le_UserCfgFile->setText(CSimConnectUtilities::hasUserSimConnectCfgFile() ? CSimConnectUtilities::getUserSimConnectCfgFilename() : ""); const QString iniFiles = CSimConnectUtilities::getSimConnectIniFiles().join("\n"); ui->pte_SimConnectIniFiles->setPlainText(iniFiles); this->checkSwiftSimConnectCfgFile(); } + + void CSimConnectSettingsComponent::setComboBox(const QString &value) + { + QString v; + bool found = false; + for (int index = 0; index < ui->cb_P3DVersion->count(); index++) + { + v = ui->cb_P3DVersion->itemText(index); + if (v.contains(value, Qt::CaseInsensitive)) { found = true; break; } + } + ui->cb_P3DVersion->setCurrentText(found ? v : ""); + } + + void BlackSimPlugin::FsxCommon::CSimConnectSettingsComponent::onP3DVersionChanged(const QString &version) + { + if (m_p3dVersion.get() == version) { return; } + const CStatusMessage saveMsg = m_p3dVersion.setAndSave(version); + if (saveMsg.isSuccess()) + { + const CStatusMessage m = CStatusMessage(this).info("Changed P3D version to '%1'. Requires a new start of swift to become effective!") << version; + this->showOverlayMessage(m); + } + } } // ns } // ns diff --git a/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.h b/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.h index e8737f48c..099a37554 100644 --- a/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.h +++ b/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.h @@ -12,8 +12,11 @@ #ifndef BLACKSIMPLUGIN_FSXCOMMON_SIMCONNECTSETTINGSCOMPONENT_H #define BLACKSIMPLUGIN_FSXCOMMON_SIMCONNECTSETTINGSCOMPONENT_H +#include "blackgui/overlaymessagesframe.h" +#include "blackmisc/settingscache.h" +#include "blackmisc/simulation/settings/simulatorsettings.h" #include "blackmisc/simulation/simulatorinfo.h" -#include + #include namespace Ui { class CSimConnectSettingsComponent; } @@ -24,7 +27,7 @@ namespace BlackSimPlugin /*! * A component that gathers all SimConnect related settings. */ - class CSimConnectSettingsComponent : public QFrame + class CSimConnectSettingsComponent : public BlackGui::COverlayMessagesFrame { Q_OBJECT @@ -60,8 +63,16 @@ namespace BlackSimPlugin //! Set the simconnect info void setSimConnectInfo(); + //! The the value in the combobox + void setComboBox(const QString &value); + + //! The P3D version has been changed + void onP3DVersionChanged(const QString &version); + BlackMisc::Simulation::CSimulatorInfo m_simulator { BlackMisc::Simulation::CSimulatorInfo::FSX }; + BlackMisc::CSetting m_p3dVersion { this }; QScopedPointer ui; + bool m_p3d64bit = false; }; } // ns } // ns diff --git a/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.ui b/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.ui index 363a72afa..4a89856a0 100644 --- a/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.ui +++ b/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.ui @@ -2,6 +2,14 @@ CSimConnectSettingsComponent + + + 0 + 0 + 410 + 466 + + FSX/P3D SimConnect config @@ -24,14 +32,14 @@ 4 - + SimConnect - + <html><head/><body><p><span style=" font-style:italic;">SimConnect.ini</span> files</p></body></html> @@ -41,7 +49,7 @@ - + @@ -54,7 +62,7 @@ - + <html><head/><body><p>Default <span style=" font-style:italic;">SimConnect.ini</span> file</p></body></html> @@ -64,7 +72,7 @@ - + @@ -88,7 +96,7 @@ console=1 - + @@ -129,7 +137,7 @@ console=1 - + @@ -145,6 +153,38 @@ console=1 + + + + 4.2 64bit + + + 1 + + + + 4.1 64bit + + + + + 4.2 64bit + + + + + 4.3 64bit + + + + + + + + P3V 64 bit version + + + @@ -422,6 +462,7 @@ console=1 + cb_P3DVersion pte_SimConnectInfo pte_SimConnectIniFiles pte_SimConnectIni