Move FGSwiftBus settings to own class

This commit is contained in:
Lars Toenning
2023-01-31 22:06:11 +01:00
parent c1dc5b0b06
commit 65b4251a3c
7 changed files with 133 additions and 15 deletions

View File

@@ -13,28 +13,71 @@
#define BLACKMISC_SIMULATION_SETTINGS_FGSWIFTBUSSETTINGS_H
#include <QString>
#include "blackmisc/settingscache.h"
#include "blackmisc/dbusserver.h"
#include "blackmisc/settingscache.h"
#include "blackmisc/valueobject.h"
BLACK_DECLARE_VALUEOBJECT_MIXINS(BlackMisc::Simulation::Settings, CFGSwiftBusSettings)
namespace BlackMisc::Simulation::Settings
{
//! FGSwiftBus settings
class BLACKMISC_EXPORT CFGSwiftBusSettings final :
public CValueObject<CFGSwiftBusSettings>
{
public:
//! Properties by index
enum ColumnIndex
{
IndexDBusServerAddress = CPropertyIndexRef::GlobalIndexCFGSwiftBusSettings,
};
//! Default constructor
CFGSwiftBusSettings() = default;
//! \copydoc BlackMisc::Mixin::Index::propertyByIndex
QVariant propertyByIndex(BlackMisc::CPropertyIndexRef index) const;
//! \copydoc BlackMisc::Mixin::Index::setPropertyByIndex
void setPropertyByIndex(BlackMisc::CPropertyIndexRef index, const QVariant &variant);
//! \copydoc BlackMisc::Mixin::String::toQString
QString convertToQString(bool i18n = false) const;
//! DBus server
QString getDBusServerAddress() const { return m_dBusServerAddress; }
//! Set DBus server
void setDBusServerAddress(const QString &dBusServer) { m_dBusServerAddress = dBusServer; }
private:
QString m_dBusServerAddress { "tcp:host=127.0.0.1,port=45003" }; //!< DBus server
BLACK_METACLASS(
CFGSwiftBusSettings,
BLACK_METAMEMBER(dBusServerAddress)
);
};
/*!
* Setting for FGSwiftBus.
*/
struct TFGSwiftBusServer : public BlackMisc::TSettingTrait<QString>
struct TFGSwiftBusServer : public BlackMisc::TSettingTrait<CFGSwiftBusSettings>
{
//! \copydoc BlackMisc::TSettingTrait::key
static const char *key() { return "fgswiftbus/server"; }
static const char *key() { return "fgswiftbus/settings"; }
//! \copydoc BlackCore::TSettingTrait::humanReadable
static const QString &humanReadable() { static const QString name("FGSwiftBus"); return name; }
//! \copydoc BlackMisc::TSettingTrait::defaultValue
static QString defaultValue() { return "tcp:host=127.0.0.1,port=45003"; }
static CFGSwiftBusSettings defaultValue() { return CFGSwiftBusSettings(); }
//! \copydoc BlackMisc::TSettingTrait::isValid
static bool isValid(const QString &dBusAddress, QString &) { return BlackMisc::CDBusServer::isSessionOrSystemAddress(dBusAddress) || BlackMisc::CDBusServer::isQtDBusAddress(dBusAddress); }
static bool isValid(const CFGSwiftBusSettings &settings, QString &) { return BlackMisc::CDBusServer::isSessionOrSystemAddress(settings.getDBusServerAddress()) || BlackMisc::CDBusServer::isQtDBusAddress(settings.getDBusServerAddress()); }
};
} // ns
Q_DECLARE_METATYPE(BlackMisc::Simulation::Settings::CFGSwiftBusSettings)
#endif // guard