refs #415, mixin style lists

This commit is contained in:
Klaus Basan
2015-05-18 20:33:34 +02:00
parent 6d5c3d85a1
commit bad3ed3ea8
48 changed files with 126 additions and 528 deletions

View File

@@ -61,16 +61,5 @@ namespace BlackMisc
return ms;
}
void CAircraftModelList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAircraftModel>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAircraftModel>>();
qRegisterMetaType<BlackMisc::CCollection<CAircraftModel>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAircraftModel>>();
qRegisterMetaType<CAircraftModelList>();
qDBusRegisterMetaType<CAircraftModelList>();
registerMetaValueType<CAircraftModelList>();
}
} // namespace
} // namespace

View File

@@ -21,21 +21,20 @@ namespace BlackMisc
{
namespace Simulation
{
/*!
* Value object encapsulating a list of aircraft models
*/
class BLACKMISC_EXPORT CAircraftModelList : public CSequence<CAircraftModel>
//! Value object encapsulating a list of aircraft models
class BLACKMISC_EXPORT CAircraftModelList :
public CSequence<CAircraftModel>,
public BlackMisc::Mixin::MetaType<CAircraftModelList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftModelList)
//! Empty constructor.
CAircraftModelList();
//! Construct from a base class object.
CAircraftModelList(const CSequence<CAircraftModel> &other);
//! QVariant, required for DBus QVariant lists
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! Contains model string
bool containsModelString(const QString &modelString, Qt::CaseSensitivity sensitivity = Qt::CaseInsensitive) const;
@@ -51,12 +50,6 @@ namespace BlackMisc
//! Model strings
QStringList getSortedModelStrings() const;
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -282,7 +282,7 @@ namespace BlackMisc
QString content(line.mid(index + 1).trimmed());
// fix "" strings, some are malformed and just contain " at beginning, end
// fix "" strings, some are malformed and just contain " at beginning, not clsoing at end of line
if (content.endsWith('"')) { content.remove(content.size() - 1 , 1); }
if (content.startsWith('"')) { content.remove(0 , 1); }
@@ -294,17 +294,6 @@ namespace BlackMisc
return content;
}
void CAircraftCfgEntriesList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAircraftCfgEntries>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAircraftCfgEntries>>();
qRegisterMetaType<BlackMisc::CCollection<CAircraftCfgEntries>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAircraftCfgEntries>>();
qRegisterMetaType<CAircraftCfgEntriesList>();
qDBusRegisterMetaType<CAircraftCfgEntriesList>();
BlackMisc::registerMetaValueType<CAircraftCfgEntriesList>();
}
} // namespace
} // namespace
} // namespace

View File

@@ -28,12 +28,13 @@ namespace BlackMisc
{
namespace FsCommon
{
//! Utility, providing FS aircraft.cfg entries
class BLACKMISC_EXPORT CAircraftCfgEntriesList : public BlackMisc::CSequence<CAircraftCfgEntries>
class BLACKMISC_EXPORT CAircraftCfgEntriesList :
public BlackMisc::CSequence<CAircraftCfgEntries>,
public BlackMisc::Mixin::MetaType<CAircraftCfgEntriesList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftCfgEntriesList)
//! Constructor
CAircraftCfgEntriesList(const QString &rootDirectory = "") : m_rootDirectory(rootDirectory) {}
@@ -74,18 +75,9 @@ namespace BlackMisc
//! Find by title
CAircraftCfgEntriesList findByTitle(const QString &title, Qt::CaseSensitivity caseSensitivity = Qt::CaseInsensitive) const;
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Do not include the following directories for FS
static const QStringList &excludeDirectories();
//! Register metadata
static void registerMetadata();
private:
QString m_rootDirectory; //!< root directory reading aircraft.cfg files
bool m_readForDirectory = false; //!< valid read for given directory

View File

@@ -28,17 +28,6 @@ namespace BlackMisc
CSequence<CSimulatedAircraft>(other)
{ }
void CSimulatedAircraftList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CSimulatedAircraft>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CSimulatedAircraft>>();
qRegisterMetaType<BlackMisc::CCollection<CSimulatedAircraft>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CSimulatedAircraft>>();
qRegisterMetaType<CSimulatedAircraftList>();
qDBusRegisterMetaType<CSimulatedAircraftList>();
registerMetaValueType<CSimulatedAircraftList>();
}
CUserList CSimulatedAircraftList::getPilots() const
{
return this->findBy(Predicates::MemberValid(&CSimulatedAircraft::getPilot)).transform(Predicates::MemberTransform(&CSimulatedAircraft::getPilot));

View File

@@ -32,9 +32,12 @@ namespace BlackMisc
class BLACKMISC_EXPORT CSimulatedAircraftList :
public BlackMisc::CSequence<CSimulatedAircraft>,
public BlackMisc::Aviation::ICallsignObjectList<CSimulatedAircraft, CSimulatedAircraftList>,
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CSimulatedAircraft, CSimulatedAircraftList>
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CSimulatedAircraft, CSimulatedAircraftList>,
public BlackMisc::Mixin::MetaType<CSimulatedAircraftList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CSimulatedAircraftList)
//! Default constructor.
CSimulatedAircraftList();
@@ -71,18 +74,9 @@ namespace BlackMisc
//! Rendered?
bool isRendered(const BlackMisc::Aviation::CCallsign &callsign) const;
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! To aircraft list
BlackMisc::Aviation::CAircraftList toAircraftList() const;
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -29,16 +29,5 @@ namespace BlackMisc
return this->transform([i18n](const CSimulatorPluginInfo & info) { return info.toQString(i18n); });
}
void CSimulatorPluginInfoList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CSimulatorPluginInfo>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CSimulatorPluginInfo>>();
qRegisterMetaType<BlackMisc::CCollection<CSimulatorPluginInfo>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CSimulatorPluginInfo>>();
qRegisterMetaType<CSimulatorPluginInfoList>();
qDBusRegisterMetaType<CSimulatorPluginInfoList>();
BlackMisc::registerMetaValueType<CSimulatorPluginInfoList>();
}
} // namespace
} // namespace

View File

@@ -23,27 +23,25 @@ namespace BlackMisc
namespace Simulation
{
//! Value object encapsulating a list of SimulatorInfo objects.
class BLACKMISC_EXPORT CSimulatorPluginInfoList : public BlackMisc::CSequence<CSimulatorPluginInfo>
class BLACKMISC_EXPORT CSimulatorPluginInfoList :
public BlackMisc::CSequence<CSimulatorPluginInfo>,
public BlackMisc::Mixin::MetaType<CSimulatorPluginInfoList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CSimulatorPluginInfoList)
//! Default constructor
CSimulatorPluginInfoList();
//! Construct from a base class object.
CSimulatorPluginInfoList(const CSequence<CSimulatorPluginInfo> &other);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! Is simulator supported
bool supportsSimulator(const QString &simulator);
//! String list with meaningful representations
QStringList toStringList(bool i18n = false) const;
//! Register the metatypes
static void registerMetadata();
};
} // ns
} // ns