diff --git a/src/blackmisc/aviation/adfsystem.h b/src/blackmisc/aviation/adfsystem.h index 3e063ab54..9ac44ac08 100644 --- a/src/blackmisc/aviation/adfsystem.h +++ b/src/blackmisc/aviation/adfsystem.h @@ -31,13 +31,7 @@ namespace BlackMisc //! Base type using base_type = CModulator; - using Mixin::MetaType::registerMetadata; - using Mixin::MetaType::getMetaTypeId; - using Mixin::MetaType::isA; - using Mixin::MetaType::toCVariant; - using Mixin::MetaType::toQVariant; - using Mixin::MetaType::convertFromCVariant; - using Mixin::MetaType::convertFromQVariant; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAdfSystem) //! Default constructor CAdfSystem() = default; diff --git a/src/blackmisc/aviation/altitude.h b/src/blackmisc/aviation/altitude.h index 727b3e7fe..5faafbcfc 100644 --- a/src/blackmisc/aviation/altitude.h +++ b/src/blackmisc/aviation/altitude.h @@ -39,23 +39,11 @@ namespace BlackMisc //! Base type using base_type = PhysicalQuantities::CLength; - using Mixin::MetaTypeAndQList::registerMetadata; - using Mixin::MetaTypeAndQList::getMetaTypeId; - using Mixin::MetaTypeAndQList::isA; - using Mixin::MetaTypeAndQList::toCVariant; - using Mixin::MetaTypeAndQList::toQVariant; - using Mixin::MetaTypeAndQList::convertFromCVariant; - using Mixin::MetaTypeAndQList::convertFromQVariant; - using Mixin::String::toQString; - using Mixin::String::toFormattedQString; - using Mixin::String::toStdString; - using Mixin::String::stringForStreaming; - using Mixin::DBusByTuple::marshallToDbus; - using Mixin::DBusByTuple::unmarshallFromDbus; - using Mixin::JsonByTuple::toJson; - using Mixin::JsonByTuple::convertFromJson; - using Mixin::Icon::toIcon; - using Mixin::Icon::toPixmap; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE_AND_QLIST(CAltitude) + BLACKMISC_DECLARE_USING_MIXIN_STRING(CAltitude) + BLACKMISC_DECLARE_USING_MIXIN_DBUS(CAltitude) + BLACKMISC_DECLARE_USING_MIXIN_JSON(CAltitude) + BLACKMISC_DECLARE_USING_MIXIN_ICON(CAltitude) /*! * Enum type to distinguish between MSL and AGL diff --git a/src/blackmisc/aviation/comsystem.h b/src/blackmisc/aviation/comsystem.h index 38206b51f..59293c46b 100644 --- a/src/blackmisc/aviation/comsystem.h +++ b/src/blackmisc/aviation/comsystem.h @@ -30,13 +30,7 @@ namespace BlackMisc //! Base type using base_type = CModulator; - using Mixin::MetaType::registerMetadata; - using Mixin::MetaType::getMetaTypeId; - using Mixin::MetaType::isA; - using Mixin::MetaType::toCVariant; - using Mixin::MetaType::toQVariant; - using Mixin::MetaType::convertFromCVariant; - using Mixin::MetaType::convertFromQVariant; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CComSystem) //! Channel spacing frequency enum ChannelSpacing diff --git a/src/blackmisc/aviation/heading.h b/src/blackmisc/aviation/heading.h index 44b8c9708..2b8733b9e 100644 --- a/src/blackmisc/aviation/heading.h +++ b/src/blackmisc/aviation/heading.h @@ -38,21 +38,10 @@ namespace BlackMisc //! Base type using base_type = PhysicalQuantities::CAngle; - using Mixin::MetaTypeAndQList::registerMetadata; - using Mixin::MetaTypeAndQList::getMetaTypeId; - using Mixin::MetaTypeAndQList::isA; - using Mixin::MetaTypeAndQList::toCVariant; - using Mixin::MetaTypeAndQList::toQVariant; - using Mixin::MetaTypeAndQList::convertFromCVariant; - using Mixin::MetaTypeAndQList::convertFromQVariant; - using Mixin::String::toQString; - using Mixin::String::toFormattedQString; - using Mixin::String::toStdString; - using Mixin::String::stringForStreaming; - using Mixin::DBusByTuple::marshallToDbus; - using Mixin::DBusByTuple::unmarshallFromDbus; - using Mixin::JsonByTuple::toJson; - using Mixin::JsonByTuple::convertFromJson; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE_AND_QLIST(CHeading) + BLACKMISC_DECLARE_USING_MIXIN_STRING(CHeading) + BLACKMISC_DECLARE_USING_MIXIN_DBUS(CHeading) + BLACKMISC_DECLARE_USING_MIXIN_JSON(CHeading) //! Enum type to distinguish between true north and magnetic north enum ReferenceNorth diff --git a/src/blackmisc/aviation/navsystem.h b/src/blackmisc/aviation/navsystem.h index 39dbc54d7..f486d23f1 100644 --- a/src/blackmisc/aviation/navsystem.h +++ b/src/blackmisc/aviation/navsystem.h @@ -30,13 +30,7 @@ namespace BlackMisc //! Base type using base_type = CModulator; - using Mixin::MetaType::registerMetadata; - using Mixin::MetaType::getMetaTypeId; - using Mixin::MetaType::isA; - using Mixin::MetaType::toCVariant; - using Mixin::MetaType::toQVariant; - using Mixin::MetaType::convertFromCVariant; - using Mixin::MetaType::convertFromQVariant; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CNavSystem) //! Default constructor CNavSystem() = default; diff --git a/src/blackmisc/aviation/track.h b/src/blackmisc/aviation/track.h index ca5235eb8..c09d38d97 100644 --- a/src/blackmisc/aviation/track.h +++ b/src/blackmisc/aviation/track.h @@ -39,21 +39,10 @@ namespace BlackMisc //! Base type using base_type = PhysicalQuantities::CAngle; - using Mixin::MetaTypeAndQList::registerMetadata; - using Mixin::MetaTypeAndQList::getMetaTypeId; - using Mixin::MetaTypeAndQList::isA; - using Mixin::MetaTypeAndQList::toCVariant; - using Mixin::MetaTypeAndQList::toQVariant; - using Mixin::MetaTypeAndQList::convertFromCVariant; - using Mixin::MetaTypeAndQList::convertFromQVariant; - using Mixin::String::toQString; - using Mixin::String::toFormattedQString; - using Mixin::String::toStdString; - using Mixin::String::stringForStreaming; - using Mixin::DBusByTuple::marshallToDbus; - using Mixin::DBusByTuple::unmarshallFromDbus; - using Mixin::JsonByTuple::toJson; - using Mixin::JsonByTuple::convertFromJson; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE_AND_QLIST(CTrack) + BLACKMISC_DECLARE_USING_MIXIN_STRING(CTrack) + BLACKMISC_DECLARE_USING_MIXIN_DBUS(CTrack) + BLACKMISC_DECLARE_USING_MIXIN_JSON(CTrack) /*! * Enum type to distinguish between true north and magnetic north diff --git a/src/blackmisc/geo/latitude.h b/src/blackmisc/geo/latitude.h index 01c31ebcd..f04395a21 100644 --- a/src/blackmisc/geo/latitude.h +++ b/src/blackmisc/geo/latitude.h @@ -32,17 +32,8 @@ namespace BlackMisc //! Base type using base_type = CEarthAngle; - using Mixin::MetaType::registerMetadata; - using Mixin::MetaType::getMetaTypeId; - using Mixin::MetaType::isA; - using Mixin::MetaType::toCVariant; - using Mixin::MetaType::toQVariant; - using Mixin::MetaType::convertFromCVariant; - using Mixin::MetaType::convertFromQVariant; - using Mixin::String::toQString; - using Mixin::String::toFormattedQString; - using Mixin::String::toStdString; - using Mixin::String::stringForStreaming; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CLatitude) + BLACKMISC_DECLARE_USING_MIXIN_STRING(CLatitude) //! \copydoc CValueObject::convertToQString QString convertToQString(bool i18n = false) const diff --git a/src/blackmisc/geo/longitude.h b/src/blackmisc/geo/longitude.h index 235fbb951..3c6a578e0 100644 --- a/src/blackmisc/geo/longitude.h +++ b/src/blackmisc/geo/longitude.h @@ -31,17 +31,8 @@ namespace BlackMisc //! Base type using base_type = CEarthAngle; - using Mixin::MetaType::registerMetadata; - using Mixin::MetaType::getMetaTypeId; - using Mixin::MetaType::isA; - using Mixin::MetaType::toCVariant; - using Mixin::MetaType::toQVariant; - using Mixin::MetaType::convertFromCVariant; - using Mixin::MetaType::convertFromQVariant; - using Mixin::String::toQString; - using Mixin::String::toFormattedQString; - using Mixin::String::toStdString; - using Mixin::String::stringForStreaming; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CLongitude) + BLACKMISC_DECLARE_USING_MIXIN_STRING(CLongitude) //! \copydoc CValueObject::convertToQString QString convertToQString(bool i18n = false) const diff --git a/src/blackmisc/pq/units.h b/src/blackmisc/pq/units.h index 5d113a3ee..08ee26d8c 100644 --- a/src/blackmisc/pq/units.h +++ b/src/blackmisc/pq/units.h @@ -62,13 +62,7 @@ namespace BlackMisc //! Base type using base_type = CMeasurementUnit; - using Mixin::MetaTypeAndQList::registerMetadata; - using Mixin::MetaTypeAndQList::getMetaTypeId; - using Mixin::MetaTypeAndQList::isA; - using Mixin::MetaTypeAndQList::toCVariant; - using Mixin::MetaTypeAndQList::toQVariant; - using Mixin::MetaTypeAndQList::convertFromCVariant; - using Mixin::MetaTypeAndQList::convertFromQVariant; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE_AND_QLIST(CLengthUnit) //! Default constructor, required for Qt Metasystem CLengthUnit() : CMeasurementUnit(defaultUnit()) {} @@ -183,13 +177,7 @@ namespace BlackMisc //! Base type using base_type = CMeasurementUnit; - using Mixin::MetaTypeAndQList::registerMetadata; - using Mixin::MetaTypeAndQList::getMetaTypeId; - using Mixin::MetaTypeAndQList::isA; - using Mixin::MetaTypeAndQList::toCVariant; - using Mixin::MetaTypeAndQList::toQVariant; - using Mixin::MetaTypeAndQList::convertFromCVariant; - using Mixin::MetaTypeAndQList::convertFromQVariant; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE_AND_QLIST(CAngleUnit) //! Default constructor, required for Qt Metasystem CAngleUnit() : CMeasurementUnit(defaultUnit()) {} @@ -287,13 +275,7 @@ namespace BlackMisc //! Base type using base_type = CMeasurementUnit; - using Mixin::MetaTypeAndQList::registerMetadata; - using Mixin::MetaTypeAndQList::getMetaTypeId; - using Mixin::MetaTypeAndQList::isA; - using Mixin::MetaTypeAndQList::toCVariant; - using Mixin::MetaTypeAndQList::toQVariant; - using Mixin::MetaTypeAndQList::convertFromCVariant; - using Mixin::MetaTypeAndQList::convertFromQVariant; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE_AND_QLIST(CFrequencyUnit) //! Default constructor, required for Qt Metasystem CFrequencyUnit() : CMeasurementUnit(defaultUnit()) {} @@ -384,13 +366,7 @@ namespace BlackMisc //! Base type using base_type = CMeasurementUnit; - using Mixin::MetaTypeAndQList::registerMetadata; - using Mixin::MetaTypeAndQList::getMetaTypeId; - using Mixin::MetaTypeAndQList::isA; - using Mixin::MetaTypeAndQList::toCVariant; - using Mixin::MetaTypeAndQList::toQVariant; - using Mixin::MetaTypeAndQList::convertFromCVariant; - using Mixin::MetaTypeAndQList::convertFromQVariant; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE_AND_QLIST(CMassUnit) //! Default constructor, required for Qt Metasystem CMassUnit() : CMeasurementUnit(defaultUnit()) {} @@ -491,13 +467,7 @@ namespace BlackMisc //! Base type using base_type = CMeasurementUnit; - using Mixin::MetaTypeAndQList::registerMetadata; - using Mixin::MetaTypeAndQList::getMetaTypeId; - using Mixin::MetaTypeAndQList::isA; - using Mixin::MetaTypeAndQList::toCVariant; - using Mixin::MetaTypeAndQList::toQVariant; - using Mixin::MetaTypeAndQList::convertFromCVariant; - using Mixin::MetaTypeAndQList::convertFromQVariant; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE_AND_QLIST(CPressureUnit) //! Default constructor, required for Qt Metasystem CPressureUnit() : CMeasurementUnit(defaultUnit()) {} @@ -619,13 +589,7 @@ namespace BlackMisc //! Base type using base_type = CMeasurementUnit; - using Mixin::MetaTypeAndQList::registerMetadata; - using Mixin::MetaTypeAndQList::getMetaTypeId; - using Mixin::MetaTypeAndQList::isA; - using Mixin::MetaTypeAndQList::toCVariant; - using Mixin::MetaTypeAndQList::toQVariant; - using Mixin::MetaTypeAndQList::convertFromCVariant; - using Mixin::MetaTypeAndQList::convertFromQVariant; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE_AND_QLIST(CTemperatureUnit) //! Default constructor, required for Qt Metasystem CTemperatureUnit() : CMeasurementUnit(defaultUnit()) {} @@ -710,13 +674,7 @@ namespace BlackMisc //! Base type using base_type = CMeasurementUnit; - using Mixin::MetaTypeAndQList::registerMetadata; - using Mixin::MetaTypeAndQList::getMetaTypeId; - using Mixin::MetaTypeAndQList::isA; - using Mixin::MetaTypeAndQList::toCVariant; - using Mixin::MetaTypeAndQList::toQVariant; - using Mixin::MetaTypeAndQList::convertFromCVariant; - using Mixin::MetaTypeAndQList::convertFromQVariant; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE_AND_QLIST(CSpeedUnit) //! Default constructor, required for Qt Metasystem CSpeedUnit() : CMeasurementUnit(defaultUnit()) {} @@ -825,13 +783,7 @@ namespace BlackMisc //! Base type using base_type = CMeasurementUnit; - using Mixin::MetaTypeAndQList::registerMetadata; - using Mixin::MetaTypeAndQList::getMetaTypeId; - using Mixin::MetaTypeAndQList::isA; - using Mixin::MetaTypeAndQList::toCVariant; - using Mixin::MetaTypeAndQList::toQVariant; - using Mixin::MetaTypeAndQList::convertFromCVariant; - using Mixin::MetaTypeAndQList::convertFromQVariant; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE_AND_QLIST(CTimeUnit) //! Default constructor, required for Qt Metasystem CTimeUnit() : CMeasurementUnit(defaultUnit()) {} @@ -961,13 +913,7 @@ namespace BlackMisc //! Base type using base_type = CMeasurementUnit; - using Mixin::MetaTypeAndQList::registerMetadata; - using Mixin::MetaTypeAndQList::getMetaTypeId; - using Mixin::MetaTypeAndQList::isA; - using Mixin::MetaTypeAndQList::toCVariant; - using Mixin::MetaTypeAndQList::toQVariant; - using Mixin::MetaTypeAndQList::convertFromCVariant; - using Mixin::MetaTypeAndQList::convertFromQVariant; + BLACKMISC_DECLARE_USING_MIXIN_METATYPE_AND_QLIST(CAccelerationUnit) //! Default constructor, required for Qt Metasystem CAccelerationUnit() : CMeasurementUnit(defaultUnit()) {} diff --git a/src/blackmisc/valueobject.h b/src/blackmisc/valueobject.h index 4984dd0e5..b975b9026 100644 --- a/src/blackmisc/valueobject.h +++ b/src/blackmisc/valueobject.h @@ -207,6 +207,32 @@ namespace BlackMisc class MetaTypeAndQList : public MetaType> {}; + /*! + * When a derived class and a base class both inherit from Mixin::MetaType, + * the derived class uses this macro to disambiguate the inherited members. + */ +# define BLACKMISC_DECLARE_USING_MIXIN_METATYPE(DERIVED) \ + using ::BlackMisc::Mixin::MetaType::registerMetadata; \ + using ::BlackMisc::Mixin::MetaType::getMetaTypeId; \ + using ::BlackMisc::Mixin::MetaType::isA; \ + using ::BlackMisc::Mixin::MetaType::toCVariant; \ + using ::BlackMisc::Mixin::MetaType::toQVariant; \ + using ::BlackMisc::Mixin::MetaType::convertFromCVariant; \ + using ::BlackMisc::Mixin::MetaType::convertFromQVariant; + + /*! + * When a derived class and a base class both inherit from Mixin::MetaType, + * the derived class uses this macro to disambiguate the inherited members. + */ +# define BLACKMISC_DECLARE_USING_MIXIN_METATYPE_AND_QLIST(DERIVED) \ + using ::BlackMisc::Mixin::MetaTypeAndQList::registerMetadata; \ + using ::BlackMisc::Mixin::MetaTypeAndQList::getMetaTypeId; \ + using ::BlackMisc::Mixin::MetaTypeAndQList::isA; \ + using ::BlackMisc::Mixin::MetaTypeAndQList::toCVariant; \ + using ::BlackMisc::Mixin::MetaTypeAndQList::toQVariant; \ + using ::BlackMisc::Mixin::MetaTypeAndQList::convertFromCVariant; \ + using ::BlackMisc::Mixin::MetaTypeAndQList::convertFromQVariant; + /*! * CRTP class template from which a derived class can inherit common methods dealing with hashing instances by metatuple. */ @@ -289,6 +315,14 @@ namespace BlackMisc static void baseUnmarshall(void *, const QDBusArgument &) {} }; + /*! + * When a derived class and a base class both inherit from Mixin::DBusByTuple, + * the derived class uses this macro to disambiguate the inherited members. + */ +# define BLACKMISC_DECLARE_USING_MIXIN_DBUS(DERIVED) \ + using ::BlackMisc::Mixin::DBusByTuple::marshallToDbus; \ + using ::BlackMisc::Mixin::DBusByTuple::unmarshallFromDbus; + /*! * CRTP class template which will generate marshalling operators for a derived class with its own marshalling implementation. */ @@ -363,6 +397,14 @@ namespace BlackMisc static void baseConvertFromJson(void *, const QJsonObject &) {} }; + /*! + * When a derived class and a base class both inherit from Mixin::JsonByTuple, + * the derived class uses this macro to disambiguate the inherited members. + */ +# define BLACKMISC_DECLARE_USING_MIXIN_JSON(DERIVED) \ + using ::BlackMisc::Mixin::JsonByTuple::toJson; \ + using ::BlackMisc::Mixin::JsonByTuple::convertFromJson; + /*! * CRTP class template from which a derived class can inherit operator== implemented using its compare function. */ @@ -528,6 +570,16 @@ namespace BlackMisc Derived *derived() { return static_cast(this); } }; + /*! + * When a derived class and a base class both inherit from Mixin::String, + * the derived class uses this macro to disambiguate the inherited members. + */ +# define BLACKMISC_DECLARE_USING_MIXIN_STRING(DERIVED) \ + using ::BlackMisc::Mixin::String::toQString; \ + using ::BlackMisc::Mixin::String::toFormattedQString; \ + using ::BlackMisc::Mixin::String::toStdString; \ + using ::BlackMisc::Mixin::String::stringForStreaming; + /*! * CRTP class template from which a derived class can inherit property indexing functions. */ @@ -582,6 +634,14 @@ namespace BlackMisc Derived *derived() { return static_cast(this); } }; + /*! + * When a derived class and a base class both inherit from Mixin::Icon, + * the derived class uses this macro to disambiguate the inherited members. + */ +# define BLACKMISC_DECLARE_USING_MIXIN_ICON(DERIVED) \ + using ::BlackMisc::Mixin::Icon::toIcon; \ + using ::BlackMisc::Mixin::Icon::toPixmap; + } /*!