From 290abe3693d852d574a2e0eaddd2ce591c506f48 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 19 Aug 2014 01:55:15 +0200 Subject: [PATCH] refs #314, fromQVariant / location of toQVariant * renamed fromQVariant to convertFromQVariant, the "from" methods imply the object is changed (fromJson, fromString ..) * implemented fromQVariant - changing the object by QVariant * moved toQVariant into PQ template * free function setFromQVariant --- src/blackmisc/audiodevice.h | 3 + src/blackmisc/audiodevicelist.h | 9 +- src/blackmisc/avaircraft.h | 4 + src/blackmisc/avaircrafticao.h | 11 +- src/blackmisc/avaircraftlist.h | 15 ++- src/blackmisc/avaircraftsituation.h | 5 +- src/blackmisc/avaircraftsituationlist.h | 13 ++- src/blackmisc/avairport.h | 3 + src/blackmisc/avairporticao.h | 5 + src/blackmisc/avairportlist.h | 9 +- src/blackmisc/avaltitude.h | 9 +- src/blackmisc/avatcstation.h | 3 + src/blackmisc/avatcstationlist.h | 16 ++- src/blackmisc/avcallsign.h | 17 +-- src/blackmisc/avcallsignlist.h | 5 +- src/blackmisc/avflightplan.h | 3 + src/blackmisc/avheading.h | 12 +- src/blackmisc/avinformationmessage.h | 43 +++---- src/blackmisc/aviocomsystem.h | 3 - src/blackmisc/aviomodulator.h | 14 ++- src/blackmisc/aviotransponder.h | 12 +- src/blackmisc/avselcal.h | 10 +- src/blackmisc/avtrack.h | 8 +- src/blackmisc/blackmiscfreefunctions.cpp | 10 +- src/blackmisc/blackmiscfreefunctions.h | 12 ++ src/blackmisc/containerbase.h | 4 + src/blackmisc/coordinateecef.h | 5 +- src/blackmisc/coordinategeodetic.h | 5 +- src/blackmisc/dictionary.h | 5 +- src/blackmisc/geoearthangle.h | 6 + src/blackmisc/hotkeyfunction.h | 14 +-- src/blackmisc/hwkeyboardkey.h | 13 ++- src/blackmisc/hwkeyboardkeylist.h | 2 +- src/blackmisc/icon.h | 11 +- src/blackmisc/indexvariantmap.h | 9 +- src/blackmisc/mathmatrix1x3.h | 8 -- src/blackmisc/mathmatrixbase.h | 8 +- src/blackmisc/mathvector3d.h | 8 -- src/blackmisc/mathvector3dbase.h | 8 +- src/blackmisc/namevariantpair.h | 9 +- src/blackmisc/namevariantpairlist.h | 5 +- src/blackmisc/nwaircraftmapping.h | 17 +-- src/blackmisc/nwaircraftmappinglist.h | 10 +- src/blackmisc/nwaircraftmodel.h | 9 +- src/blackmisc/nwclient.h | 14 ++- src/blackmisc/nwserver.h | 25 ++-- src/blackmisc/nwserverlist.h | 3 + src/blackmisc/nwtextmessage.h | 8 +- src/blackmisc/nwtextmessagelist.h | 9 +- src/blackmisc/nwuser.h | 12 +- src/blackmisc/nwuserlist.h | 7 +- src/blackmisc/nwvoicecapabilities.h | 10 +- src/blackmisc/pqacceleration.h | 3 - src/blackmisc/pqangle.cpp | 1 + src/blackmisc/pqangle.h | 13 ++- src/blackmisc/pqbase.h | 30 +++-- src/blackmisc/pqfrequency.h | 6 - src/blackmisc/pqlength.h | 6 - src/blackmisc/pqmass.h | 6 - src/blackmisc/pqphysicalquantity.h | 7 ++ src/blackmisc/pqpressure.h | 6 - src/blackmisc/pqspeed.h | 6 - src/blackmisc/pqstring.h | 13 ++- src/blackmisc/pqtemperature.h | 3 - src/blackmisc/pqtime.h | 3 - src/blackmisc/pqunits.h | 109 ++++++++---------- src/blackmisc/propertyindex.h | 12 +- src/blackmisc/setaudio.h | 8 +- src/blackmisc/setkeyboardhotkey.h | 10 +- src/blackmisc/setkeyboardhotkeylist.h | 16 ++- src/blackmisc/setnetwork.h | 8 +- src/blackmisc/statusmessage.h | 3 + src/blackmisc/statusmessagelist.h | 6 +- src/blackmisc/valueobject.cpp | 12 +- src/blackmisc/valueobject.h | 5 +- src/blackmisc/variant.cpp | 6 +- src/blackmisc/voiceroom.h | 10 +- src/blackmisc/voiceroomlist.h | 3 + src/blacksim/fscommon/aircraftcfgentries.h | 6 +- .../fscommon/aircraftcfgentrieslist.h | 7 +- src/blacksim/fscommon/aircraftmapping.h | 9 +- src/blacksim/fscommon/aircraftmappinglist.h | 7 +- src/blacksim/setsimulator.h | 13 ++- src/blacksim/simulatorinfo.h | 15 ++- 84 files changed, 478 insertions(+), 388 deletions(-) diff --git a/src/blackmisc/audiodevice.h b/src/blackmisc/audiodevice.h index 8bfc07284..8dd45b977 100644 --- a/src/blackmisc/audiodevice.h +++ b/src/blackmisc/audiodevice.h @@ -74,6 +74,9 @@ namespace BlackMisc //! \copydoc CValueObject::toQVariant virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! \copydoc CValueObject::toJson virtual QJsonObject toJson() const override; diff --git a/src/blackmisc/audiodevicelist.h b/src/blackmisc/audiodevicelist.h index a8d2c46e0..121b32359 100644 --- a/src/blackmisc/audiodevicelist.h +++ b/src/blackmisc/audiodevicelist.h @@ -35,9 +35,6 @@ namespace BlackMisc //! Construct from a base class object. CAudioDeviceList(const CSequence &other); - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Get output devices in that list CAudioDeviceList getOutputDevices() const; @@ -47,6 +44,12 @@ namespace BlackMisc //! Count (as of type) int count(CAudioDevice::DeviceType type) const; + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Register metadata static void registerMetadata(); }; diff --git a/src/blackmisc/avaircraft.h b/src/blackmisc/avaircraft.h index 330509491..3d0f6c8ba 100644 --- a/src/blackmisc/avaircraft.h +++ b/src/blackmisc/avaircraft.h @@ -21,6 +21,7 @@ #include "valueobject.h" #include "namevariantpairlist.h" #include "propertyindex.h" +#include "blackmiscfreefunctions.h" namespace BlackMisc { @@ -54,6 +55,9 @@ namespace BlackMisc //! \copydoc CValueObject::toQVariant virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! \copydoc CValueObject::toIcon() virtual BlackMisc::CIcon toIcon() const override { return this->m_callsign.toIcon(); } diff --git a/src/blackmisc/avaircrafticao.h b/src/blackmisc/avaircrafticao.h index 51cb2fb33..c81ef6e01 100644 --- a/src/blackmisc/avaircrafticao.h +++ b/src/blackmisc/avaircrafticao.h @@ -13,6 +13,7 @@ #define BLACKMISC_AIRCRAFTICAO_H #include "propertyindex.h" +#include "blackmiscfreefunctions.h" namespace BlackMisc { @@ -62,11 +63,11 @@ namespace BlackMisc : m_aircraftDesignator(icao.trimmed().toUpper()), m_aircraftCombinedType(combinedType.trimmed().toUpper()), m_airlineDesignator(airline.trimmed().toUpper()), m_livery(livery.trimmed().toUpper()), m_aircraftColor(color.trimmed().toUpper()) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Get ICAO designator, e.g. "B737" const QString &getAircraftDesignator() const { return m_aircraftDesignator; } diff --git a/src/blackmisc/avaircraftlist.h b/src/blackmisc/avaircraftlist.h index 09120e0ab..b972dad2b 100644 --- a/src/blackmisc/avaircraftlist.h +++ b/src/blackmisc/avaircraftlist.h @@ -37,9 +37,6 @@ namespace BlackMisc //! Construct from a base class object. CAircraftList(const CSequence &other); - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Find 0..n stations by callsign CAircraftList findByCallsign(const CCallsign &callsign) const; @@ -60,12 +57,18 @@ namespace BlackMisc */ CAircraftList findWithinRange(const BlackMisc::Geo::ICoordinateGeodetic &coordinate, const BlackMisc::PhysicalQuantities::CLength &range) const; - //! Register metadata - static void registerMetadata(); - //! \brief Update aircraft with data from VATSIM data file //! \remarks The list used needs to contain the VATSIM data file objects bool updateWithVatsimDataFileData(CAircraft &aircraftToBeUpdated) const; + + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + + //! Register metadata + static void registerMetadata(); }; } //namespace diff --git a/src/blackmisc/avaircraftsituation.h b/src/blackmisc/avaircraftsituation.h index 0ea006a7b..f02489de6 100644 --- a/src/blackmisc/avaircraftsituation.h +++ b/src/blackmisc/avaircraftsituation.h @@ -62,9 +62,12 @@ namespace BlackMisc //! \copydoc CValueObject::setPropertyByIndex(variant,index) virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; - //! \copydoc CValueObject::toQVariant + //! \copydoc CValueObject::toQVariant() virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Get position const BlackMisc::Geo::CCoordinateGeodetic &getPosition() const { return this->m_position; } diff --git a/src/blackmisc/avaircraftsituationlist.h b/src/blackmisc/avaircraftsituationlist.h index 8a1a0fc48..3369ed008 100644 --- a/src/blackmisc/avaircraftsituationlist.h +++ b/src/blackmisc/avaircraftsituationlist.h @@ -25,12 +25,6 @@ namespace BlackMisc //! Construct from a base class object. CAircraftSituationList(const CSequence &other); - //! \copydoc CValueObject::toQVariant() - virtual QVariant toQVariant() const - { - return QVariant::fromValue(*this); - } - /*! * Get a list of situations before dateTime * \param dateTime @@ -56,6 +50,13 @@ namespace BlackMisc * \param seconds */ void removeOlderThan(double seconds); + + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + }; } } diff --git a/src/blackmisc/avairport.h b/src/blackmisc/avairport.h index 61534cbb7..a50bcc062 100644 --- a/src/blackmisc/avairport.h +++ b/src/blackmisc/avairport.h @@ -53,6 +53,9 @@ namespace BlackMisc //! \copydoc CValueObject::toQVariant() virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Equal operator == bool operator ==(const CAirport &other) const; diff --git a/src/blackmisc/avairporticao.h b/src/blackmisc/avairporticao.h index 82d08ca5f..1828b8622 100644 --- a/src/blackmisc/avairporticao.h +++ b/src/blackmisc/avairporticao.h @@ -11,7 +11,9 @@ #ifndef BLACKMISC_AIRPORTICAO_H #define BLACKMISC_AIRPORTICAO_H + #include "valueobject.h" +#include "blackmiscfreefunctions.h" namespace BlackMisc { @@ -37,6 +39,9 @@ namespace BlackMisc //! \copydoc CValueObject::toQVariant() virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Is empty? bool isEmpty() const { return this->m_icaoCode.isEmpty(); } diff --git a/src/blackmisc/avairportlist.h b/src/blackmisc/avairportlist.h index 7df04c41f..9be3c9a0b 100644 --- a/src/blackmisc/avairportlist.h +++ b/src/blackmisc/avairportlist.h @@ -31,9 +31,6 @@ namespace BlackMisc //! Construct from a base class object. CAirportList(const CSequence &other); - //! \copydoc CValueObject::toQVariant() - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Find 0..n airports by ICAO code CAirportList findByIcao(const CAirportIcao &icao) const; @@ -55,6 +52,12 @@ namespace BlackMisc //! Sort by range from a given coordinate void sortByRange(const BlackMisc::Geo::CCoordinateGeodetic &position, bool updateDistance); + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Register metadata static void registerMetadata(); }; diff --git a/src/blackmisc/avaltitude.h b/src/blackmisc/avaltitude.h index 44021b056..f2e60d94a 100644 --- a/src/blackmisc/avaltitude.h +++ b/src/blackmisc/avaltitude.h @@ -90,9 +90,6 @@ namespace BlackMisc //! Flight level? bool isFlightLevel() const { return FlightLevel == this->m_datum; } - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Get reference datum (MSL or AGL) ReferenceDatum getReferenceDatum() const { return m_datum; } @@ -108,6 +105,12 @@ namespace BlackMisc //! \copydoc CValueObject::fromJson void fromJson(const QJsonObject &json) override; + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! \copydoc CValueObject::parseFromString(const QString &value) void parseFromString(const QString &value) override; diff --git a/src/blackmisc/avatcstation.h b/src/blackmisc/avatcstation.h index 3d108394a..c8e0895e5 100644 --- a/src/blackmisc/avatcstation.h +++ b/src/blackmisc/avatcstation.h @@ -71,6 +71,9 @@ namespace BlackMisc //! \copydoc CValueObject::toQVariant() virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! \copydoc CValueObject::toIcon() virtual BlackMisc::CIcon toIcon() const override { return this->m_callsign.toIcon(); } diff --git a/src/blackmisc/avatcstationlist.h b/src/blackmisc/avatcstationlist.h index 4fd128857..dfd848888 100644 --- a/src/blackmisc/avatcstationlist.h +++ b/src/blackmisc/avatcstationlist.h @@ -33,9 +33,6 @@ namespace BlackMisc //! Construct from a base class object. CAtcStationList(const CSequence &other); - //! \copydoc CValueObject::toQVariant() - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Find 0..n stations by callsign CAtcStationList findByCallsign(const CCallsign &callsign) const; @@ -57,9 +54,6 @@ namespace BlackMisc //! Update distances to coordinate, usually own aircraft's position void calculateDistancesToPlane(const BlackMisc::Geo::CCoordinateGeodetic &position); - //! Register metadata - static void registerMetadata(); - //! Merge with ATC station representing booking information //! \remarks Can be used if the stored data in this list are online ATC stations int mergeWithBooking(CAtcStation &bookedAtcStation); @@ -67,6 +61,16 @@ namespace BlackMisc //! Merge with the data from the VATSIM data file //! \remarks Can be used if the stored data in this list are VATSIM data file stations bool updateFromVatsimDataFileStation(CAtcStation &stationToBeUpdated) const; + + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + + //! Register metadata + static void registerMetadata(); + }; } //namespace diff --git a/src/blackmisc/avcallsign.h b/src/blackmisc/avcallsign.h index 1b4b78bd8..306221303 100644 --- a/src/blackmisc/avcallsign.h +++ b/src/blackmisc/avcallsign.h @@ -12,9 +12,9 @@ #ifndef BLACKMISC_CALLSIGN_H #define BLACKMISC_CALLSIGN_H -#include "valueobject.h" #include "propertyindex.h" #include "icon.h" +#include "blackmiscfreefunctions.h" namespace BlackMisc { @@ -46,12 +46,6 @@ namespace BlackMisc : m_callsignAsSet(callsign), m_callsign(CCallsign::unifyCallsign(callsign)) {} - //! \copydoc CValueObject::toQVariant() - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - - //! \copydoc CValueObject::toIcon() - virtual BlackMisc::CIcon toIcon() const override { return CCallsign::convertToIcon(*this); } - //! Is empty? bool isEmpty() const { return this->m_callsignAsSet.isEmpty(); } @@ -91,6 +85,15 @@ namespace BlackMisc //! \copydoc CValueObject::fromJson virtual void fromJson(const QJsonObject &json) override; + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + + //! \copydoc CValueObject::toIcon() + virtual BlackMisc::CIcon toIcon() const override { return CCallsign::convertToIcon(*this); } + //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; diff --git a/src/blackmisc/avcallsignlist.h b/src/blackmisc/avcallsignlist.h index 808221fa9..9ae371297 100644 --- a/src/blackmisc/avcallsignlist.h +++ b/src/blackmisc/avcallsignlist.h @@ -33,9 +33,12 @@ namespace BlackMisc //! Construct from a base class object. CCallsignList(const CSequence &other); - //! CValueObject::toQVariant() + //! \copydoc CValueObject::toQVariant virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Register metadata static void registerMetadata(); diff --git a/src/blackmisc/avflightplan.h b/src/blackmisc/avflightplan.h index 67e6a60f7..548a2d6df 100644 --- a/src/blackmisc/avflightplan.h +++ b/src/blackmisc/avflightplan.h @@ -190,6 +190,9 @@ namespace BlackMisc //! \copydoc CValueObject::toQVariant virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! \copydoc CValueObject::getValueHash virtual uint getValueHash() const override; diff --git a/src/blackmisc/avheading.h b/src/blackmisc/avheading.h index ba5a40d17..53ba9db41 100644 --- a/src/blackmisc/avheading.h +++ b/src/blackmisc/avheading.h @@ -66,12 +66,6 @@ namespace BlackMisc //! \brief Constructor by CAngle CHeading(CAngle heading, ReferenceNorth north) : CAngle(heading), m_north(north) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } - //! \copydoc CValueObject::getValueHash virtual uint getValueHash() const override; @@ -90,6 +84,12 @@ namespace BlackMisc //! \brief Get reference north (magnetic or true) ReferenceNorth getReferenceNorth() const { return m_north; } + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! \copydoc CValueObject::toJson virtual QJsonObject toJson() const override; diff --git a/src/blackmisc/avinformationmessage.h b/src/blackmisc/avinformationmessage.h index f8124ad53..b10ad777a 100644 --- a/src/blackmisc/avinformationmessage.h +++ b/src/blackmisc/avinformationmessage.h @@ -13,6 +13,7 @@ #define BLACKMISC_INFORMATIONMESSAGE_H #include "valueobject.h" +#include "blackmiscfreefunctions.h" #include #include @@ -38,15 +39,15 @@ namespace BlackMisc TAF }; - //! \brief Default constructor. + //! Default constructor. CInformationMessage() : m_type(CInformationMessage::Unspecified), m_receivedTimestamp(QDateTime::currentDateTimeUtc()) {} - //! \brief Information message of type + //! Information message of type explicit CInformationMessage(InformationType type) : m_type(type) {} /*! - * \brief Information message of type + * Information message of type * \param type * \param message */ @@ -55,56 +56,56 @@ namespace BlackMisc {} //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! \brief Equal operator == + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + + //! Equal operator == bool operator ==(const CInformationMessage &other) const; - //! \brief operator != + //! operator != bool operator !=(const CInformationMessage &other) const; - //! \brief Get message. + //! Get message. const QString &getMessage() const { return m_message; } - //! \brief Is a message available + //! Is a message available bool hasMessage() const { return !m_message.isEmpty(); } - //! \brief Set message + //! Set message void setMessage(const QString &message) { this->m_receivedTimestamp = QDateTime::currentDateTimeUtc(); this->m_message = message; } - //! \brief Append message part + //! Append message part void appendMessage(const QString &messagePart) { this->m_receivedTimestamp = QDateTime::currentDateTimeUtc(); this->m_message.append(messagePart); } - //! \brief Type as string + //! Type as string const QString &getTypeAsString() const; - //! \brief Type + //! Type InformationType getType() const { return this->m_type; } - //! \brief Set type + //! Set type void setType(InformationType type) { this->m_type = type; } - //! \brief Timestamp + //! Timestamp const QDateTime &getReceivedTimestamp() const { return this->m_receivedTimestamp; } - //! \brief Received before n ms + //! Received before n ms qint64 timeDiffReceivedMs() const { return this->m_receivedTimestamp.msecsTo(QDateTime::currentDateTimeUtc()); } - //! \brief Is empty? + //! Is empty? bool isEmpty() const { return this->m_message.isEmpty(); } //! \copydoc CValueObject::getValueHash @@ -116,10 +117,10 @@ namespace BlackMisc //! \copydoc CValueObject::fromJson void fromJson(const QJsonObject &json) override; - //! \brief Register metadata + //! Register metadata static void registerMetadata(); - //! \brief Members + //! Members static const QStringList &jsonMembers(); protected: diff --git a/src/blackmisc/aviocomsystem.h b/src/blackmisc/aviocomsystem.h index 0c9b61d49..f9796438f 100644 --- a/src/blackmisc/aviocomsystem.h +++ b/src/blackmisc/aviocomsystem.h @@ -39,9 +39,6 @@ namespace BlackMisc CModulator(name, activeFrequency, standbyFrequency == CModulator::FrequencyNotSet() ? activeFrequency : standbyFrequency, digits), m_channelSpacing(ChannelSpacing25KHz) { } - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Set active frequency //! \remarks will be rounded to channel spacing void setFrequencyActiveMHz(double frequencyMHz); diff --git a/src/blackmisc/aviomodulator.h b/src/blackmisc/aviomodulator.h index 7307dbf5d..e43d34f62 100644 --- a/src/blackmisc/aviomodulator.h +++ b/src/blackmisc/aviomodulator.h @@ -12,10 +12,10 @@ #ifndef BLACKMISC_AVIOMODULATORUNIT_H #define BLACKMISC_AVIOMODULATORUNIT_H -#include #include "blackmisc/propertyindex.h" #include "blackmisc/aviobase.h" #include "blackmisc/mathematics.h" +#include "blackmisc/blackmiscfreefunctions.h" using namespace BlackMisc::Math; @@ -96,6 +96,12 @@ namespace BlackMisc //! Enabled? void setEnabled(bool enable) { this->m_enabled = enable;} + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this->derived()); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(derived(), variant); } + //! \copydoc CValueObject::toJson virtual QJsonObject toJson() const override; @@ -249,6 +255,12 @@ namespace BlackMisc qint32 m_volumeOutput; //!< volume output bool m_enabled; //!< is enabled, used e.g. for mute etc. + //! Easy access to derived class (CRTP template parameter) + AVIO const *derived() const { return static_cast(this); } + + //! Easy access to derived class (CRTP template parameter) + AVIO *derived() { return static_cast(this); } + }; } // namespace diff --git a/src/blackmisc/aviotransponder.h b/src/blackmisc/aviotransponder.h index e1befe285..5afe4f9f3 100644 --- a/src/blackmisc/aviotransponder.h +++ b/src/blackmisc/aviotransponder.h @@ -84,12 +84,6 @@ namespace BlackMisc //! \copydoc CAvionicsBase::validValues virtual bool validValues() const override; - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } - //! Transponder mode as string QString getModeAsString() const { @@ -171,6 +165,12 @@ namespace BlackMisc //! \copydoc CValueObject::fromJson void fromJson(const QJsonObject &json) override; + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; diff --git a/src/blackmisc/avselcal.h b/src/blackmisc/avselcal.h index ebae5158e..dcbd1285d 100644 --- a/src/blackmisc/avselcal.h +++ b/src/blackmisc/avselcal.h @@ -40,11 +40,11 @@ namespace BlackMisc */ CSelcal(const char *code) : m_code(code) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Is valid? bool isValid() const { return CSelcal::isValidCode(this->m_code); } diff --git a/src/blackmisc/avtrack.h b/src/blackmisc/avtrack.h index 9283fd5f5..31c387b2a 100644 --- a/src/blackmisc/avtrack.h +++ b/src/blackmisc/avtrack.h @@ -46,10 +46,10 @@ namespace BlackMisc CTrack(BlackMisc::PhysicalQuantities::CAngle track, ReferenceNorth north) : BlackMisc::PhysicalQuantities::CAngle(track), m_north(north) {} //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! \copydoc CValueObject::getValueHash virtual uint getValueHash() const override; diff --git a/src/blackmisc/blackmiscfreefunctions.cpp b/src/blackmisc/blackmiscfreefunctions.cpp index 8c1a05293..60fbc3998 100644 --- a/src/blackmisc/blackmiscfreefunctions.cpp +++ b/src/blackmisc/blackmiscfreefunctions.cpp @@ -199,8 +199,8 @@ bool BlackMisc::equalQVariants(const QVariant &v1, const QVariant &v2) if (v1.userType() != v2.userType()) return false; // I have same types now - const CValueObject *cs1 = CValueObject::fromQVariant(v1); - const CValueObject *cs2 = CValueObject::fromQVariant(v2); + const CValueObject *cs1 = CValueObject::convertFromQVariant(v1); + const CValueObject *cs2 = CValueObject::convertFromQVariant(v2); if (cs1 && cs2) { int c = compare(*cs1, *cs2); @@ -264,8 +264,8 @@ int BlackMisc::compareQVariants(const QVariant &v1, const QVariant &v2) // BlackObject if (v1.type() == QVariant::UserType) { - const CValueObject *cs1 = CValueObject::fromQVariant(v1); - const CValueObject *cs2 = CValueObject::fromQVariant(v2); + const CValueObject *cs1 = CValueObject::convertFromQVariant(v1); + const CValueObject *cs2 = CValueObject::convertFromQVariant(v2); if (cs1 && cs2) { return compare(*cs1, *cs2); @@ -321,7 +321,7 @@ int BlackMisc::compareQVariants(const QVariant &v1, const QVariant &v2) QString BlackMisc::qVariantToString(const QVariant &qv, bool i18n) { if (qv.type() != QVariant::UserType) return qv.toString(); - const CValueObject *s = CValueObject::fromQVariant(qv); + const CValueObject *s = CValueObject::convertFromQVariant(qv); if (s) { return s->toQString(i18n); diff --git a/src/blackmisc/blackmiscfreefunctions.h b/src/blackmisc/blackmiscfreefunctions.h index ce1fc0827..48b2978d2 100644 --- a/src/blackmisc/blackmiscfreefunctions.h +++ b/src/blackmisc/blackmiscfreefunctions.h @@ -107,6 +107,18 @@ namespace BlackMisc */ QString qVariantToString(const QVariant &qv, bool i18n = false); + /*! + * Checked version from QVariant + */ + template void setFromQVariant(T *value, const QVariant &variant) + { + Q_ASSERT(variant.canConvert()); + if (variant.canConvert()) + { + (*value) = variant.value(); + } + } + /*! * Fix variant. Required if a variant "comes in" via DBus, * and represents a QDBusArgument rather than the real type. diff --git a/src/blackmisc/containerbase.h b/src/blackmisc/containerbase.h index 18c0ccff2..91de41a82 100644 --- a/src/blackmisc/containerbase.h +++ b/src/blackmisc/containerbase.h @@ -15,6 +15,7 @@ #include "valueobject.h" #include "range.h" #include "indexvariantmap.h" +#include "blackmiscfreefunctions.h" #include "predicates.h" #include "json.h" #include @@ -93,6 +94,9 @@ namespace BlackMisc //! \copydoc BlackMisc::CValueObject::toQVariant virtual QVariant toQVariant() const override { return QVariant::fromValue(derived()); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant< C >(&derived(), variant); } + //! \copydoc BlackMisc::CValueObject::getValueHash virtual uint getValueHash() const override { return qHash(&derived()); } diff --git a/src/blackmisc/coordinateecef.h b/src/blackmisc/coordinateecef.h index 20fafc179..ab5099303 100644 --- a/src/blackmisc/coordinateecef.h +++ b/src/blackmisc/coordinateecef.h @@ -38,10 +38,7 @@ namespace BlackMisc explicit CCoordinateEcef(const BlackMisc::Math::CVector3D vector) : CVector3DBase(vector.i(), vector.j(), vector.k()) {} //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } //! \brief x double x() const diff --git a/src/blackmisc/coordinategeodetic.h b/src/blackmisc/coordinategeodetic.h index 25226d075..05a980ddc 100644 --- a/src/blackmisc/coordinategeodetic.h +++ b/src/blackmisc/coordinategeodetic.h @@ -145,7 +145,10 @@ namespace BlackMisc const BlackMisc::PhysicalQuantities::CLength &geodeticHeight() const { return this->m_geodeticHeight; } //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; diff --git a/src/blackmisc/dictionary.h b/src/blackmisc/dictionary.h index 1c1d54357..66b74ecbc 100644 --- a/src/blackmisc/dictionary.h +++ b/src/blackmisc/dictionary.h @@ -207,9 +207,12 @@ namespace BlackMisc removeByValueIf(BlackMisc::Predicates::MemberEqual(membFunc, returnValue)); } - //! \copydoc BlackMisc::CValueObject::toQVariant + //! \copydoc CValueObject::toQVariant() virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! \copydoc BlackMisc::CValueObject::getValueHash virtual uint getValueHash() const override { return qHash(this); } diff --git a/src/blackmisc/geoearthangle.h b/src/blackmisc/geoearthangle.h index 3e26c9660..68c233e80 100644 --- a/src/blackmisc/geoearthangle.h +++ b/src/blackmisc/geoearthangle.h @@ -111,6 +111,12 @@ namespace BlackMisc //! \copydoc CValueObject::toIcon CIcon toIcon() const override; + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*derived()); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(derived(), variant); } + //! Register metadata static void registerMetadata(); diff --git a/src/blackmisc/hotkeyfunction.h b/src/blackmisc/hotkeyfunction.h index 1daac17f3..9cb8c4a3b 100644 --- a/src/blackmisc/hotkeyfunction.h +++ b/src/blackmisc/hotkeyfunction.h @@ -12,7 +12,8 @@ #ifndef BLACKMISC_HOTKEYFUNCTION_H #define BLACKMISC_HOTKEYFUNCTION_H -#include "valueobject.h" +#include "propertyindex.h" +#include "blackmiscfreefunctions.h" namespace BlackMisc { @@ -48,18 +49,11 @@ namespace BlackMisc //! Set function void setFunction(const Function &function) { m_function = function; } - //! \copydoc CValueObject::toQVariant + //! \copydoc CValueObject::toQVariant() virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } //! \copydoc CValueObject::fromQVariant - virtual void fromQVariant(const QVariant &variant) override - { - Q_ASSERT(variant.canConvert()); - if (variant.canConvert()) - { - (*this) = variant.value(); - } - } + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! \copydoc CValueObject::getValueHash virtual uint getValueHash() const override; diff --git a/src/blackmisc/hwkeyboardkey.h b/src/blackmisc/hwkeyboardkey.h index c525375f2..fbb265200 100644 --- a/src/blackmisc/hwkeyboardkey.h +++ b/src/blackmisc/hwkeyboardkey.h @@ -12,7 +12,8 @@ #ifndef BLACKMISC_KEYBOARDKEY_H #define BLACKMISC_KEYBOARDKEY_H -#include "valueobject.h" +#include "propertyindex.h" +#include "blackmiscfreefunctions.h" #include #include @@ -64,11 +65,11 @@ namespace BlackMisc //! Destructor ~CKeyboardKey() {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! \copydoc CValueObject::getValueHash virtual uint getValueHash() const override; diff --git a/src/blackmisc/hwkeyboardkeylist.h b/src/blackmisc/hwkeyboardkeylist.h index e6be04f4d..b56cb3a26 100644 --- a/src/blackmisc/hwkeyboardkeylist.h +++ b/src/blackmisc/hwkeyboardkeylist.h @@ -30,7 +30,7 @@ namespace BlackMisc CKeyboardKeyList(const CSequence &baseClass); //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } //! Register metadata static void registerMetadata(); diff --git a/src/blackmisc/icon.h b/src/blackmisc/icon.h index 282f57fd1..ec5b820db 100644 --- a/src/blackmisc/icon.h +++ b/src/blackmisc/icon.h @@ -31,9 +31,6 @@ namespace BlackMisc CIcon( CIcons::IconIndex index, const QString &descriptiveText) : m_index(static_cast(index)), m_descriptiveText(descriptiveText) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Get descriptive text const QString &getDescriptiveText() const { return this->m_descriptiveText; } @@ -65,7 +62,13 @@ namespace BlackMisc virtual QJsonObject toJson() const override; //! \copydoc CValueObject::fromJson - void fromJson(const QJsonObject &json) override; + virtual void fromJson(const QJsonObject &json) override; + + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Register metadata static void registerMetadata(); diff --git a/src/blackmisc/indexvariantmap.h b/src/blackmisc/indexvariantmap.h index b4045a86f..a84e84d61 100644 --- a/src/blackmisc/indexvariantmap.h +++ b/src/blackmisc/indexvariantmap.h @@ -41,9 +41,6 @@ namespace BlackMisc //! Single value constructor CIndexVariantMap(const CPropertyIndex &index, const QVariant &value); - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Destructor virtual ~CIndexVariantMap() {} @@ -92,6 +89,12 @@ namespace BlackMisc //! \copydoc CValueObject::getValueHash virtual uint getValueHash() const override; + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! register metadata static void registerMetadata(); diff --git a/src/blackmisc/mathmatrix1x3.h b/src/blackmisc/mathmatrix1x3.h index 0eb2fbf34..c06f3eb6e 100644 --- a/src/blackmisc/mathmatrix1x3.h +++ b/src/blackmisc/mathmatrix1x3.h @@ -41,14 +41,6 @@ namespace BlackMisc this->m_matrix(0, 1) = c2; this->m_matrix(0, 2) = c3; } - - /*! - * \copydoc CValueObject::toQVariant - */ - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } }; } // namespace diff --git a/src/blackmisc/mathmatrixbase.h b/src/blackmisc/mathmatrixbase.h index f6f8f2c40..895113198 100644 --- a/src/blackmisc/mathmatrixbase.h +++ b/src/blackmisc/mathmatrixbase.h @@ -8,8 +8,8 @@ #include "blackmisc/valueobject.h" #include "blackmisc/mathvector3dbase.h" +#include "blackmisc/blackmiscfreefunctions.h" #include -#include namespace BlackMisc { @@ -87,6 +87,12 @@ namespace BlackMisc //! \copydoc CValueObject::getValueHash virtual uint getValueHash() const override; + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*derived()); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(derived(), variant); } + //! \brief Equal operator == bool operator ==(const ImplMatrix &other) const { diff --git a/src/blackmisc/mathvector3d.h b/src/blackmisc/mathvector3d.h index 9c99276b2..7c78fbc83 100644 --- a/src/blackmisc/mathvector3d.h +++ b/src/blackmisc/mathvector3d.h @@ -39,14 +39,6 @@ namespace BlackMisc */ CVector3D(const CVector3D &other) : CVector3DBase(other) {} - /*! - * \copydoc CValueObject::toQVariant - */ - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } - /*! * \brief i * \return diff --git a/src/blackmisc/mathvector3dbase.h b/src/blackmisc/mathvector3dbase.h index 550f0e3cd..0d9ab058e 100644 --- a/src/blackmisc/mathvector3dbase.h +++ b/src/blackmisc/mathvector3dbase.h @@ -203,7 +203,13 @@ namespace BlackMisc virtual QJsonObject toJson() const override; //! \copydoc CValueObject::fromJson - void fromJson(const QJsonObject &json) override; + virtual void fromJson(const QJsonObject &json) override; + + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*derived()); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(derived(), variant); } //! Register metadata static void registerMetadata(); diff --git a/src/blackmisc/namevariantpair.h b/src/blackmisc/namevariantpair.h index f8822a826..ecc95d2e4 100644 --- a/src/blackmisc/namevariantpair.h +++ b/src/blackmisc/namevariantpair.h @@ -30,9 +30,6 @@ namespace BlackMisc //! Constructor. CNameVariantPair(const QString &name, const CVariant &variant, const CIcon &icon = CIcon()); - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Get name. const QString &getName() const { return m_name; } @@ -87,6 +84,12 @@ namespace BlackMisc //! \copydoc CValueObject::setPropertyByIndex(variant, index) virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + protected: //! \copydoc CValueObject::convertToQString() virtual QString convertToQString(bool i18n = false) const override; diff --git a/src/blackmisc/namevariantpairlist.h b/src/blackmisc/namevariantpairlist.h index 599b456fb..bd97ba867 100644 --- a/src/blackmisc/namevariantpairlist.h +++ b/src/blackmisc/namevariantpairlist.h @@ -36,9 +36,12 @@ namespace BlackMisc //! Get name index int getNameRowIndex(const QString &name); - //! CValueObject::toQVariant() + //! \copydoc CValueObject::toQVariant virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Register metadata static void registerMetadata(); diff --git a/src/blackmisc/nwaircraftmapping.h b/src/blackmisc/nwaircraftmapping.h index ca96a58c3..0d2196b1f 100644 --- a/src/blackmisc/nwaircraftmapping.h +++ b/src/blackmisc/nwaircraftmapping.h @@ -93,9 +93,18 @@ namespace BlackMisc //! \copydoc CValueObject::getValueHash() virtual uint getValueHash() const override; - //! \copydoc CValueObject::toQVariant() + //! \copydoc CValueObject::toQVariant virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + + //! \copydoc CValueObject::toJson + virtual QJsonObject toJson() const override; + + //! \copydoc CValueObject::fromJson + virtual void fromJson(const QJsonObject &json) override; + //! Matches model string? bool matchesModelString(const QString &modelString, Qt::CaseSensitivity sensitivity) const; @@ -105,12 +114,6 @@ namespace BlackMisc //! Register the metatypes static void registerMetadata(); - //! \copydoc CValueObject::toJson - virtual QJsonObject toJson() const override; - - //! \copydoc CValueObject::fromJson - virtual void fromJson(const QJsonObject &json) override; - //! Members static const QStringList &jsonMembers(); }; diff --git a/src/blackmisc/nwaircraftmappinglist.h b/src/blackmisc/nwaircraftmappinglist.h index 4c1c062bb..a035a1d31 100644 --- a/src/blackmisc/nwaircraftmappinglist.h +++ b/src/blackmisc/nwaircraftmappinglist.h @@ -35,9 +35,6 @@ namespace BlackMisc //! Construct from a base class object. CAircraftMappingList(const CSequence &other); - //! QVariant, required for DBus QVariant lists - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Find by ICAO code, empty fields treated as wildcards CAircraftMappingList findByIcaoCodeWildcard(const BlackMisc::Aviation::CAircraftIcao &searchIcao) const; @@ -47,9 +44,14 @@ namespace BlackMisc //! Find by model string CAircraftMappingList findByModelString(const QString modelString, Qt::CaseSensitivity sensitivity) const; + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Register metadata static void registerMetadata(); - }; } //namespace diff --git a/src/blackmisc/nwaircraftmodel.h b/src/blackmisc/nwaircraftmodel.h index 1559db599..92406b8dd 100644 --- a/src/blackmisc/nwaircraftmodel.h +++ b/src/blackmisc/nwaircraftmodel.h @@ -40,9 +40,6 @@ namespace BlackMisc //! Constructor. CAircraftModel(const QString &model, bool isQueriedString) : m_modelString(model), m_queriedModelStringFlag(isQueriedString) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Equal operator == bool operator ==(const CAircraftModel &other) const; @@ -52,6 +49,12 @@ namespace BlackMisc //! \copydoc CValueObject::getValueHash virtual uint getValueHash() const override; + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! \copydoc CValueObject::toJson virtual QJsonObject toJson() const override; diff --git a/src/blackmisc/nwclient.h b/src/blackmisc/nwclient.h index 8367590f7..7a68ffb6b 100644 --- a/src/blackmisc/nwclient.h +++ b/src/blackmisc/nwclient.h @@ -60,8 +60,6 @@ namespace BlackMisc //! Constructor. CClient(const CUser &user) : m_user(user) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } //! Equal operator == bool operator ==(const CClient &other) const; @@ -75,12 +73,18 @@ namespace BlackMisc //! \copydoc CValueObject::toJson virtual QJsonObject toJson() const override; - //! Callsign used with other client - const BlackMisc::Aviation::CCallsign &getCallsign() const { return this->m_user.getCallsign(); } - //! \copydoc CValueObject::fromJson void fromJson(const QJsonObject &json) override; + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + + //! Callsign used with other client + const BlackMisc::Aviation::CCallsign &getCallsign() const { return this->m_user.getCallsign(); } + //! Get capabilities CIndexVariantMap getCapabilities() const { return this->m_capabilities; } diff --git a/src/blackmisc/nwserver.h b/src/blackmisc/nwserver.h index db095565e..a69649ed8 100644 --- a/src/blackmisc/nwserver.h +++ b/src/blackmisc/nwserver.h @@ -43,9 +43,6 @@ namespace BlackMisc CServer(const QString &name, const QString &description, const QString &address, qint32 port, const CUser &user, bool isAcceptingConnections = true) : m_name(name), m_description(description), m_address(address), m_port(port), m_user(user), m_isAcceptingConnections(isAcceptingConnections) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Get address. const QString &getAddress() const { return m_address; } @@ -98,19 +95,25 @@ namespace BlackMisc virtual QJsonObject toJson() const override; //! \copydoc CValueObject::fromJson - void fromJson(const QJsonObject &json) override; + virtual void fromJson(const QJsonObject &json) override; - //! Register metadata - static void registerMetadata(); + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + + //! \copydoc CValueObject::propertyByIndex(int) + virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; + + //! \copydoc CValueObject::setPropertyByIndex(const QVariant &, int index) + virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; //! \copydoc TupleConverter<>::jsonMembers() static const QStringList &jsonMembers(); - //! \copydoc CValueObject::propertyByIndex(int) - QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - - //! \copydoc CValueObject::setPropertyByIndex(const QVariant &, int index) - void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; + //! Register metadata + static void registerMetadata(); protected: //! \copydoc CValueObject::convertToQString() diff --git a/src/blackmisc/nwserverlist.h b/src/blackmisc/nwserverlist.h index 17957e724..0ff00d2ca 100644 --- a/src/blackmisc/nwserverlist.h +++ b/src/blackmisc/nwserverlist.h @@ -36,6 +36,9 @@ namespace BlackMisc //! \copydoc CValueObject::toQVariant virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Register metadata static void registerMetadata(); diff --git a/src/blackmisc/nwtextmessage.h b/src/blackmisc/nwtextmessage.h index 7dd0bbaf1..7df82cd5f 100644 --- a/src/blackmisc/nwtextmessage.h +++ b/src/blackmisc/nwtextmessage.h @@ -168,10 +168,10 @@ namespace BlackMisc virtual uint getValueHash() const override; //! \copydoc CValueObject::toQVariant() - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! \brief Register metadata static void registerMetadata(); diff --git a/src/blackmisc/nwtextmessagelist.h b/src/blackmisc/nwtextmessagelist.h index 28df19423..b4bb5eed0 100644 --- a/src/blackmisc/nwtextmessagelist.h +++ b/src/blackmisc/nwtextmessagelist.h @@ -50,9 +50,6 @@ namespace BlackMisc //! Construct from a base class object. CTextMessageList(const CSequence &other); - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const { return QVariant::fromValue(*this); } - //! Private messages CTextMessageList getPrivateMessages() const; @@ -71,6 +68,12 @@ namespace BlackMisc //! Toggle all sender receivers void toggleSenderRecipients(); + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Register metadata static void registerMetadata(); }; diff --git a/src/blackmisc/nwuser.h b/src/blackmisc/nwuser.h index 18459dc5e..bd3a74351 100644 --- a/src/blackmisc/nwuser.h +++ b/src/blackmisc/nwuser.h @@ -57,12 +57,6 @@ namespace BlackMisc : m_id(id), m_realname(realname), m_email(email), m_password(password), m_callsign(callsign) {} - //! \copydoc CValueObject::toQVariant() - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } - //! Get full name. QString getRealName() const { return m_realname; } @@ -126,6 +120,12 @@ namespace BlackMisc //! \copydoc CValueObject::getValueHash() virtual uint getValueHash() const override; + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! \copydoc CValueObject::toIcon() virtual BlackMisc::CIcon toIcon() const override { return this->getCallsign().toIcon(); } diff --git a/src/blackmisc/nwuserlist.h b/src/blackmisc/nwuserlist.h index c5a563f37..40b7ed128 100644 --- a/src/blackmisc/nwuserlist.h +++ b/src/blackmisc/nwuserlist.h @@ -27,8 +27,11 @@ namespace BlackMisc //! Construct from a base class object. CUserList(const CSequence &other); - //! QVariant, required for DBus QVariant lists - virtual QVariant asQVariant() const { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Register metadata static void registerMetadata(); diff --git a/src/blackmisc/nwvoicecapabilities.h b/src/blackmisc/nwvoicecapabilities.h index d079f7652..41db45ef3 100644 --- a/src/blackmisc/nwvoicecapabilities.h +++ b/src/blackmisc/nwvoicecapabilities.h @@ -13,6 +13,7 @@ //! \file #include "valueobject.h" +#include "blackmiscfreefunctions.h" namespace BlackMisc { @@ -44,9 +45,6 @@ namespace BlackMisc //! Constructor. CVoiceCapabilities(const QString &flightPlanRemarks); - //! \copydoc CValueObject::toQVariant() - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Get capabilities VoiceCapabilities getCapabilities() const { return static_cast(m_voiceCapabilities); } @@ -65,6 +63,12 @@ namespace BlackMisc //! \copydoc CValueObject::getValueHash() virtual uint getValueHash() const override; + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! \copydoc CValueObject::toJson virtual QJsonObject toJson() const override; diff --git a/src/blackmisc/pqacceleration.h b/src/blackmisc/pqacceleration.h index 41edcdc78..57a45ff1b 100644 --- a/src/blackmisc/pqacceleration.h +++ b/src/blackmisc/pqacceleration.h @@ -31,9 +31,6 @@ namespace BlackMisc //! \copydoc CPhysicalQuantity(const QString &unitString) CAcceleration(const QString &unitString) : CPhysicalQuantity(unitString) {} - //! copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Virtual destructor virtual ~CAcceleration() {} }; diff --git a/src/blackmisc/pqangle.cpp b/src/blackmisc/pqangle.cpp index 592f4df20..9bde1510f 100644 --- a/src/blackmisc/pqangle.cpp +++ b/src/blackmisc/pqangle.cpp @@ -9,6 +9,7 @@ #include "iconlist.h" #include "pqangle.h" +#include "avheading.h" namespace BlackMisc { diff --git a/src/blackmisc/pqangle.h b/src/blackmisc/pqangle.h index a45a56662..e00b6f089 100644 --- a/src/blackmisc/pqangle.h +++ b/src/blackmisc/pqangle.h @@ -55,14 +55,17 @@ namespace BlackMisc degrees + minutes / 100.0, CAngleUnit::sexagesimalDegMin()) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! Virtual destructor + virtual ~CAngle() {} //! \copydoc CValueObject::toIcon virtual BlackMisc::CIcon toIcon() const override; - //! Virtual destructor - virtual ~CAngle() {} + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Value as factor of PI (e.g. 0.5PI) double piFactor() const; @@ -70,8 +73,6 @@ namespace BlackMisc //! PI as convenience method static const double &PI(); - private: - }; } // namespace } // namespace diff --git a/src/blackmisc/pqbase.h b/src/blackmisc/pqbase.h index 8a5b13a2c..cc97ae971 100644 --- a/src/blackmisc/pqbase.h +++ b/src/blackmisc/pqbase.h @@ -14,6 +14,7 @@ #include "blackmisc/valueobject.h" #include "blackmisc/mathematics.h" +#include "blackmisc/blackmiscfreefunctions.h" #include #include #include @@ -269,21 +270,24 @@ namespace BlackMisc CMeasurementUnit() : m_name("none"), m_symbol(""), m_epsilon(0), m_displayDigits(0) {} - /*! - * \copydoc CValueObject::toQVariant - */ - virtual QVariant toQVariant() const override - { - // used with None! - return QVariant::fromValue(*this); - } - //! Equal operator == bool operator == (const CMeasurementUnit &other) const; //! Unequal operator != bool operator != (const CMeasurementUnit &other) const; + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + + //! \copydoc CValueObject::getValueHash + virtual uint getValueHash() const override + { + return qHash(this->getName()); + } + //! Name such as "meter" QString getName(bool i18n = false) const { @@ -296,14 +300,6 @@ namespace BlackMisc return i18n ? QCoreApplication::translate("CMeasurementUnit", this->m_symbol.toStdString().c_str()) : this->m_symbol; } - /*! - * \copydoc CValueObject::getValueHash - */ - virtual uint getValueHash() const override - { - return qHash(this->getName()); - } - //! Rounded value double roundValue(double value, int digits = -1) const; diff --git a/src/blackmisc/pqfrequency.h b/src/blackmisc/pqfrequency.h index 6f6c3005e..cb9ad3b93 100644 --- a/src/blackmisc/pqfrequency.h +++ b/src/blackmisc/pqfrequency.h @@ -35,12 +35,6 @@ namespace BlackMisc //! \copydoc CPhysicalQuantity(const QString &unitString) CFrequency(const QString &unitString) : CPhysicalQuantity(unitString) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } - //! Virtual destructor virtual ~CFrequency() {} }; diff --git a/src/blackmisc/pqlength.h b/src/blackmisc/pqlength.h index d5b9a8358..94b6298d0 100644 --- a/src/blackmisc/pqlength.h +++ b/src/blackmisc/pqlength.h @@ -31,12 +31,6 @@ namespace BlackMisc //! \copydoc CPhysicalQuantity(const QString &unitString) CLength(const QString &unitString) : CPhysicalQuantity(unitString) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } - //! Virtual destructor virtual ~CLength() {} }; diff --git a/src/blackmisc/pqmass.h b/src/blackmisc/pqmass.h index 8254b5076..386a33c00 100644 --- a/src/blackmisc/pqmass.h +++ b/src/blackmisc/pqmass.h @@ -33,12 +33,6 @@ namespace BlackMisc //! \copydoc CPhysicalQuantity(const QString &unitString) CMass(const QString &unitString) : CPhysicalQuantity(unitString) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } - //! Virtual destructor virtual ~CMass() {} }; diff --git a/src/blackmisc/pqphysicalquantity.h b/src/blackmisc/pqphysicalquantity.h index c9936582d..3d99ee407 100644 --- a/src/blackmisc/pqphysicalquantity.h +++ b/src/blackmisc/pqphysicalquantity.h @@ -17,6 +17,7 @@ #include "blackmisc/propertyindex.h" #include "blackmisc/mathematics.h" #include "blackmisc/pqstring.h" +#include "blackmisc/blackmiscfreefunctions.h" #include #include #include @@ -205,6 +206,12 @@ namespace BlackMisc //! \copydoc CValueObject::getValueHash virtual uint getValueHash() const override; + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this->derived()); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(derived(), variant); } + //! \copydoc CValueObject::toJson virtual QJsonObject toJson() const override; diff --git a/src/blackmisc/pqpressure.h b/src/blackmisc/pqpressure.h index 594b736f3..710fc6dec 100644 --- a/src/blackmisc/pqpressure.h +++ b/src/blackmisc/pqpressure.h @@ -34,12 +34,6 @@ namespace BlackMisc //! \copydoc CPhysicalQuantity(const QString &unitString) CPressure(const QString &unitString) : CPhysicalQuantity(unitString) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } - //! Virtual destructor virtual ~CPressure() {} }; diff --git a/src/blackmisc/pqspeed.h b/src/blackmisc/pqspeed.h index 2c58dc483..574d068d9 100644 --- a/src/blackmisc/pqspeed.h +++ b/src/blackmisc/pqspeed.h @@ -34,12 +34,6 @@ namespace BlackMisc //! \copydoc CPhysicalQuantity(const QString &unitString) CSpeed(const QString &unitString) : CPhysicalQuantity(unitString) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } - //! Destructor virtual ~CSpeed() {} }; diff --git a/src/blackmisc/pqstring.h b/src/blackmisc/pqstring.h index ae37d5bc1..c56b6a12c 100644 --- a/src/blackmisc/pqstring.h +++ b/src/blackmisc/pqstring.h @@ -13,6 +13,7 @@ #define BLACKMISC_PQSTRING_H #include "blackmisc/valueobject.h" +#include "blackmisc/blackmiscfreefunctions.h" #include namespace BlackMisc @@ -69,12 +70,6 @@ namespace BlackMisc //! Constructor, for values such as 10km/h CPqString(const QString &value) : m_string(value) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } - //! \copydoc CValueObject::getMetaTypeId int getMetaTypeId() const override; @@ -87,6 +82,12 @@ namespace BlackMisc //! Unequal operator != bool operator !=(const CPqString &other) const; + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Register metadata static void registerMetadata(); diff --git a/src/blackmisc/pqtemperature.h b/src/blackmisc/pqtemperature.h index d8f379629..80a0f2614 100644 --- a/src/blackmisc/pqtemperature.h +++ b/src/blackmisc/pqtemperature.h @@ -33,9 +33,6 @@ namespace BlackMisc //! \copydoc CPhysicalQuantity(const QString &unitString) CTemperature(const QString &unitString) : CPhysicalQuantity(unitString) {} - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Destructor virtual ~CTemperature() {} }; diff --git a/src/blackmisc/pqtime.h b/src/blackmisc/pqtime.h index a11c27db2..64a4d1a80 100644 --- a/src/blackmisc/pqtime.h +++ b/src/blackmisc/pqtime.h @@ -49,9 +49,6 @@ namespace BlackMisc //! \copydoc CPhysicalQuantity(const QString &unitString) CTime(const QString &unitString) : CPhysicalQuantity(0, CTimeUnit::nullUnit()) { this->parseFromString(unitString); } - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Destructor virtual ~CTime() {} diff --git a/src/blackmisc/pqunits.h b/src/blackmisc/pqunits.h index 8f03c4899..e5f519567 100644 --- a/src/blackmisc/pqunits.h +++ b/src/blackmisc/pqunits.h @@ -16,6 +16,7 @@ #undef min #include "blackmisc/pqbase.h" +#include "blackmisc/blackmiscfreefunctions.h" #include #include #include @@ -56,13 +57,11 @@ namespace BlackMisc //! Default constructor, required for Qt Metasystem CLengthUnit() : CMeasurementUnit(defaultUnit()) {} - /*! - * \copydoc CValueObject::toQVariant - */ - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Default unit static const CLengthUnit &defaultUnit() { return m(); } @@ -171,13 +170,11 @@ namespace BlackMisc //! Default constructor, required for Qt Metasystem CAngleUnit() : CMeasurementUnit(defaultUnit()) {} - /*! - * \copydoc CValueObject::toQVariant - */ - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Default unit static const CAngleUnit &defaultUnit() { return deg(); } @@ -269,13 +266,11 @@ namespace BlackMisc //! Default constructor, required for Qt Metasystem CFrequencyUnit() : CMeasurementUnit(defaultUnit()) {} - /*! - * \copydoc CValueObject::toQVariant - */ - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Default unit static const CFrequencyUnit &defaultUnit() { return Hz(); } @@ -360,13 +355,11 @@ namespace BlackMisc //! Default constructor, required for Qt Metasystem CMassUnit() : CMeasurementUnit(defaultUnit()) {} - /*! - * \copydoc CValueObject::toQVariant - */ - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Default unit static const CMassUnit &defaultUnit() { return kg(); } @@ -461,13 +454,11 @@ namespace BlackMisc //! Default constructor, required for Qt Metasystem CPressureUnit() : CMeasurementUnit(defaultUnit()) {} - /*! - * \copydoc CValueObject::toQVariant - */ - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Default unit static const CPressureUnit &defaultUnit() { return hPa(); } @@ -583,13 +574,11 @@ namespace BlackMisc //! Default constructor, required for Qt Metasystem CTemperatureUnit() : CMeasurementUnit(defaultUnit()) {} - /*! - * \copydoc CValueObject::toQVariant - */ - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Default unit static const CTemperatureUnit &defaultUnit() { return C(); } @@ -669,13 +658,11 @@ namespace BlackMisc //! Default constructor, required for Qt Metasystem CSpeedUnit() : CMeasurementUnit(defaultUnit()) {} - /*! - * \copydoc CValueObject::toQVariant - */ - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Default unit static const CSpeedUnit &defaultUnit() { return m_s(); } @@ -780,13 +767,11 @@ namespace BlackMisc //! Default constructor, required for Qt Metasystem CTimeUnit() : CMeasurementUnit(defaultUnit()) {} - /*! - * \copydoc CValueObject::toQVariant - */ - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Default unit static const CTimeUnit &defaultUnit() { return s(); } @@ -910,13 +895,11 @@ namespace BlackMisc //! Default constructor, required for Qt Metasystem CAccelerationUnit() : CMeasurementUnit(defaultUnit()) {} - /*! - * \copydoc CValueObject::toQVariant - */ - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Default unit static const CAccelerationUnit &defaultUnit() { return m_s2(); } diff --git a/src/blackmisc/propertyindex.h b/src/blackmisc/propertyindex.h index 94915f1ec..232db03c7 100644 --- a/src/blackmisc/propertyindex.h +++ b/src/blackmisc/propertyindex.h @@ -13,6 +13,7 @@ #define BLACKMISC_PROPERTYINDEX_H #include "valueobject.h" +#include "blackmiscfreefunctions.h" #include namespace BlackMisc @@ -95,18 +96,11 @@ namespace BlackMisc //! \copydoc CValueObject::CPropertyIndexlueHash() virtual uint getValueHash() const override; - //! CValueObject::toQVariant() + //! \copydoc CValueObject::toQVariant virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } //! \copydoc CValueObject::fromQVariant - virtual void fromQVariant(const QVariant &variant) override - { - Q_ASSERT(variant.canConvert()); - if (variant.canConvert()) - { - (*this) = variant.value(); - } - } + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! \copydoc CValueObject::toJson virtual QJsonObject toJson() const override; diff --git a/src/blackmisc/setaudio.h b/src/blackmisc/setaudio.h index f4d329fb6..d1099cff5 100644 --- a/src/blackmisc/setaudio.h +++ b/src/blackmisc/setaudio.h @@ -40,10 +40,10 @@ namespace BlackMisc } //! \copydoc CValueObject::toQVariant() - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Notification flag (play notification?) bool getNotificationFlag(BlackSound::CNotificationSounds::Notification notification) const; diff --git a/src/blackmisc/setkeyboardhotkey.h b/src/blackmisc/setkeyboardhotkey.h index d01466503..28fcf05e2 100644 --- a/src/blackmisc/setkeyboardhotkey.h +++ b/src/blackmisc/setkeyboardhotkey.h @@ -15,6 +15,7 @@ #include "propertyindex.h" #include "hwkeyboardkey.h" #include "hotkeyfunction.h" +#include "blackmiscfreefunctions.h" #include #include @@ -55,14 +56,7 @@ namespace BlackMisc virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } //! \copydoc CValueObject::fromQVariant - virtual void fromQVariant(const QVariant &variant) override - { - Q_ASSERT(variant.canConvert()); - if (variant.canConvert()) - { - (*this) = variant.value(); - } - } + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! \copydoc CValueObject::getValueHash virtual uint getValueHash() const override; diff --git a/src/blackmisc/setkeyboardhotkeylist.h b/src/blackmisc/setkeyboardhotkeylist.h index 1cf99435b..842fdac17 100644 --- a/src/blackmisc/setkeyboardhotkeylist.h +++ b/src/blackmisc/setkeyboardhotkeylist.h @@ -30,23 +30,27 @@ namespace BlackMisc //! Construct from a base class object. CSettingKeyboardHotkeyList(const CSequence &baseClass); - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Contains given hotkey function? bool containsFunction(const CHotkeyFunction &function) const; //! Key for given function BlackMisc::Settings::CSettingKeyboardHotkey keyForFunction(const CHotkeyFunction &function) const; - //! Register metadata - static void registerMetadata(); - /*! * Fill the list with hotkeys * \param reset true, list will be be reset, otherwise values will not be overridde */ void initAsHotkeyList(bool reset = true); + + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + + //! Register metadata + static void registerMetadata(); + }; } //namespace diff --git a/src/blackmisc/setnetwork.h b/src/blackmisc/setnetwork.h index 6973ca403..c564e0fbb 100644 --- a/src/blackmisc/setnetwork.h +++ b/src/blackmisc/setnetwork.h @@ -64,10 +64,10 @@ namespace BlackMisc } //! \copydoc CValueObject::toQVariant() - virtual QVariant toQVariant() const override - { - return QVariant::fromValue(*this); - } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! Value object, traffic network server objects BlackMisc::Network::CServerList getTrafficNetworkServers() const { return m_trafficNetworkServers; } diff --git a/src/blackmisc/statusmessage.h b/src/blackmisc/statusmessage.h index f9232188f..5e4bb5381 100644 --- a/src/blackmisc/statusmessage.h +++ b/src/blackmisc/statusmessage.h @@ -87,6 +87,9 @@ namespace BlackMisc //! \copydoc CValueObject::toQVariant() virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Type as string const QString &getTypeAsString() const; diff --git a/src/blackmisc/statusmessagelist.h b/src/blackmisc/statusmessagelist.h index 44b5501de..7fcf12c70 100644 --- a/src/blackmisc/statusmessagelist.h +++ b/src/blackmisc/statusmessagelist.h @@ -38,12 +38,14 @@ namespace BlackMisc //! Find by severity CStatusMessageList findBySeverity(CStatusMessage::StatusSeverity severity) const; - //! \copydoc CValueObject::asQVariant + //! \copydoc CValueObject::toQVariant virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Register metadata of unit and quantity static void registerMetadata(); - }; } diff --git a/src/blackmisc/valueobject.cpp b/src/blackmisc/valueobject.cpp index 87c547af4..e6c3a961f 100644 --- a/src/blackmisc/valueobject.cpp +++ b/src/blackmisc/valueobject.cpp @@ -103,17 +103,17 @@ namespace BlackMisc /* * Return backing streamable object (if any) */ - const CValueObject *CValueObject::fromQVariant(const QVariant &qv) + const CValueObject *CValueObject::convertFromQVariant(const QVariant &variant) { - if (!qv.isValid()) return nullptr; - QVariant::Type t = qv.type(); - uint ut = qv.userType(); + if (!variant.isValid()) return nullptr; + QVariant::Type t = variant.type(); + uint ut = variant.userType(); if (t != QVariant::UserType) return nullptr; // not a user type if (ut <= QVariant::UserType) return nullptr; // complex Qt type - if (qv.canConvert()) return nullptr; // not unstreamed yet + if (variant.canConvert()) return nullptr; // not unstreamed yet // this cast cannot be dynamic, so the above conditions are crucical - const CValueObject *vo = static_cast(qv.constData()); + const CValueObject *vo = static_cast(variant.constData()); return vo; } diff --git a/src/blackmisc/valueobject.h b/src/blackmisc/valueobject.h index 1a73aa468..9cdf76be8 100644 --- a/src/blackmisc/valueobject.h +++ b/src/blackmisc/valueobject.h @@ -192,6 +192,9 @@ namespace BlackMisc //! Virtual method to return CVariant virtual CVariant toCVariant() const { return CVariant(this->toQVariant()); } + //! Set from QVariant + virtual void fromQVariant(const QVariant &variant) = 0; + //! Contribute to JSON object virtual QJsonObject toJson() const { QJsonObject json; return json;} @@ -217,7 +220,7 @@ namespace BlackMisc virtual QString propertyByIndexAsString(const CPropertyIndex &index, bool i18n = false) const; //! The stored object as CValueObject - static const CValueObject *fromQVariant(const QVariant &qv); + static const CValueObject *convertFromQVariant(const QVariant &variant); protected: //! Default constructor diff --git a/src/blackmisc/variant.cpp b/src/blackmisc/variant.cpp index c7bbb025b..d5a899ea2 100644 --- a/src/blackmisc/variant.cpp +++ b/src/blackmisc/variant.cpp @@ -26,7 +26,7 @@ namespace BlackMisc { if (type() == QVariant::UserType) { - const CValueObject *s = CValueObject::fromQVariant(m_v); // FIXME this will return garbage if value is not a CValueObject + const CValueObject *s = CValueObject::convertFromQVariant(m_v); // FIXME this will return garbage if value is not a CValueObject Q_ASSERT(s); if (s) { @@ -133,7 +133,7 @@ namespace BlackMisc { // value object? const QVariant qv = this->toQVariant(); - const CValueObject *cv = CValueObject::fromQVariant(qv); + const CValueObject *cv = CValueObject::convertFromQVariant(qv); if (cv) { h = cv->getValueHash(); @@ -171,6 +171,4 @@ namespace BlackMisc var = fixQVariantFromDbusArgument(dbusVar.variant(), QMetaType::type(qPrintable(typeName))); return arg; } - - } // namespace diff --git a/src/blackmisc/voiceroom.h b/src/blackmisc/voiceroom.h index d814780bd..427f57bd5 100644 --- a/src/blackmisc/voiceroom.h +++ b/src/blackmisc/voiceroom.h @@ -10,6 +10,7 @@ //! \file #include "propertyindex.h" +#include "blackmiscfreefunctions.h" #include #ifndef BLACKMISC_VOICEROOM_H @@ -46,9 +47,6 @@ namespace BlackMisc //! Constructor. CVoiceRoom(const QString &voiceRoomUrl, bool connected = false); - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Get the host name const QString &getHostname() const { return m_hostname; } @@ -110,6 +108,12 @@ namespace BlackMisc //! \copydoc CValueObject::fromJson void fromJson(const QJsonObject &json) override; + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Register metadata static void registerMetadata(); diff --git a/src/blackmisc/voiceroomlist.h b/src/blackmisc/voiceroomlist.h index dc7050b90..1153af546 100644 --- a/src/blackmisc/voiceroomlist.h +++ b/src/blackmisc/voiceroomlist.h @@ -38,6 +38,9 @@ namespace BlackMisc //! \copydoc CValueObject::toQVariant virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! \brief Register metadata static void registerMetadata(); diff --git a/src/blacksim/fscommon/aircraftcfgentries.h b/src/blacksim/fscommon/aircraftcfgentries.h index f420f4d8b..e04b1db8b 100644 --- a/src/blacksim/fscommon/aircraftcfgentries.h +++ b/src/blacksim/fscommon/aircraftcfgentries.h @@ -13,7 +13,6 @@ #define BLACKSIM_FSCOMMON_AIRCRAFTCFGENTRY_H #include "blackmisc/propertyindex.h" - #include namespace BlackSim @@ -103,9 +102,12 @@ namespace BlackSim //! \copydoc CValueObject::getValueHash() virtual uint getValueHash() const override; - //! \copydoc CValueObject::toQVariant() + //! \copydoc CValueObject::toQVariant virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! \copydoc CValueObject::toJson virtual QJsonObject toJson() const override; diff --git a/src/blacksim/fscommon/aircraftcfgentrieslist.h b/src/blacksim/fscommon/aircraftcfgentrieslist.h index ea378f44e..6b721e188 100644 --- a/src/blacksim/fscommon/aircraftcfgentrieslist.h +++ b/src/blacksim/fscommon/aircraftcfgentrieslist.h @@ -77,7 +77,12 @@ namespace BlackSim //! Contains model with title? bool containsModeWithTitle(const QString &title, Qt::CaseSensitivity caseSensitivity = Qt::CaseInsensitive); - //! \brief Unknown entries + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Unknown entries static const CAircraftCfgEntries &UnknownCfgEntries() { diff --git a/src/blacksim/fscommon/aircraftmapping.h b/src/blacksim/fscommon/aircraftmapping.h index 623095e3f..c08171f89 100644 --- a/src/blacksim/fscommon/aircraftmapping.h +++ b/src/blacksim/fscommon/aircraftmapping.h @@ -189,12 +189,15 @@ namespace BlackSim //! \copydoc CValueObject::setPropertyByIndex() void setPropertyByIndex(const QVariant &value, const BlackMisc::CPropertyIndex &index) override; - //! \copydoc CValueObject::toQVariant() - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! \copydoc CValueObject::getValueHash() virtual uint getValueHash() const override; + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Current UTC timestamp static QString currentUtcTimestamp() { diff --git a/src/blacksim/fscommon/aircraftmappinglist.h b/src/blacksim/fscommon/aircraftmappinglist.h index 76cfe5c67..e0d132e6e 100644 --- a/src/blacksim/fscommon/aircraftmappinglist.h +++ b/src/blacksim/fscommon/aircraftmappinglist.h @@ -35,7 +35,12 @@ namespace BlackSim //! Virtual destructor virtual ~CAircraftMappingList() {} - //! \brief Unknown mapping + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! Unknown mapping static const CAircraftMapping &UnknownMapping() { diff --git a/src/blacksim/setsimulator.h b/src/blacksim/setsimulator.h index f57e197f1..c619bd643 100644 --- a/src/blacksim/setsimulator.h +++ b/src/blacksim/setsimulator.h @@ -53,9 +53,6 @@ namespace BlackSim return value; } - //! \copydoc CValueObject::toQVariant() - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Selected driver const BlackSim::CSimulatorInfo &getSelectedPlugin() const { return this->m_selectedPlugin; } @@ -80,6 +77,9 @@ namespace BlackSim //! Unequal operator != bool operator !=(const CSettingsSimulator &other) const; + //! Init with meaningful default values + void initDefaultValues(); + //! \copydoc BlackCore::IContextSettings virtual BlackMisc::CStatusMessageList value(const QString &path, const QString &command, const BlackMisc::CVariant &value, bool &changedFlag); @@ -92,8 +92,11 @@ namespace BlackSim //! \copydoc CValueObject::fromJson virtual void fromJson(const QJsonObject &json) override; - //! Init with meaningful default values - void initDefaultValues(); + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } //! \copydoc CValueObject::registerMetadata static void registerMetadata(); diff --git a/src/blacksim/simulatorinfo.h b/src/blacksim/simulatorinfo.h index ca1f065bd..c3b32c2ae 100644 --- a/src/blacksim/simulatorinfo.h +++ b/src/blacksim/simulatorinfo.h @@ -19,18 +19,12 @@ namespace BlackSim //! Unspecified simulator bool isUnspecified() const { return this->m_shortName.isEmpty() || this->m_shortName.startsWith("Unspecified", Qt::CaseInsensitive); } - //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - //! Equal operator == bool operator ==(const CSimulatorInfo &other) const; //! Unequal operator != bool operator !=(const CSimulatorInfo &other) const; - //! \copydoc CValueObject::getValueHash() - virtual uint getValueHash() const override; - //! Single setting value QVariant getSimulatorSetupValue(int index) const; @@ -49,6 +43,15 @@ namespace BlackSim //! Compare on names only, ignore setup bool isSameSimulator(const CSimulatorInfo &otherSimulator) const; + //! \copydoc CValueObject::getValueHash() + virtual uint getValueHash() const override; + + //! \copydoc CValueObject::toQVariant() + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } + + //! \copydoc CValueObject::fromQVariant + virtual void fromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); } + //! \copydoc CValueObject::toJson virtual QJsonObject toJson() const override;