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

@@ -64,17 +64,5 @@ namespace BlackMisc
push_back(engine);
}
}
void CAircraftEngineList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAircraftEngine>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAircraftEngine>>();
qRegisterMetaType<BlackMisc::CCollection<CAircraftEngine>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAircraftEngine>>();
qRegisterMetaType<CAircraftEngineList>();
qDBusRegisterMetaType<CAircraftEngineList>();
registerMetaValueType<CAircraftEngineList>();
}
} // namespace
} // namespace

View File

@@ -23,9 +23,13 @@ namespace BlackMisc
namespace Aviation
{
//! Value object encapsulating a list of aircraft engines.
class BLACKMISC_EXPORT CAircraftEngineList : public CSequence<CAircraftEngine>
class BLACKMISC_EXPORT CAircraftEngineList :
public CSequence<CAircraftEngine>,
public BlackMisc::Mixin::MetaType<CAircraftEngineList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftEngineList)
//! Default constructor.
CAircraftEngineList() = default;
@@ -41,20 +45,12 @@ namespace BlackMisc
//! Engine number 1..x on?
bool isEngineOn(int engineNumber) const;
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! \copydoc CValueObject::toJson
QJsonObject toJson() const;
//! \copydoc CValueObject::convertFromJson
void convertFromJson(const QJsonObject &json);
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -27,7 +27,6 @@ namespace BlackMisc
public CSequence<CAircraftIcaoCode>,
public BlackMisc::Mixin::MetaType<CAircraftIcaoCodeList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftIcaoCodeList)

View File

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

View File

@@ -29,12 +29,16 @@ namespace BlackMisc
namespace Aviation
{
//! Value object encapsulating a list of aircraft.
//! \deprecated consider using CSimulatedAircraftList
class BLACKMISC_EXPORT CAircraftList :
public CSequence<CAircraft>,
public ICallsignObjectList<CAircraft, CAircraftList>,
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CAircraft, CAircraftList>
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CAircraft, CAircraftList>,
public BlackMisc::Mixin::MetaType<CAircraftList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftList)
//! Default constructor.
CAircraftList();
@@ -44,19 +48,10 @@ namespace BlackMisc
//! All pilots (with valid data)
BlackMisc::Network::CUserList getPilots() const;
//! \brief Update aircraft with data from VATSIM data file
//! \remarks The list used needs to contain the VATSIM data file objects
//! Update aircraft with data from VATSIM data file
//! \remarks The list used ("this") needs to contain the VATSIM data file objects
bool updateWithVatsimDataFileData(CAircraft &aircraftToBeUpdated) const;
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -20,16 +20,5 @@ namespace BlackMisc
CSequence<CAircraftParts>(other)
{ }
void CAircraftPartsList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAircraftParts>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAircraftParts>>();
qRegisterMetaType<BlackMisc::CCollection<CAircraftParts>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAircraftParts>>();
qRegisterMetaType<CAircraftPartsList>();
qDBusRegisterMetaType<CAircraftPartsList>();
registerMetaValueType<CAircraftPartsList>();
}
} // namespace
} // namespace

View File

@@ -26,24 +26,17 @@ namespace BlackMisc
class BLACKMISC_EXPORT CAircraftPartsList :
public CSequence<CAircraftParts>,
public ITimestampObjectList<CAircraftParts, CAircraftPartsList>,
public ICallsignObjectList<CAircraftParts, CAircraftPartsList>
public ICallsignObjectList<CAircraftParts, CAircraftPartsList>,
public BlackMisc::Mixin::MetaType<CAircraftPartsList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftPartsList)
//! Default constructor.
CAircraftPartsList();
//! Construct from a base class object.
CAircraftPartsList(const CSequence<CAircraftParts> &other);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -24,16 +24,5 @@ namespace BlackMisc
CSequence<CAircraftSituation>(other)
{ }
void CAircraftSituationList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAircraftSituation>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAircraftSituation>>();
qRegisterMetaType<BlackMisc::CCollection<CAircraftSituation>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAircraftSituation>>();
qRegisterMetaType<CAircraftSituationList>();
qDBusRegisterMetaType<CAircraftSituationList>();
registerMetaValueType<CAircraftSituationList>();
}
} // namespace
} // namespace

View File

@@ -26,24 +26,19 @@ namespace BlackMisc
class BLACKMISC_EXPORT CAircraftSituationList :
public CSequence<CAircraftSituation>,
public ITimestampObjectList<CAircraftSituation, CAircraftSituationList>,
public ICallsignObjectList<CAircraftSituation, CAircraftSituationList>
public ICallsignObjectList<CAircraftSituation, CAircraftSituationList>,
public BlackMisc::Mixin::MetaType<CAircraftSituationList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftSituationList)
//! Default constructor.
CAircraftSituationList();
//! Construct from a base class object.
CAircraftSituationList(const CSequence<CAircraftSituation> &other);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Metadata
static void registerMetadata();
};
} // namespace
} // namespace

View File

@@ -19,17 +19,6 @@ namespace BlackMisc
CSequence<CAirport>(other)
{ }
void CAirportList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAirport>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAirport>>();
qRegisterMetaType<BlackMisc::CCollection<CAirport>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAirport>>();
qRegisterMetaType<CAirportList>();
qDBusRegisterMetaType<CAirportList>();
registerMetaValueType<CAirportList>();
}
CAirportList CAirportList::findByIcao(const CAirportIcaoCode &icao) const
{
return this->findBy(&CAirport::getIcao, icao);

View File

@@ -29,9 +29,12 @@ namespace BlackMisc
//! Value object for a list of airports.
class BLACKMISC_EXPORT CAirportList :
public CSequence<CAirport>,
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CAirport, CAirportList>
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CAirport, CAirportList>,
public BlackMisc::Mixin::MetaType<CAirportList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAirportList)
//! Default constructor.
CAirportList();
@@ -46,16 +49,6 @@ namespace BlackMisc
//! Find first station by callsign, if not return given value / default
CAirport findFirstByIcao(const CAirportIcaoCode &icao, const CAirport &ifNotFound = CAirport()) const;
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace
} // namespace

View File

@@ -24,17 +24,6 @@ namespace BlackMisc
CSequence<CAtcStation>(other)
{ }
void CAtcStationList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAtcStation>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAtcStation>>();
qRegisterMetaType<BlackMisc::CCollection<CAtcStation>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAtcStation>>();
qRegisterMetaType<CAtcStationList>();
qDBusRegisterMetaType<CAtcStationList>();
registerMetaValueType<CAtcStationList>();
}
CAtcStationList CAtcStationList::findIfComUnitTunedIn25KHz(const CComSystem &comUnit) const
{
return this->findBy([&](const CAtcStation & atcStation)

View File

@@ -31,9 +31,12 @@ namespace BlackMisc
class BLACKMISC_EXPORT CAtcStationList :
public CSequence<CAtcStation>,
public BlackMisc::Aviation::ICallsignObjectList<CAtcStation, CAtcStationList>,
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CAtcStation, CAtcStationList>
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CAtcStation, CAtcStationList>,
public BlackMisc::Mixin::MetaType<CAtcStationList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAtcStationList)
//! Default constructor.
CAtcStationList();
@@ -54,16 +57,6 @@ namespace BlackMisc
//! Both sides (booking, online station) will be updated.
//! \pre Can be used only if the stored data in this list are online ATC stations
int syncronizeWithBookedStation(CAtcStation &bookedAtcStation);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace