diff --git a/src/blackcore/db/databasereaderconfig.cpp b/src/blackcore/db/databasereaderconfig.cpp index cca3c6e61..844d36b29 100644 --- a/src/blackcore/db/databasereaderconfig.cpp +++ b/src/blackcore/db/databasereaderconfig.cpp @@ -18,6 +18,7 @@ using namespace BlackMisc::Network; using namespace BlackMisc::PhysicalQuantities; BLACK_DEFINE_VALUEOBJECT_MIXINS(BlackCore::Db, CDatabaseReaderConfig) +BLACK_DEFINE_SEQUENCE_MIXINS(BlackCore::Db, CDatabaseReaderConfig, CDatabaseReaderConfigList) namespace BlackCore::Db { diff --git a/src/blackcore/db/databasereaderconfig.h b/src/blackcore/db/databasereaderconfig.h index b827925a4..e0afbb34f 100644 --- a/src/blackcore/db/databasereaderconfig.h +++ b/src/blackcore/db/databasereaderconfig.h @@ -87,7 +87,12 @@ namespace BlackCore::Db BLACK_METAMEMBER(retrievalMode), BLACK_METAMEMBER(cacheLifetime)); }; +} +BLACK_DECLARE_SEQUENCE_MIXINS(BlackCore::Db, CDatabaseReaderConfig, CDatabaseReaderConfigList) + +namespace BlackCore::Db +{ //! Value object encapsulating a list of reader configs. class BLACKCORE_EXPORT CDatabaseReaderConfigList : public BlackMisc::CSequence, diff --git a/src/blackmisc/applicationinfolist.cpp b/src/blackmisc/applicationinfolist.cpp index 2001464f5..d565a192f 100644 --- a/src/blackmisc/applicationinfolist.cpp +++ b/src/blackmisc/applicationinfolist.cpp @@ -14,6 +14,8 @@ using namespace BlackConfig; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc, CApplicationInfo, CApplicationInfoList) + namespace BlackMisc { CApplicationInfoList::CApplicationInfoList() {} diff --git a/src/blackmisc/applicationinfolist.h b/src/blackmisc/applicationinfolist.h index f912315e9..087efa24f 100644 --- a/src/blackmisc/applicationinfolist.h +++ b/src/blackmisc/applicationinfolist.h @@ -15,6 +15,8 @@ #include "blackmisc/sequence.h" #include "blackmisc/collection.h" +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc, CApplicationInfo, CApplicationInfoList) + namespace BlackMisc { /*! diff --git a/src/blackmisc/audio/audiodeviceinfolist.cpp b/src/blackmisc/audio/audiodeviceinfolist.cpp index f082957c3..044d4e4c7 100644 --- a/src/blackmisc/audio/audiodeviceinfolist.cpp +++ b/src/blackmisc/audio/audiodeviceinfolist.cpp @@ -17,6 +17,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Audio, CAudioDeviceInfo, CAudioDeviceInfoList) + namespace BlackMisc::Audio { CAudioDeviceInfoList::CAudioDeviceInfoList() { } diff --git a/src/blackmisc/audio/audiodeviceinfolist.h b/src/blackmisc/audio/audiodeviceinfolist.h index 4676e861c..f8f0d17bc 100644 --- a/src/blackmisc/audio/audiodeviceinfolist.h +++ b/src/blackmisc/audio/audiodeviceinfolist.h @@ -21,6 +21,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Audio, CAudioDeviceInfo, CAudioDeviceInfoList) + namespace BlackMisc::Audio { //! Value object encapsulating a list of audio devices. diff --git a/src/blackmisc/aviation/aircraftcategorylist.cpp b/src/blackmisc/aviation/aircraftcategorylist.cpp index 410dad9b3..dd394149e 100644 --- a/src/blackmisc/aviation/aircraftcategorylist.cpp +++ b/src/blackmisc/aviation/aircraftcategorylist.cpp @@ -15,6 +15,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAircraftCategory, CAircraftCategoryList) + namespace BlackMisc::Aviation { CAircraftCategoryList::CAircraftCategoryList() diff --git a/src/blackmisc/aviation/aircraftcategorylist.h b/src/blackmisc/aviation/aircraftcategorylist.h index 256b62227..ffece947c 100644 --- a/src/blackmisc/aviation/aircraftcategorylist.h +++ b/src/blackmisc/aviation/aircraftcategorylist.h @@ -23,6 +23,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAircraftCategory, CAircraftCategoryList) + namespace BlackMisc::Aviation { //! Value object encapsulating a list of ICAO codes. diff --git a/src/blackmisc/aviation/aircraftenginelist.cpp b/src/blackmisc/aviation/aircraftenginelist.cpp index 0fc2096c6..606c72c00 100644 --- a/src/blackmisc/aviation/aircraftenginelist.cpp +++ b/src/blackmisc/aviation/aircraftenginelist.cpp @@ -13,6 +13,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAircraftEngine, CAircraftEngineList) + namespace BlackMisc::Aviation { CAircraftEngineList::CAircraftEngineList(std::initializer_list enginesOnOff) diff --git a/src/blackmisc/aviation/aircraftenginelist.h b/src/blackmisc/aviation/aircraftenginelist.h index 342b84c6e..7edba51e7 100644 --- a/src/blackmisc/aviation/aircraftenginelist.h +++ b/src/blackmisc/aviation/aircraftenginelist.h @@ -23,6 +23,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAircraftEngine, CAircraftEngineList) + namespace BlackMisc::Aviation { //! Value object encapsulating a list of aircraft engines. diff --git a/src/blackmisc/aviation/aircrafticaocodelist.cpp b/src/blackmisc/aviation/aircrafticaocodelist.cpp index cceb7f961..0e90e5d61 100644 --- a/src/blackmisc/aviation/aircrafticaocodelist.cpp +++ b/src/blackmisc/aviation/aircrafticaocodelist.cpp @@ -15,6 +15,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAircraftIcaoCode, CAircraftIcaoCodeList) + namespace BlackMisc::Aviation { CAircraftIcaoCodeList::CAircraftIcaoCodeList() diff --git a/src/blackmisc/aviation/aircrafticaocodelist.h b/src/blackmisc/aviation/aircrafticaocodelist.h index b82d7f6d2..bdb6d09a3 100644 --- a/src/blackmisc/aviation/aircrafticaocodelist.h +++ b/src/blackmisc/aviation/aircrafticaocodelist.h @@ -22,6 +22,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAircraftIcaoCode, CAircraftIcaoCodeList) + namespace BlackMisc::Aviation { class CAircraftCategoryList; diff --git a/src/blackmisc/aviation/aircraftpartslist.cpp b/src/blackmisc/aviation/aircraftpartslist.cpp index f7223ef0c..a47c81f4e 100644 --- a/src/blackmisc/aviation/aircraftpartslist.cpp +++ b/src/blackmisc/aviation/aircraftpartslist.cpp @@ -11,6 +11,8 @@ #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAircraftParts, CAircraftPartsList) + namespace BlackMisc::Aviation { CAircraftPartsList::CAircraftPartsList() { } diff --git a/src/blackmisc/aviation/aircraftpartslist.h b/src/blackmisc/aviation/aircraftpartslist.h index 8121ff706..a5b0983a1 100644 --- a/src/blackmisc/aviation/aircraftpartslist.h +++ b/src/blackmisc/aviation/aircraftpartslist.h @@ -20,6 +20,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAircraftParts, CAircraftPartsList) + namespace BlackMisc::Aviation { //! Value object encapsulating a list of aircraft parts. diff --git a/src/blackmisc/aviation/aircraftsituationchangelist.cpp b/src/blackmisc/aviation/aircraftsituationchangelist.cpp index 2cbd02028..77db22cd4 100644 --- a/src/blackmisc/aviation/aircraftsituationchangelist.cpp +++ b/src/blackmisc/aviation/aircraftsituationchangelist.cpp @@ -9,6 +9,8 @@ #include "blackmisc/aviation/aircraftsituationchangelist.h" #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAircraftSituationChange, CAircraftSituationChangeList) + namespace BlackMisc::Aviation { CAircraftSituationChangeList::CAircraftSituationChangeList() { } diff --git a/src/blackmisc/aviation/aircraftsituationchangelist.h b/src/blackmisc/aviation/aircraftsituationchangelist.h index b33b905ef..d063192da 100644 --- a/src/blackmisc/aviation/aircraftsituationchangelist.h +++ b/src/blackmisc/aviation/aircraftsituationchangelist.h @@ -17,6 +17,8 @@ #include "blackmisc/aviation/aircraftsituationchange.h" #include "blackmisc/timestampobjectlist.h" +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAircraftSituationChange, CAircraftSituationChangeList) + namespace BlackMisc::Aviation { //! Value object encapsulating a list of aircraft parts. diff --git a/src/blackmisc/aviation/aircraftsituationlist.cpp b/src/blackmisc/aviation/aircraftsituationlist.cpp index 69eb428c2..e52a75056 100644 --- a/src/blackmisc/aviation/aircraftsituationlist.cpp +++ b/src/blackmisc/aviation/aircraftsituationlist.cpp @@ -19,6 +19,8 @@ using namespace BlackMisc::Geo; using namespace BlackMisc::PhysicalQuantities; using namespace BlackMisc::Math; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAircraftSituation, CAircraftSituationList) + namespace BlackMisc::Aviation { CAircraftSituationList::CAircraftSituationList() diff --git a/src/blackmisc/aviation/aircraftsituationlist.h b/src/blackmisc/aviation/aircraftsituationlist.h index 5948ffd3d..e59236f55 100644 --- a/src/blackmisc/aviation/aircraftsituationlist.h +++ b/src/blackmisc/aviation/aircraftsituationlist.h @@ -25,6 +25,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAircraftSituation, CAircraftSituationList) + namespace BlackMisc { namespace Geo { class CElevationPlane; } diff --git a/src/blackmisc/aviation/airlineicaocodelist.cpp b/src/blackmisc/aviation/airlineicaocodelist.cpp index c0ef55597..5f53fcc00 100644 --- a/src/blackmisc/aviation/airlineicaocodelist.cpp +++ b/src/blackmisc/aviation/airlineicaocodelist.cpp @@ -16,6 +16,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAirlineIcaoCode, CAirlineIcaoCodeList) + namespace BlackMisc::Aviation { const QStringList &CAirlineIcaoCodeList::getLogCategories() diff --git a/src/blackmisc/aviation/airlineicaocodelist.h b/src/blackmisc/aviation/airlineicaocodelist.h index d390f0865..5d018fd01 100644 --- a/src/blackmisc/aviation/airlineicaocodelist.h +++ b/src/blackmisc/aviation/airlineicaocodelist.h @@ -24,6 +24,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAirlineIcaoCode, CAirlineIcaoCodeList) + namespace BlackMisc::Aviation { //! Value object encapsulating a list of ICAO codes. diff --git a/src/blackmisc/aviation/airportlist.cpp b/src/blackmisc/aviation/airportlist.cpp index 48d9a2e9b..3fd952885 100644 --- a/src/blackmisc/aviation/airportlist.cpp +++ b/src/blackmisc/aviation/airportlist.cpp @@ -16,6 +16,8 @@ using namespace BlackMisc::PhysicalQuantities; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAirport, CAirportList) + namespace BlackMisc::Aviation { CAirportList::CAirportList() { } diff --git a/src/blackmisc/aviation/airportlist.h b/src/blackmisc/aviation/airportlist.h index 3d83e2d58..f60832ed6 100644 --- a/src/blackmisc/aviation/airportlist.h +++ b/src/blackmisc/aviation/airportlist.h @@ -21,6 +21,8 @@ #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAirport, CAirportList) + namespace BlackMisc::Aviation { //! Value object for a list of airports. diff --git a/src/blackmisc/aviation/atcstationlist.cpp b/src/blackmisc/aviation/atcstationlist.cpp index 682077934..1b5d03b2e 100644 --- a/src/blackmisc/aviation/atcstationlist.cpp +++ b/src/blackmisc/aviation/atcstationlist.cpp @@ -21,6 +21,8 @@ using namespace BlackMisc::PhysicalQuantities; using namespace BlackMisc::Network; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAtcStation, CAtcStationList) + namespace BlackMisc::Aviation { CAtcStationList::CAtcStationList() { } diff --git a/src/blackmisc/aviation/atcstationlist.h b/src/blackmisc/aviation/atcstationlist.h index 17eb67e94..3fbb1c1f1 100644 --- a/src/blackmisc/aviation/atcstationlist.h +++ b/src/blackmisc/aviation/atcstationlist.h @@ -24,6 +24,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Aviation, CAtcStation, CAtcStationList) + namespace BlackMisc::Aviation { //! Value object for a list of ATC stations. diff --git a/src/blackmisc/aviation/callsignset.cpp b/src/blackmisc/aviation/callsignset.cpp index 276618daa..99b032fb8 100644 --- a/src/blackmisc/aviation/callsignset.cpp +++ b/src/blackmisc/aviation/callsignset.cpp @@ -14,6 +14,8 @@ #include #include +BLACK_DEFINE_COLLECTION_MIXINS(BlackMisc::Aviation, CCallsign, CCallsignSet) + namespace BlackMisc::Aviation { CCallsignSet::CCallsignSet() { } diff --git a/src/blackmisc/aviation/callsignset.h b/src/blackmisc/aviation/callsignset.h index 4bbd7e561..d71e763e6 100644 --- a/src/blackmisc/aviation/callsignset.h +++ b/src/blackmisc/aviation/callsignset.h @@ -21,12 +21,17 @@ #include #include +BLACK_DECLARE_COLLECTION_MIXINS(BlackMisc::Aviation, CCallsign, CCallsignSet) + namespace BlackMisc::Aviation { //! Value object for a set of callsigns. - class BLACKMISC_EXPORT CCallsignSet : public CCollection + class BLACKMISC_EXPORT CCallsignSet : + public CCollection, + public Mixin::MetaType { using CCollection::CCollection; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CCallsignSet) public: //! Default constructor diff --git a/src/blackmisc/aviation/flightplanlist.cpp b/src/blackmisc/aviation/flightplanlist.cpp index 90693fc0c..657ee836f 100644 --- a/src/blackmisc/aviation/flightplanlist.cpp +++ b/src/blackmisc/aviation/flightplanlist.cpp @@ -15,6 +15,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Aviation, CFlightPlan, CFlightPlanList) + namespace BlackMisc::Aviation { CFlightPlanList::CFlightPlanList() { } diff --git a/src/blackmisc/aviation/flightplanlist.h b/src/blackmisc/aviation/flightplanlist.h index 17f8b6c6d..48cc677eb 100644 --- a/src/blackmisc/aviation/flightplanlist.h +++ b/src/blackmisc/aviation/flightplanlist.h @@ -18,6 +18,8 @@ #include "blackmisc/sequence.h" #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Aviation, CFlightPlan, CFlightPlanList) + namespace BlackMisc::Aviation { //! Value object for a list of flight plans. diff --git a/src/blackmisc/aviation/liverylist.cpp b/src/blackmisc/aviation/liverylist.cpp index 42e8ced29..7037643fb 100644 --- a/src/blackmisc/aviation/liverylist.cpp +++ b/src/blackmisc/aviation/liverylist.cpp @@ -15,6 +15,8 @@ using namespace BlackMisc::Aviation; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Aviation, CLivery, CLiveryList) + namespace BlackMisc::Aviation { CLiveryList::CLiveryList() { } diff --git a/src/blackmisc/aviation/liverylist.h b/src/blackmisc/aviation/liverylist.h index 21246439b..aabd377ef 100644 --- a/src/blackmisc/aviation/liverylist.h +++ b/src/blackmisc/aviation/liverylist.h @@ -22,6 +22,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Aviation, CLivery, CLiveryList) + namespace BlackMisc::Aviation { //! Value object for a list of airports. diff --git a/src/blackmisc/collection.h b/src/blackmisc/collection.h index 1ef8d75fc..f302293bf 100644 --- a/src/blackmisc/collection.h +++ b/src/blackmisc/collection.h @@ -22,6 +22,46 @@ #include #include +//! \cond +#define BLACK_TEMPLATE_COLLECTION_MIXINS(NS, T, Set, Extern) \ + namespace NS { class Set; } \ + namespace BlackMisc::Private \ + { \ + Extern template struct CValueObjectMetaInfo; \ + Extern template struct CValueObjectMetaInfo>; \ + Extern template struct MetaTypeHelper; \ + Extern template struct MetaTypeHelper>; \ + } \ + namespace BlackMisc::Mixin \ + { \ + Extern template class MetaType; \ + Extern template class MetaType>; \ + Extern template class DBusOperators>; \ + Extern template class JsonOperators>; \ + Extern template class String>; \ + Extern template class DataStreamOperators>; \ + Extern template class Icon>; \ + } +//! \endcond + +/*! + * \def BLACK_DECLARE_COLLECTION_MIXINS + * Explicit template declaration of mixins for a CCollection subclass + * to be placed near the top of the header that defines the class + */ + +/*! + * \def BLACK_DEFINE_COLLECTION_MIXINS + * Explicit template definition of mixins for a CCollection subclass + */ +#if defined(Q_OS_WIN) && defined(Q_CC_GNU) +# define BLACK_DECLARE_COLLECTION_MIXINS(Namespace, T, Set) +# define BLACK_DEFINE_COLLECTION_MIXINS(Namespace, T, Set) +#else +# define BLACK_DECLARE_COLLECTION_MIXINS(Namespace, T, Set) BLACK_TEMPLATE_COLLECTION_MIXINS(Namespace, T, Set, extern) +# define BLACK_DEFINE_COLLECTION_MIXINS(Namespace, T, Set) BLACK_TEMPLATE_COLLECTION_MIXINS(Namespace, T, Set, ) +#endif + namespace BlackMisc { diff --git a/src/blackmisc/countrylist.cpp b/src/blackmisc/countrylist.cpp index 1dbfb1678..f6254fdc5 100644 --- a/src/blackmisc/countrylist.cpp +++ b/src/blackmisc/countrylist.cpp @@ -14,6 +14,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc, CCountry, CCountryList) + namespace BlackMisc { CCountryList::CCountryList() {} diff --git a/src/blackmisc/countrylist.h b/src/blackmisc/countrylist.h index 934ff8f4d..1c09afff9 100644 --- a/src/blackmisc/countrylist.h +++ b/src/blackmisc/countrylist.h @@ -23,6 +23,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc, CCountry, CCountryList) + namespace BlackMisc { //! Value object encapsulating a list of countries. diff --git a/src/blackmisc/db/artifactlist.cpp b/src/blackmisc/db/artifactlist.cpp index 7dd8cb3aa..7bc7722a2 100644 --- a/src/blackmisc/db/artifactlist.cpp +++ b/src/blackmisc/db/artifactlist.cpp @@ -11,6 +11,8 @@ using namespace BlackMisc::Network; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Db, CArtifact, CArtifactList) + namespace BlackMisc::Db { CArtifactList::CArtifactList() { } diff --git a/src/blackmisc/db/artifactlist.h b/src/blackmisc/db/artifactlist.h index 6226b6295..efe572e7d 100644 --- a/src/blackmisc/db/artifactlist.h +++ b/src/blackmisc/db/artifactlist.h @@ -22,6 +22,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Db, CArtifact, CArtifactList) + namespace BlackMisc::Db { //! Multiple artifacts diff --git a/src/blackmisc/db/dbinfolist.cpp b/src/blackmisc/db/dbinfolist.cpp index 389e827ea..86f68b3ee 100644 --- a/src/blackmisc/db/dbinfolist.cpp +++ b/src/blackmisc/db/dbinfolist.cpp @@ -10,6 +10,8 @@ using namespace BlackMisc::Network; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Db, CDbInfo, CDbInfoList) + namespace BlackMisc::Db { CDbInfoList::CDbInfoList() { } diff --git a/src/blackmisc/db/dbinfolist.h b/src/blackmisc/db/dbinfolist.h index bd8acf859..87035980c 100644 --- a/src/blackmisc/db/dbinfolist.h +++ b/src/blackmisc/db/dbinfolist.h @@ -20,6 +20,8 @@ #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Db, CDbInfo, CDbInfoList) + namespace BlackMisc::Db { //! Value object encapsulating a list of info objects. diff --git a/src/blackmisc/db/distributionlist.cpp b/src/blackmisc/db/distributionlist.cpp index 2fa5bd713..38d8fbc8b 100644 --- a/src/blackmisc/db/distributionlist.cpp +++ b/src/blackmisc/db/distributionlist.cpp @@ -9,6 +9,8 @@ #include "blackmisc/db/distributionlist.h" #include "blackmisc/stringutils.h" +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Db, CDistribution, CDistributionList) + namespace BlackMisc::Db { CDistributionList::CDistributionList() { } diff --git a/src/blackmisc/db/distributionlist.h b/src/blackmisc/db/distributionlist.h index 0fba7e2a2..220da391b 100644 --- a/src/blackmisc/db/distributionlist.h +++ b/src/blackmisc/db/distributionlist.h @@ -20,6 +20,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Db, CDistribution, CDistributionList) + namespace BlackMisc::Db { //! Multiple distributions for different channels: diff --git a/src/blackmisc/geo/coordinategeodeticlist.cpp b/src/blackmisc/geo/coordinategeodeticlist.cpp index bb8da60ea..abd6145c8 100644 --- a/src/blackmisc/geo/coordinategeodeticlist.cpp +++ b/src/blackmisc/geo/coordinategeodeticlist.cpp @@ -16,6 +16,8 @@ using namespace BlackMisc::Math; using namespace BlackMisc::PhysicalQuantities; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Geo, CCoordinateGeodetic, CCoordinateGeodeticList) + namespace BlackMisc::Geo { CCoordinateGeodeticList::CCoordinateGeodeticList() diff --git a/src/blackmisc/geo/coordinategeodeticlist.h b/src/blackmisc/geo/coordinategeodeticlist.h index 3e3d25ed5..e3343dfc4 100644 --- a/src/blackmisc/geo/coordinategeodeticlist.h +++ b/src/blackmisc/geo/coordinategeodeticlist.h @@ -24,6 +24,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Geo, CCoordinateGeodetic, CCoordinateGeodeticList) + namespace BlackMisc::Geo { //! Value object encapsulating a list of coordinates. diff --git a/src/blackmisc/iconlist.cpp b/src/blackmisc/iconlist.cpp index 11433dade..ce1428def 100644 --- a/src/blackmisc/iconlist.cpp +++ b/src/blackmisc/iconlist.cpp @@ -12,6 +12,8 @@ #include "blackmisc/range.h" #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc, CIcon, CIconList) + namespace BlackMisc { CIconList::CIconList(const CSequence &other) : diff --git a/src/blackmisc/iconlist.h b/src/blackmisc/iconlist.h index 7bbe88b63..f25bb8c0a 100644 --- a/src/blackmisc/iconlist.h +++ b/src/blackmisc/iconlist.h @@ -24,14 +24,19 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc, CIcon, CIconList) + namespace BlackMisc { /*! * Icon list (swift standard icons) */ - class BLACKMISC_EXPORT CIconList : public CSequence + class BLACKMISC_EXPORT CIconList : + public CSequence, + public Mixin::MetaType { using CSequence::CSequence; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CIconList) public: //! Constructor diff --git a/src/blackmisc/identifierlist.cpp b/src/blackmisc/identifierlist.cpp index 8af919809..61456f3ed 100644 --- a/src/blackmisc/identifierlist.cpp +++ b/src/blackmisc/identifierlist.cpp @@ -12,6 +12,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc, CIdentifier, CIdentifierList) + namespace BlackMisc { CIdentifierList::CIdentifierList() { } diff --git a/src/blackmisc/identifierlist.h b/src/blackmisc/identifierlist.h index 5b5727fb9..06b522bcd 100644 --- a/src/blackmisc/identifierlist.h +++ b/src/blackmisc/identifierlist.h @@ -17,6 +17,8 @@ #include "blackmisc/blackmiscexport.h" #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc, CIdentifier, CIdentifierList) + namespace BlackMisc { /*! diff --git a/src/blackmisc/identifierset.cpp b/src/blackmisc/identifierset.cpp index ac869304f..7b4b6923c 100644 --- a/src/blackmisc/identifierset.cpp +++ b/src/blackmisc/identifierset.cpp @@ -11,6 +11,8 @@ #include #include +BLACK_DEFINE_COLLECTION_MIXINS(BlackMisc, CIdentifier, CIdentifierSet) + namespace BlackMisc { CIdentifierSet::CIdentifierSet() { } diff --git a/src/blackmisc/identifierset.h b/src/blackmisc/identifierset.h index 1af2cd247..fba05dc1e 100644 --- a/src/blackmisc/identifierset.h +++ b/src/blackmisc/identifierset.h @@ -16,14 +16,19 @@ #include "blackmisc/blackmiscexport.h" #include +BLACK_DECLARE_COLLECTION_MIXINS(BlackMisc, CIdentifier, CIdentifierSet) + namespace BlackMisc { /*! * Value object encapsulating a set of object identifiers */ - class BLACKMISC_EXPORT CIdentifierSet : public CCollection + class BLACKMISC_EXPORT CIdentifierSet : + public CCollection, + public Mixin::MetaType { using CCollection::CCollection; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CIdentifierSet) public: //! Default constructor. diff --git a/src/blackmisc/input/actionhotkeylist.cpp b/src/blackmisc/input/actionhotkeylist.cpp index 6e76a4a01..f90063672 100644 --- a/src/blackmisc/input/actionhotkeylist.cpp +++ b/src/blackmisc/input/actionhotkeylist.cpp @@ -9,6 +9,8 @@ #include "blackmisc/input/actionhotkeylist.h" #include "blackmisc/input/hotkeycombination.h" +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Input, CActionHotkey, CActionHotkeyList) + namespace BlackMisc::Input { CActionHotkeyList::CActionHotkeyList(const CSequence &baseClass) : diff --git a/src/blackmisc/input/actionhotkeylist.h b/src/blackmisc/input/actionhotkeylist.h index 7c32bd00c..afffd3e24 100644 --- a/src/blackmisc/input/actionhotkeylist.h +++ b/src/blackmisc/input/actionhotkeylist.h @@ -21,6 +21,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Input, CActionHotkey, CActionHotkeyList) + namespace BlackMisc::Input { //! Value object encapsulating a list of hotkeys diff --git a/src/blackmisc/input/joystickbuttonlist.cpp b/src/blackmisc/input/joystickbuttonlist.cpp index 02016daf0..1056e0b7f 100644 --- a/src/blackmisc/input/joystickbuttonlist.cpp +++ b/src/blackmisc/input/joystickbuttonlist.cpp @@ -8,6 +8,8 @@ #include "blackmisc/input/joystickbuttonlist.h" +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Input, CJoystickButton, CJoystickButtonList) + namespace BlackMisc::Input { CJoystickButtonList::CJoystickButtonList(const CSequence &baseClass) : diff --git a/src/blackmisc/input/joystickbuttonlist.h b/src/blackmisc/input/joystickbuttonlist.h index 9c8b8fa4b..b11d41fd6 100644 --- a/src/blackmisc/input/joystickbuttonlist.h +++ b/src/blackmisc/input/joystickbuttonlist.h @@ -20,6 +20,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Input, CJoystickButton, CJoystickButtonList) + namespace BlackMisc::Input { //! Value object encapsulating a list of joystick buttons. diff --git a/src/blackmisc/input/keyboardkeylist.cpp b/src/blackmisc/input/keyboardkeylist.cpp index b6086bdd5..6acb5233a 100644 --- a/src/blackmisc/input/keyboardkeylist.cpp +++ b/src/blackmisc/input/keyboardkeylist.cpp @@ -9,6 +9,8 @@ #include "blackmisc/input/keyboardkeylist.h" #include "blackmisc/input/keycodes.h" +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Input, CKeyboardKey, CKeyboardKeyList) + namespace BlackMisc::Input { CKeyboardKeyList::CKeyboardKeyList() { } diff --git a/src/blackmisc/input/keyboardkeylist.h b/src/blackmisc/input/keyboardkeylist.h index ebf55014f..5236d9f21 100644 --- a/src/blackmisc/input/keyboardkeylist.h +++ b/src/blackmisc/input/keyboardkeylist.h @@ -21,6 +21,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Input, CKeyboardKey, CKeyboardKeyList) + namespace BlackMisc::Input { //! Value object encapsulating a list of keyboard keys. diff --git a/src/blackmisc/logcategorylist.cpp b/src/blackmisc/logcategorylist.cpp index 0681f4a8d..046fd6a12 100644 --- a/src/blackmisc/logcategorylist.cpp +++ b/src/blackmisc/logcategorylist.cpp @@ -18,6 +18,8 @@ struct QMetaObject; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc, CLogCategory, CLogCategoryList) + namespace BlackMisc { void CLogCategoryList::appendCategoriesFromMetaObject(const QMetaObject &metaObject, const QMetaObject &super) diff --git a/src/blackmisc/logcategorylist.h b/src/blackmisc/logcategorylist.h index 90065815c..d864d04cf 100644 --- a/src/blackmisc/logcategorylist.h +++ b/src/blackmisc/logcategorylist.h @@ -29,14 +29,19 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc, CLogCategory, CLogCategoryList) + namespace BlackMisc { /*! * A sequence of log categories. */ - class BLACKMISC_EXPORT CLogCategoryList : public CSequence + class BLACKMISC_EXPORT CLogCategoryList : + public CSequence, + public Mixin::MetaType { using CSequence::CSequence; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CLogCategoryList) public: //! Empty constructor. diff --git a/src/blackmisc/namevariantpairlist.cpp b/src/blackmisc/namevariantpairlist.cpp index e22c56628..eb773fdac 100644 --- a/src/blackmisc/namevariantpairlist.cpp +++ b/src/blackmisc/namevariantpairlist.cpp @@ -11,6 +11,8 @@ #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc, CNameVariantPair, CNameVariantPairList) + namespace BlackMisc { CNameVariantPairList::CNameVariantPairList() { } diff --git a/src/blackmisc/namevariantpairlist.h b/src/blackmisc/namevariantpairlist.h index 916a9a4af..7ec1ef852 100644 --- a/src/blackmisc/namevariantpairlist.h +++ b/src/blackmisc/namevariantpairlist.h @@ -20,6 +20,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc, CNameVariantPair, CNameVariantPairList) + namespace BlackMisc { //! Value object encapsulating a list of name/variant pairs diff --git a/src/blackmisc/network/clientlist.cpp b/src/blackmisc/network/clientlist.cpp index dcb074a2d..aa4e3e5e0 100644 --- a/src/blackmisc/network/clientlist.cpp +++ b/src/blackmisc/network/clientlist.cpp @@ -10,6 +10,8 @@ using namespace BlackMisc::Aviation; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Network, CClient, CClientList) + namespace BlackMisc::Network { CClientList::CClientList() { } diff --git a/src/blackmisc/network/clientlist.h b/src/blackmisc/network/clientlist.h index 74a9401ae..0b47d7f86 100644 --- a/src/blackmisc/network/clientlist.h +++ b/src/blackmisc/network/clientlist.h @@ -19,6 +19,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Network, CClient, CClientList) + namespace BlackMisc::Network { //! Value object encapsulating a list of voice rooms. diff --git a/src/blackmisc/network/ecosystemlist.cpp b/src/blackmisc/network/ecosystemlist.cpp index 59de6df5c..0d6d2295a 100644 --- a/src/blackmisc/network/ecosystemlist.cpp +++ b/src/blackmisc/network/ecosystemlist.cpp @@ -8,6 +8,8 @@ #include "blackmisc/network/ecosystemlist.h" +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Network, CEcosystem, CEcosystemList) + namespace BlackMisc::Network { CEcosystemList::CEcosystemList() { } diff --git a/src/blackmisc/network/ecosystemlist.h b/src/blackmisc/network/ecosystemlist.h index 25428114f..05bf8fc51 100644 --- a/src/blackmisc/network/ecosystemlist.h +++ b/src/blackmisc/network/ecosystemlist.h @@ -18,6 +18,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Network, CEcosystem, CEcosystemList) + namespace BlackMisc::Network { //! Value object encapsulating a list of voice rooms. diff --git a/src/blackmisc/network/rawfsdmessagelist.cpp b/src/blackmisc/network/rawfsdmessagelist.cpp index 4f2d6242f..450fe9a5a 100644 --- a/src/blackmisc/network/rawfsdmessagelist.cpp +++ b/src/blackmisc/network/rawfsdmessagelist.cpp @@ -8,6 +8,8 @@ #include "blackmisc/network/rawfsdmessagelist.h" +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Network, CRawFsdMessage, CRawFsdMessageList) + namespace BlackMisc::Network { CRawFsdMessageList::CRawFsdMessageList() { } diff --git a/src/blackmisc/network/rawfsdmessagelist.h b/src/blackmisc/network/rawfsdmessagelist.h index 2ffe9cac7..bd9ba21cf 100644 --- a/src/blackmisc/network/rawfsdmessagelist.h +++ b/src/blackmisc/network/rawfsdmessagelist.h @@ -20,6 +20,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Network, CRawFsdMessage, CRawFsdMessageList) + namespace BlackMisc::Network { //! Value object encapsulating a list raw FSD messages. diff --git a/src/blackmisc/network/remotefilelist.cpp b/src/blackmisc/network/remotefilelist.cpp index 63a26ea82..3607fd816 100644 --- a/src/blackmisc/network/remotefilelist.cpp +++ b/src/blackmisc/network/remotefilelist.cpp @@ -14,6 +14,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Network, CRemoteFile, CRemoteFileList) + namespace BlackMisc::Network { CRemoteFileList::CRemoteFileList() { } diff --git a/src/blackmisc/network/remotefilelist.h b/src/blackmisc/network/remotefilelist.h index ea5536ae9..a63153655 100644 --- a/src/blackmisc/network/remotefilelist.h +++ b/src/blackmisc/network/remotefilelist.h @@ -21,6 +21,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Network, CRemoteFile, CRemoteFileList) + namespace BlackMisc::Network { //! Value object encapsulating a list of remote files. diff --git a/src/blackmisc/network/rolelist.cpp b/src/blackmisc/network/rolelist.cpp index fa3a6a562..a4648e3ba 100644 --- a/src/blackmisc/network/rolelist.cpp +++ b/src/blackmisc/network/rolelist.cpp @@ -13,6 +13,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Network, CRole, CRoleList) + namespace BlackMisc::Network { CRoleList::CRoleList() { } diff --git a/src/blackmisc/network/rolelist.h b/src/blackmisc/network/rolelist.h index 91fa65745..ed92896f3 100644 --- a/src/blackmisc/network/rolelist.h +++ b/src/blackmisc/network/rolelist.h @@ -21,6 +21,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Network, CRole, CRoleList) + namespace BlackMisc::Network { class CRole; diff --git a/src/blackmisc/network/serverlist.cpp b/src/blackmisc/network/serverlist.cpp index ba880a175..3da0f5aa9 100644 --- a/src/blackmisc/network/serverlist.cpp +++ b/src/blackmisc/network/serverlist.cpp @@ -9,6 +9,8 @@ #include "blackmisc/network/serverlist.h" #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Network, CServer, CServerList) + namespace BlackMisc::Network { CServerList::CServerList() { } diff --git a/src/blackmisc/network/serverlist.h b/src/blackmisc/network/serverlist.h index 9301ea1fa..f55f93c36 100644 --- a/src/blackmisc/network/serverlist.h +++ b/src/blackmisc/network/serverlist.h @@ -19,6 +19,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Network, CServer, CServerList) + namespace BlackMisc::Network { //! Value object encapsulating a list of servers. diff --git a/src/blackmisc/network/textmessagelist.cpp b/src/blackmisc/network/textmessagelist.cpp index 067fcb647..bf371b758 100644 --- a/src/blackmisc/network/textmessagelist.cpp +++ b/src/blackmisc/network/textmessagelist.cpp @@ -18,6 +18,8 @@ using namespace BlackMisc::PhysicalQuantities; using namespace BlackMisc::Aviation; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Network, CTextMessage, CTextMessageList) + namespace BlackMisc::Network { diff --git a/src/blackmisc/network/textmessagelist.h b/src/blackmisc/network/textmessagelist.h index 20fc0edfa..220b89a03 100644 --- a/src/blackmisc/network/textmessagelist.h +++ b/src/blackmisc/network/textmessagelist.h @@ -23,6 +23,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Network, CTextMessage, CTextMessageList) + namespace BlackMisc::Network { class CTextMessage; diff --git a/src/blackmisc/network/urllist.cpp b/src/blackmisc/network/urllist.cpp index 57abc920b..6f4cbb963 100644 --- a/src/blackmisc/network/urllist.cpp +++ b/src/blackmisc/network/urllist.cpp @@ -16,6 +16,8 @@ using namespace BlackMisc::Math; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Network, CUrl, CUrlList) + namespace BlackMisc::Network { CUrlList::CUrlList() { } diff --git a/src/blackmisc/network/urllist.h b/src/blackmisc/network/urllist.h index 0b4c87f16..cbe83b29b 100644 --- a/src/blackmisc/network/urllist.h +++ b/src/blackmisc/network/urllist.h @@ -20,6 +20,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Network, CUrl, CUrlList) + namespace BlackMisc::Network { //! Value object encapsulating a list of URLs. diff --git a/src/blackmisc/network/urlloglist.cpp b/src/blackmisc/network/urlloglist.cpp index 0844ea0f9..0b950f44d 100644 --- a/src/blackmisc/network/urlloglist.cpp +++ b/src/blackmisc/network/urlloglist.cpp @@ -8,6 +8,8 @@ #include "blackmisc/network/urlloglist.h" +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Network, CUrlLog, CUrlLogList) + namespace BlackMisc::Network { CUrlLogList::CUrlLogList() { } diff --git a/src/blackmisc/network/urlloglist.h b/src/blackmisc/network/urlloglist.h index 4cdb83fcd..cc9c9489c 100644 --- a/src/blackmisc/network/urlloglist.h +++ b/src/blackmisc/network/urlloglist.h @@ -18,6 +18,8 @@ #include "blackmisc/sequence.h" #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Network, CUrlLog, CUrlLogList) + namespace BlackMisc::Network { //! Value object encapsulating a list of voice rooms. diff --git a/src/blackmisc/network/userlist.cpp b/src/blackmisc/network/userlist.cpp index ec3e8fc5b..543a3f1ed 100644 --- a/src/blackmisc/network/userlist.cpp +++ b/src/blackmisc/network/userlist.cpp @@ -11,6 +11,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Network, CUser, CUserList) + namespace BlackMisc::Network { CUserList::CUserList() { } diff --git a/src/blackmisc/network/userlist.h b/src/blackmisc/network/userlist.h index c1247978a..837c63a84 100644 --- a/src/blackmisc/network/userlist.h +++ b/src/blackmisc/network/userlist.h @@ -19,6 +19,8 @@ #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Network, CUser, CUserList) + namespace BlackMisc::Network { //! Value object encapsulating a list of voice rooms. diff --git a/src/blackmisc/platformset.cpp b/src/blackmisc/platformset.cpp index b38b13ba1..1532eaa96 100644 --- a/src/blackmisc/platformset.cpp +++ b/src/blackmisc/platformset.cpp @@ -16,6 +16,8 @@ #include #include +BLACK_DEFINE_COLLECTION_MIXINS(BlackMisc, CPlatform, CPlatformSet) + namespace BlackMisc { CPlatformSet::CPlatformSet() { } diff --git a/src/blackmisc/platformset.h b/src/blackmisc/platformset.h index 54cdbe8e6..56a62d4f4 100644 --- a/src/blackmisc/platformset.h +++ b/src/blackmisc/platformset.h @@ -19,12 +19,17 @@ #include #include +BLACK_DECLARE_COLLECTION_MIXINS(BlackMisc, CPlatform, CPlatformSet) + namespace BlackMisc { //! Value object for a set of platforms. - class BLACKMISC_EXPORT CPlatformSet : public CCollection + class BLACKMISC_EXPORT CPlatformSet : + public CCollection, + public Mixin::MetaType { using CCollection::CCollection; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CPlatformSet) public: //! Default constructor. diff --git a/src/blackmisc/propertyindexlist.cpp b/src/blackmisc/propertyindexlist.cpp index ec930528c..3872f058f 100644 --- a/src/blackmisc/propertyindexlist.cpp +++ b/src/blackmisc/propertyindexlist.cpp @@ -11,6 +11,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc, CPropertyIndex, CPropertyIndexList) + namespace BlackMisc { CPropertyIndexList::CPropertyIndexList() { } diff --git a/src/blackmisc/propertyindexlist.h b/src/blackmisc/propertyindexlist.h index 809de76f0..371475c04 100644 --- a/src/blackmisc/propertyindexlist.h +++ b/src/blackmisc/propertyindexlist.h @@ -18,6 +18,8 @@ #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc, CPropertyIndex, CPropertyIndexList) + namespace BlackMisc { //! Value object encapsulating a list of property indexes. diff --git a/src/blackmisc/sequence.h b/src/blackmisc/sequence.h index 73bc7dc63..fe5d0dd18 100644 --- a/src/blackmisc/sequence.h +++ b/src/blackmisc/sequence.h @@ -21,6 +21,46 @@ #include #include +//! \cond +#define BLACK_TEMPLATE_SEQUENCE_MIXINS(NS, T, List, Extern) \ + namespace NS { class List; } \ + namespace BlackMisc::Private \ + { \ + Extern template struct CValueObjectMetaInfo; \ + Extern template struct CValueObjectMetaInfo>; \ + Extern template struct MetaTypeHelper; \ + Extern template struct MetaTypeHelper>; \ + } \ + namespace BlackMisc::Mixin \ + { \ + Extern template class MetaType; \ + Extern template class MetaType>; \ + Extern template class DBusOperators>; \ + Extern template class JsonOperators>; \ + Extern template class String>; \ + Extern template class DataStreamOperators>; \ + Extern template class Icon>; \ + } +//! \endcond + +/*! + * \def BLACK_DECLARE_SEQUENCE_MIXINS + * Explicit template declaration of mixins for a CSequence subclass + * to be placed near the top of the header that defines the class + */ + +/*! + * \def BLACK_DEFINE_SEQUENCE_MIXINS + * Explicit template definition of mixins for a CSequence subclass + */ +#if defined(Q_OS_WIN) && defined(Q_CC_GNU) +# define BLACK_DECLARE_SEQUENCE_MIXINS(Namespace, T, List) +# define BLACK_DEFINE_SEQUENCE_MIXINS(Namespace, T, List) +#else +# define BLACK_DECLARE_SEQUENCE_MIXINS(Namespace, T, List) BLACK_TEMPLATE_SEQUENCE_MIXINS(Namespace, T, List, extern) +# define BLACK_DEFINE_SEQUENCE_MIXINS(Namespace, T, List) BLACK_TEMPLATE_SEQUENCE_MIXINS(Namespace, T, List, ) +#endif + namespace BlackMisc { /*! diff --git a/src/blackmisc/simulation/aircraftmodellist.cpp b/src/blackmisc/simulation/aircraftmodellist.cpp index 73d8b4ef9..5d8dca81a 100644 --- a/src/blackmisc/simulation/aircraftmodellist.cpp +++ b/src/blackmisc/simulation/aircraftmodellist.cpp @@ -35,6 +35,8 @@ using namespace BlackMisc::Math; using namespace BlackMisc::Aviation; using namespace BlackMisc::PhysicalQuantities; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Simulation, CAircraftModel, CAircraftModelList) + namespace BlackMisc::Simulation { CAircraftModelList::CAircraftModelList() { } diff --git a/src/blackmisc/simulation/aircraftmodellist.h b/src/blackmisc/simulation/aircraftmodellist.h index a10dbdd2a..46c3c9326 100644 --- a/src/blackmisc/simulation/aircraftmodellist.h +++ b/src/blackmisc/simulation/aircraftmodellist.h @@ -37,6 +37,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Simulation, CAircraftModel, CAircraftModelList) + namespace BlackMisc { namespace Aviation diff --git a/src/blackmisc/simulation/distributorlist.cpp b/src/blackmisc/simulation/distributorlist.cpp index 38c1adf42..ae75fdf85 100644 --- a/src/blackmisc/simulation/distributorlist.cpp +++ b/src/blackmisc/simulation/distributorlist.cpp @@ -12,6 +12,8 @@ #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Simulation, CDistributor, CDistributorList) + namespace BlackMisc::Simulation { CDistributorList::CDistributorList() { } diff --git a/src/blackmisc/simulation/distributorlist.h b/src/blackmisc/simulation/distributorlist.h index aa8f6087e..49abe76c7 100644 --- a/src/blackmisc/simulation/distributorlist.h +++ b/src/blackmisc/simulation/distributorlist.h @@ -22,6 +22,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Simulation, CDistributor, CDistributorList) + namespace BlackMisc::Simulation { class CAircraftModel; diff --git a/src/blackmisc/simulation/fscommon/aircraftcfgentrieslist.cpp b/src/blackmisc/simulation/fscommon/aircraftcfgentrieslist.cpp index 958f82488..d204dd2aa 100644 --- a/src/blackmisc/simulation/fscommon/aircraftcfgentrieslist.cpp +++ b/src/blackmisc/simulation/fscommon/aircraftcfgentrieslist.cpp @@ -17,6 +17,8 @@ using namespace BlackMisc; using namespace BlackMisc::Simulation; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Simulation::FsCommon, CAircraftCfgEntries, CAircraftCfgEntriesList) + namespace BlackMisc::Simulation::FsCommon { bool CAircraftCfgEntriesList::containsModelWithTitle(const QString &title, Qt::CaseSensitivity caseSensitivity) diff --git a/src/blackmisc/simulation/fscommon/aircraftcfgentrieslist.h b/src/blackmisc/simulation/fscommon/aircraftcfgentrieslist.h index 61dd6f535..f7cc1588d 100644 --- a/src/blackmisc/simulation/fscommon/aircraftcfgentrieslist.h +++ b/src/blackmisc/simulation/fscommon/aircraftcfgentrieslist.h @@ -25,6 +25,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Simulation::FsCommon, CAircraftCfgEntries, CAircraftCfgEntriesList) + namespace BlackMisc::Simulation::FsCommon { //! Utility, providing FS aircraft.cfg entries diff --git a/src/blackmisc/simulation/fscommon/vpilotmodelruleset.cpp b/src/blackmisc/simulation/fscommon/vpilotmodelruleset.cpp index 7babecd54..81d5b3538 100644 --- a/src/blackmisc/simulation/fscommon/vpilotmodelruleset.cpp +++ b/src/blackmisc/simulation/fscommon/vpilotmodelruleset.cpp @@ -16,6 +16,8 @@ #include #include +BLACK_DEFINE_COLLECTION_MIXINS(BlackMisc::Simulation::FsCommon, CVPilotModelRule, CVPilotModelRuleSet) + namespace BlackMisc::Simulation::FsCommon { CVPilotModelRuleSet::CVPilotModelRuleSet(const CCollection &other) : diff --git a/src/blackmisc/simulation/fscommon/vpilotmodelruleset.h b/src/blackmisc/simulation/fscommon/vpilotmodelruleset.h index 6294e58bf..850c2fa5a 100644 --- a/src/blackmisc/simulation/fscommon/vpilotmodelruleset.h +++ b/src/blackmisc/simulation/fscommon/vpilotmodelruleset.h @@ -22,6 +22,8 @@ #include "blackmisc/simulation/aircraftmodellist.h" #include "blackmisc/simulation/fscommon/vpilotmodelrule.h" +BLACK_DECLARE_COLLECTION_MIXINS(BlackMisc::Simulation::FsCommon, CVPilotModelRule, CVPilotModelRuleSet) + namespace BlackMisc::Simulation::FsCommon { //! Value object reading a set of vPilot rules diff --git a/src/blackmisc/simulation/interpolationsetuplist.cpp b/src/blackmisc/simulation/interpolationsetuplist.cpp index ed023afa8..1a9688ae2 100644 --- a/src/blackmisc/simulation/interpolationsetuplist.cpp +++ b/src/blackmisc/simulation/interpolationsetuplist.cpp @@ -8,6 +8,8 @@ #include "blackmisc/simulation/interpolationsetuplist.h" +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Simulation, CInterpolationAndRenderingSetupPerCallsign, CInterpolationSetupList) + namespace BlackMisc::Simulation { CInterpolationSetupList::CInterpolationSetupList() { } diff --git a/src/blackmisc/simulation/interpolationsetuplist.h b/src/blackmisc/simulation/interpolationsetuplist.h index 45deca06f..d239a585d 100644 --- a/src/blackmisc/simulation/interpolationsetuplist.h +++ b/src/blackmisc/simulation/interpolationsetuplist.h @@ -17,6 +17,8 @@ #include "blackmisc/collection.h" #include "blackmisc/sequence.h" +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Simulation, CInterpolationAndRenderingSetupPerCallsign, CInterpolationSetupList) + namespace BlackMisc::Simulation { //! Value object encapsulating a list of setups. diff --git a/src/blackmisc/simulation/matchingstatistics.cpp b/src/blackmisc/simulation/matchingstatistics.cpp index 55b0586b9..f0758af9f 100644 --- a/src/blackmisc/simulation/matchingstatistics.cpp +++ b/src/blackmisc/simulation/matchingstatistics.cpp @@ -8,6 +8,8 @@ #include "blackmisc/simulation/matchingstatistics.h" +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Simulation, CMatchingStatisticsEntry, CMatchingStatistics) + namespace BlackMisc::Simulation { CMatchingStatistics::CMatchingStatistics() diff --git a/src/blackmisc/simulation/matchingstatistics.h b/src/blackmisc/simulation/matchingstatistics.h index 6adeb3d96..732f44c9f 100644 --- a/src/blackmisc/simulation/matchingstatistics.h +++ b/src/blackmisc/simulation/matchingstatistics.h @@ -18,6 +18,8 @@ #include "blackmisc/collection.h" #include "blackmisc/mixin/mixinmetatype.h" +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Simulation, CMatchingStatisticsEntry, CMatchingStatistics) + namespace BlackMisc::Simulation { //! Value object for matching statistics. diff --git a/src/blackmisc/simulation/simulatedaircraftlist.cpp b/src/blackmisc/simulation/simulatedaircraftlist.cpp index d227870ca..fc20b1eb9 100644 --- a/src/blackmisc/simulation/simulatedaircraftlist.cpp +++ b/src/blackmisc/simulation/simulatedaircraftlist.cpp @@ -24,6 +24,8 @@ using namespace BlackMisc::Geo; using namespace BlackMisc::PhysicalQuantities; using namespace BlackMisc::Network; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Simulation, CSimulatedAircraft, CSimulatedAircraftList) + namespace BlackMisc::Simulation { CSimulatedAircraftList::CSimulatedAircraftList() { } diff --git a/src/blackmisc/simulation/simulatedaircraftlist.h b/src/blackmisc/simulation/simulatedaircraftlist.h index 0c5c6c71d..a137ae2d1 100644 --- a/src/blackmisc/simulation/simulatedaircraftlist.h +++ b/src/blackmisc/simulation/simulatedaircraftlist.h @@ -21,6 +21,8 @@ #include "blackmisc/sequence.h" #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Simulation, CSimulatedAircraft, CSimulatedAircraftList) + namespace BlackMisc { namespace Aviation diff --git a/src/blackmisc/simulation/simulatorinfolist.cpp b/src/blackmisc/simulation/simulatorinfolist.cpp index e93ed36d1..8daaea26c 100644 --- a/src/blackmisc/simulation/simulatorinfolist.cpp +++ b/src/blackmisc/simulation/simulatorinfolist.cpp @@ -11,6 +11,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Simulation, CSimulatorInfo, CSimulatorInfoList) + namespace BlackMisc::Simulation { CSimulatorInfoList::CSimulatorInfoList() { } diff --git a/src/blackmisc/simulation/simulatorinfolist.h b/src/blackmisc/simulation/simulatorinfolist.h index 0d71abac4..f7c0d87f1 100644 --- a/src/blackmisc/simulation/simulatorinfolist.h +++ b/src/blackmisc/simulation/simulatorinfolist.h @@ -18,6 +18,8 @@ #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Simulation, CSimulatorInfo, CSimulatorPluginInfoList) + namespace BlackMisc::Simulation { //! Value object encapsulating a list of distributors. diff --git a/src/blackmisc/simulation/simulatorplugininfolist.cpp b/src/blackmisc/simulation/simulatorplugininfolist.cpp index b256016e8..e03f4c554 100644 --- a/src/blackmisc/simulation/simulatorplugininfolist.cpp +++ b/src/blackmisc/simulation/simulatorplugininfolist.cpp @@ -14,6 +14,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Simulation, CSimulatorPluginInfo, CSimulatorPluginInfoList) + namespace BlackMisc::Simulation { CSimulatorPluginInfoList::CSimulatorPluginInfoList() { } diff --git a/src/blackmisc/simulation/simulatorplugininfolist.h b/src/blackmisc/simulation/simulatorplugininfolist.h index 8351919c4..f9f48f984 100644 --- a/src/blackmisc/simulation/simulatorplugininfolist.h +++ b/src/blackmisc/simulation/simulatorplugininfolist.h @@ -21,6 +21,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Simulation, CSimulatorPluginInfo, CSimulatorPluginInfoList) + namespace BlackMisc::Simulation { class CSimulatorPluginInfo; diff --git a/src/blackmisc/simulation/xplane/navdatareference.cpp b/src/blackmisc/simulation/xplane/navdatareference.cpp index ccb7d939a..953ac49ef 100644 --- a/src/blackmisc/simulation/xplane/navdatareference.cpp +++ b/src/blackmisc/simulation/xplane/navdatareference.cpp @@ -13,6 +13,7 @@ #include BLACK_DEFINE_VALUEOBJECT_MIXINS(BlackMisc::Simulation::XPlane, CNavDataReference) +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Simulation::XPlane, CNavDataReference, CNavDataReferenceList) namespace BlackMisc::Simulation::XPlane { diff --git a/src/blackmisc/simulation/xplane/navdatareference.h b/src/blackmisc/simulation/xplane/navdatareference.h index 09b55f241..80181a37e 100644 --- a/src/blackmisc/simulation/xplane/navdatareference.h +++ b/src/blackmisc/simulation/xplane/navdatareference.h @@ -30,6 +30,7 @@ #include BLACK_DECLARE_VALUEOBJECT_MIXINS(BlackMisc::Simulation::XPlane, CNavDataReference) +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Simulation::XPlane, CNavDataReference, CNavDataReferenceList) namespace BlackMisc::Simulation::XPlane { diff --git a/src/blackmisc/statusmessagelist.cpp b/src/blackmisc/statusmessagelist.cpp index 021c6cf2b..616cce5c0 100644 --- a/src/blackmisc/statusmessagelist.cpp +++ b/src/blackmisc/statusmessagelist.cpp @@ -20,6 +20,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc, CStatusMessage, CStatusMessageList) + namespace BlackMisc { CStatusMessageList::CStatusMessageList(const CSequence &other) : diff --git a/src/blackmisc/statusmessagelist.h b/src/blackmisc/statusmessagelist.h index b6ff2f26a..3e686a920 100644 --- a/src/blackmisc/statusmessagelist.h +++ b/src/blackmisc/statusmessagelist.h @@ -25,6 +25,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc, CStatusMessage, CStatusMessageList) + namespace BlackMisc { //! Status messages, e.g. from Core -> GUI diff --git a/src/blackmisc/variantlist.cpp b/src/blackmisc/variantlist.cpp index e72c96d98..8b7819ffc 100644 --- a/src/blackmisc/variantlist.cpp +++ b/src/blackmisc/variantlist.cpp @@ -10,6 +10,8 @@ #include #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc, CVariant, CVariantList) + namespace BlackMisc { //! \private diff --git a/src/blackmisc/variantlist.h b/src/blackmisc/variantlist.h index 41c424471..ca719210d 100644 --- a/src/blackmisc/variantlist.h +++ b/src/blackmisc/variantlist.h @@ -19,6 +19,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc, CVariant, CVariantList) + namespace BlackMisc { /*! diff --git a/src/blackmisc/weather/cloudlayerlist.cpp b/src/blackmisc/weather/cloudlayerlist.cpp index b1617224f..fab0a8227 100644 --- a/src/blackmisc/weather/cloudlayerlist.cpp +++ b/src/blackmisc/weather/cloudlayerlist.cpp @@ -12,6 +12,8 @@ using namespace BlackMisc::Aviation; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Weather, CCloudLayer, CCloudLayerList) + namespace BlackMisc::Weather { CCloudLayerList::CCloudLayerList(const CSequence &other) : diff --git a/src/blackmisc/weather/cloudlayerlist.h b/src/blackmisc/weather/cloudlayerlist.h index 5f8a72967..3226299e6 100644 --- a/src/blackmisc/weather/cloudlayerlist.h +++ b/src/blackmisc/weather/cloudlayerlist.h @@ -19,6 +19,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Weather, CCloudLayer, CCloudLayerList) + namespace BlackMisc { namespace Aviation { class CAltitude; } diff --git a/src/blackmisc/weather/metarlist.cpp b/src/blackmisc/weather/metarlist.cpp index 2010ba4a0..3ce35930b 100644 --- a/src/blackmisc/weather/metarlist.cpp +++ b/src/blackmisc/weather/metarlist.cpp @@ -10,6 +10,8 @@ #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Weather, CMetar, CMetarList) + namespace BlackMisc::Weather { CMetarList::CMetarList(const CSequence &other) : diff --git a/src/blackmisc/weather/metarlist.h b/src/blackmisc/weather/metarlist.h index a8d651e79..f143f031f 100644 --- a/src/blackmisc/weather/metarlist.h +++ b/src/blackmisc/weather/metarlist.h @@ -21,6 +21,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Weather, CMetar, CMetarList) + namespace BlackMisc::Weather { //! Sequence of Metars diff --git a/src/blackmisc/weather/presentweatherlist.cpp b/src/blackmisc/weather/presentweatherlist.cpp index c1badf90d..163ff4e96 100644 --- a/src/blackmisc/weather/presentweatherlist.cpp +++ b/src/blackmisc/weather/presentweatherlist.cpp @@ -8,6 +8,8 @@ #include "blackmisc/weather/presentweatherlist.h" +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Weather, CPresentWeather, CPresentWeatherList) + namespace BlackMisc::Weather { CPresentWeatherList::CPresentWeatherList(const CSequence &other) : diff --git a/src/blackmisc/weather/presentweatherlist.h b/src/blackmisc/weather/presentweatherlist.h index 8e256f1e6..d34cacc30 100644 --- a/src/blackmisc/weather/presentweatherlist.h +++ b/src/blackmisc/weather/presentweatherlist.h @@ -17,6 +17,8 @@ #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Weather, CPresentWeather, CPresentWeatherList) + namespace BlackMisc::Weather { /*! diff --git a/src/blackmisc/weather/temperaturelayerlist.cpp b/src/blackmisc/weather/temperaturelayerlist.cpp index d5a4606cf..8f8fd5526 100644 --- a/src/blackmisc/weather/temperaturelayerlist.cpp +++ b/src/blackmisc/weather/temperaturelayerlist.cpp @@ -12,6 +12,8 @@ using namespace BlackMisc::Aviation; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Weather, CTemperatureLayer, CTemperatureLayerList) + namespace BlackMisc::Weather { CTemperatureLayerList::CTemperatureLayerList(const CSequence &other) : diff --git a/src/blackmisc/weather/temperaturelayerlist.h b/src/blackmisc/weather/temperaturelayerlist.h index acf2c288f..7af786cd8 100644 --- a/src/blackmisc/weather/temperaturelayerlist.h +++ b/src/blackmisc/weather/temperaturelayerlist.h @@ -19,6 +19,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Weather, CTemperatureLayer, CTemperatureLayerList) + namespace BlackMisc { namespace Aviation { class CAltitude; } diff --git a/src/blackmisc/weather/visibilitylayerlist.cpp b/src/blackmisc/weather/visibilitylayerlist.cpp index 47260896a..4dd85412c 100644 --- a/src/blackmisc/weather/visibilitylayerlist.cpp +++ b/src/blackmisc/weather/visibilitylayerlist.cpp @@ -12,6 +12,8 @@ using namespace BlackMisc::Aviation; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Weather, CVisibilityLayer, CVisibilityLayerList) + namespace BlackMisc::Weather { CVisibilityLayerList::CVisibilityLayerList(const CSequence &other) : diff --git a/src/blackmisc/weather/visibilitylayerlist.h b/src/blackmisc/weather/visibilitylayerlist.h index 09a30c704..efc82ad98 100644 --- a/src/blackmisc/weather/visibilitylayerlist.h +++ b/src/blackmisc/weather/visibilitylayerlist.h @@ -19,6 +19,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Weather, CVisibilityLayer, CVisibilityLayerList) + namespace BlackMisc { namespace Aviation { class CAltitude; } diff --git a/src/blackmisc/weather/weatherdataplugininfolist.cpp b/src/blackmisc/weather/weatherdataplugininfolist.cpp index 8dd2dd403..904400d0f 100644 --- a/src/blackmisc/weather/weatherdataplugininfolist.cpp +++ b/src/blackmisc/weather/weatherdataplugininfolist.cpp @@ -12,6 +12,8 @@ #include +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Weather, CWeatherDataPluginInfo, CWeatherDataPluginInfoList) + namespace BlackMisc::Weather { diff --git a/src/blackmisc/weather/weatherdataplugininfolist.h b/src/blackmisc/weather/weatherdataplugininfolist.h index 0517528be..39569ddb3 100644 --- a/src/blackmisc/weather/weatherdataplugininfolist.h +++ b/src/blackmisc/weather/weatherdataplugininfolist.h @@ -19,6 +19,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Weather, CWeatherDataPluginInfo, CWeatherDataPluginInfoList) + namespace BlackMisc::Weather { class CWeatherDataPluginInfo; diff --git a/src/blackmisc/weather/weathergrid.cpp b/src/blackmisc/weather/weathergrid.cpp index e86c8e4d9..7ebd385e5 100644 --- a/src/blackmisc/weather/weathergrid.cpp +++ b/src/blackmisc/weather/weathergrid.cpp @@ -33,6 +33,8 @@ using namespace BlackMisc::PhysicalQuantities; using namespace BlackMisc::Aviation; using namespace BlackMisc::Geo; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Weather, CGridPoint, CWeatherGrid) + namespace BlackMisc::Weather { CWeatherGrid::CWeatherGrid(const CSequence &other) : diff --git a/src/blackmisc/weather/weathergrid.h b/src/blackmisc/weather/weathergrid.h index 158d00d83..402e6a2ac 100644 --- a/src/blackmisc/weather/weathergrid.h +++ b/src/blackmisc/weather/weathergrid.h @@ -20,6 +20,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Weather, CGridPoint, CWeatherGrid) + namespace BlackMisc { namespace Geo { class ICoordinateGeodetic; } diff --git a/src/blackmisc/weather/windlayerlist.cpp b/src/blackmisc/weather/windlayerlist.cpp index e35c6b2a2..162772cab 100644 --- a/src/blackmisc/weather/windlayerlist.cpp +++ b/src/blackmisc/weather/windlayerlist.cpp @@ -12,6 +12,8 @@ using namespace BlackMisc::Aviation; +BLACK_DEFINE_SEQUENCE_MIXINS(BlackMisc::Weather, CWindLayer, CWindLayerList) + namespace BlackMisc::Weather { CWindLayerList::CWindLayerList(const CSequence &other) : diff --git a/src/blackmisc/weather/windlayerlist.h b/src/blackmisc/weather/windlayerlist.h index ce5159399..c0fa7d71f 100644 --- a/src/blackmisc/weather/windlayerlist.h +++ b/src/blackmisc/weather/windlayerlist.h @@ -19,6 +19,8 @@ #include #include +BLACK_DECLARE_SEQUENCE_MIXINS(BlackMisc::Weather, CWindLayer, CWindLayerList) + namespace BlackMisc { namespace Aviation { class CAltitude; }