From a2bfe36f37f7de0b1caecbbe33a61182079f2af0 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 13 May 2014 01:14:48 +0200 Subject: [PATCH] refs #236, default FSX path by registry Includes a setter for index map --- src/blackmisc/indexvariantmap.h | 4 ++++ src/blacksim/fsx/fsxsimulatorsetup.cpp | 19 +++++++++++++++++++ src/blacksim/fsx/fsxsimulatorsetup.h | 2 +- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/blackmisc/indexvariantmap.h b/src/blackmisc/indexvariantmap.h index e95585949..00c04b934 100644 --- a/src/blackmisc/indexvariantmap.h +++ b/src/blackmisc/indexvariantmap.h @@ -43,6 +43,7 @@ namespace BlackMisc //! Add a value void addValue(int index, const QVariant &value); + //! Add a value as non QVariant template void addValue(int index, const T &value) { this->m_values.insert(index, QVariant::fromValue(value)); } @@ -52,6 +53,9 @@ namespace BlackMisc //! Value QVariant value(int index) const { return this->m_values.value(index); } + //! Set value + void value(int index, const QVariant &value) { this->m_values.value(index, value); } + //! Indexes QList indexes() const { return this->m_values.keys(); } diff --git a/src/blacksim/fsx/fsxsimulatorsetup.cpp b/src/blacksim/fsx/fsxsimulatorsetup.cpp index 74d7a8a2e..e7a54c4eb 100644 --- a/src/blacksim/fsx/fsxsimulatorsetup.cpp +++ b/src/blacksim/fsx/fsxsimulatorsetup.cpp @@ -1,5 +1,10 @@ #include "fsxsimulatorsetup.h" + +#include "../../blackmisc/project.h" #include "../fsx/simconnectutilities.h" +#include + +using namespace BlackMisc; namespace BlackSim { @@ -9,6 +14,20 @@ namespace BlackSim { CSimulatorSetup::init(); this->m_setup.addValue(SetupSimConnectCfgFile, CSimConnectUtilities::getLocalSimConnectCfgFilename()); + + if (CProject::isCompiledWithFsxSupport()) + { + // set FSX path + QSettings fsxRegistry("HKEY_CURRENT_USER\\Software\\Microsoft\\Microsoft Games\\Flight Simulator\\10.0", QSettings::NativeFormat); + QString fsxPath = fsxRegistry.value("AppPath").toString(); + if (fsxPath.isEmpty()) + { + // another trial + QSettings fsxRegistry("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Microsoft Games\\Flight Simulator\\10.0", QSettings::NativeFormat); + fsxPath = fsxRegistry.value("SetupPath").toString(); + } + if (!fsxPath.isEmpty()) this->m_setup.value(CSimulatorSetup::SetupSimPath, QVariant(fsxPath)); + } } } } diff --git a/src/blacksim/fsx/fsxsimulatorsetup.h b/src/blacksim/fsx/fsxsimulatorsetup.h index 4e5ed55e5..b68c55ba8 100644 --- a/src/blacksim/fsx/fsxsimulatorsetup.h +++ b/src/blacksim/fsx/fsxsimulatorsetup.h @@ -24,7 +24,7 @@ namespace BlackSim enum { - SetupSimConnectCfgFile = 1000 + SetupSimConnectCfgFile = 1000, //!< location of simconnect.cfg file };