mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-05 09:15:34 +08:00
refs #911, allow to obtain address/port from simConnect.cfg file
This commit is contained in:
committed by
Mathew Sutcliffe
parent
b21f5f18e7
commit
f82f04275b
@@ -30,9 +30,42 @@ namespace BlackMisc
|
||||
{
|
||||
CSimConnectUtilities::CSimConnectUtilities() { }
|
||||
|
||||
const QString &CSimConnectUtilities::simConnectFilename()
|
||||
{
|
||||
static const QString fn("SimConnect.cfg");
|
||||
return fn;
|
||||
}
|
||||
|
||||
QString CSimConnectUtilities::getLocalSimConnectCfgFilename()
|
||||
{
|
||||
return QCoreApplication::applicationDirPath() + "/SimConnect.cfg";
|
||||
return CFileUtils::appendFilePaths(QCoreApplication::applicationDirPath(), simConnectFilename());
|
||||
}
|
||||
|
||||
bool CSimConnectUtilities::hasLocalSimConnectCfgFilename()
|
||||
{
|
||||
const QFile f(getLocalSimConnectCfgFilename());
|
||||
return f.exists();
|
||||
}
|
||||
|
||||
QSharedPointer<QSettings> CSimConnectUtilities::simConnectFileAsSettings(const QString &fileName)
|
||||
{
|
||||
QSharedPointer<QSettings> sp;
|
||||
const QFile file(fileName);
|
||||
if (!file.exists()) { return sp; }
|
||||
sp.reset(new QSettings(fileName, QSettings::IniFormat));
|
||||
return sp;
|
||||
}
|
||||
|
||||
QString CSimConnectUtilities::ipAddress(const QSettings *simConnectSettings)
|
||||
{
|
||||
if (!simConnectSettings) { return QString(""); }
|
||||
return simConnectSettings->value("SimConnect/Address").toString();
|
||||
}
|
||||
|
||||
int CSimConnectUtilities::ipPort(const QSettings *simConnectSettings)
|
||||
{
|
||||
if (!simConnectSettings) { return -1; }
|
||||
return simConnectSettings->value("SimConnect/Port", QVariant::fromValue(-1)).toInt();
|
||||
}
|
||||
|
||||
bool CSimConnectUtilities::writeSimConnectCfg(const QString &fileName, const QString &ip, int port)
|
||||
@@ -58,7 +91,7 @@ namespace BlackMisc
|
||||
|
||||
const QString CSimConnectUtilities::resolveEnumToString(const DWORD id, const char *enumName)
|
||||
{
|
||||
int i = CSimConnectUtilities::staticMetaObject.indexOfEnumerator(enumName);
|
||||
const int i = CSimConnectUtilities::staticMetaObject.indexOfEnumerator(enumName);
|
||||
if (i < 0) return QString("No enumerator for %1").arg(enumName);
|
||||
const QMetaEnum m = CSimConnectUtilities::staticMetaObject.enumerator(i);
|
||||
const char *k = m.valueToKey(id);
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
#include <QMetaType>
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
#include <QSettings>
|
||||
#include <QSharedPointer>
|
||||
|
||||
// Apart from the below definitions, the following code is OS independent,
|
||||
// though it does not make sense to be used on non WIN machines.
|
||||
@@ -47,9 +49,24 @@ namespace BlackMisc
|
||||
Q_ENUMS(SIMCONNECT_SURFACE)
|
||||
|
||||
public:
|
||||
//! Filename of the file
|
||||
static const QString &simConnectFilename();
|
||||
|
||||
//! Path to local config file
|
||||
static QString getLocalSimConnectCfgFilename();
|
||||
|
||||
//! Path to local config file
|
||||
static bool hasLocalSimConnectCfgFilename();
|
||||
|
||||
//! The simconnect.cfg as settings (or nullptr settings if no such file)
|
||||
static QSharedPointer<QSettings> simConnectFileAsSettings(const QString &fileName = getLocalSimConnectCfgFilename());
|
||||
|
||||
//! IP address from settings (of simconnect.cfg), "" if not available
|
||||
static QString ipAddress(const QSettings *simConnectSettings);
|
||||
|
||||
//! IP port from settings (of simconnect.cfg), -1 if not available
|
||||
static int ipPort(const QSettings *simConnectSettings);
|
||||
|
||||
//! Content for FSX simconnect.cfg file
|
||||
//! \param ip IP address of FSX
|
||||
//! \param port Port of FSX (e.g. 500)
|
||||
|
||||
Reference in New Issue
Block a user