diff --git a/src/blackmisc/audiodevicelist.h b/src/blackmisc/audiodevicelist.h index 1fe814ba0..8a3ac04d0 100644 --- a/src/blackmisc/audiodevicelist.h +++ b/src/blackmisc/audiodevicelist.h @@ -38,14 +38,8 @@ namespace BlackMisc */ CAudioDeviceList(const CSequence &other); - /*! - * \brief QVariant, required for DBus QVariant lists - * \return - */ - virtual QVariant asQVariant() const - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } /*! * \brief Get output devices in that list diff --git a/src/blackmisc/avaircraft.cpp b/src/blackmisc/avaircraft.cpp index 1318f4bc6..dda9ccdf7 100644 --- a/src/blackmisc/avaircraft.cpp +++ b/src/blackmisc/avaircraft.cpp @@ -318,15 +318,15 @@ namespace BlackMisc */ QJsonObject CAircraft::toJson() const { - return BlackMisc::serializeJson(CAircraft::jsonMembers(), TupleConverter::toTuple(*this)); + return BlackMisc::serializeJson(TupleConverter::toMetaTuple(*this)); } /* - * To JSON + * From JSON */ void CAircraft::fromJson(const QJsonObject &json) { - BlackMisc::deserializeJson(json, CAircraft::jsonMembers(), TupleConverter::toTuple(*this)); + BlackMisc::deserializeJson(json, TupleConverter::toMetaTuple(*this)); } /* diff --git a/src/blackmisc/avaircraftlist.h b/src/blackmisc/avaircraftlist.h index 5d58edf61..f81a0728a 100644 --- a/src/blackmisc/avaircraftlist.h +++ b/src/blackmisc/avaircraftlist.h @@ -35,10 +35,7 @@ namespace BlackMisc CAircraftList(const CSequence &other); //! \copydoc CValueObject::toQVariant - virtual QVariant toQVariant() const - { - return QVariant::fromValue(*this); - } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } //! Find 0..n stations by callsign CAircraftList findByCallsign(const CCallsign &callsign) const; diff --git a/src/blackmisc/avairport.cpp b/src/blackmisc/avairport.cpp index c2b40adb8..f5d5e7dfc 100644 --- a/src/blackmisc/avairport.cpp +++ b/src/blackmisc/avairport.cpp @@ -71,7 +71,7 @@ namespace BlackMisc */ QJsonObject CAirport::toJson() const { - return BlackMisc::serializeJson(CAirport::jsonMembers(), TupleConverter::toTuple(*this)); + return BlackMisc::serializeJson(TupleConverter::toMetaTuple(*this)); } /* @@ -79,7 +79,7 @@ namespace BlackMisc */ void CAirport::fromJson(const QJsonObject &json) { - BlackMisc::deserializeJson(json, CAirport::jsonMembers(), TupleConverter::toTuple(*this)); + BlackMisc::deserializeJson(json, TupleConverter::toMetaTuple(*this)); } /* diff --git a/src/blackmisc/avairporticao.cpp b/src/blackmisc/avairporticao.cpp index 2b891ec98..3f3e41d42 100644 --- a/src/blackmisc/avairporticao.cpp +++ b/src/blackmisc/avairporticao.cpp @@ -71,6 +71,9 @@ namespace BlackMisc return TupleConverter::jsonMembers(); } + /* + * Unify ICAO code + */ QString CAirportIcao::unifyAirportCode(const QString &icaoCode) { QString code = icaoCode.trimmed().toUpper(); @@ -79,6 +82,15 @@ namespace BlackMisc return (reg.exactMatch(code)) ? code : ""; } + /* + * Valid ICAO designator? + */ + bool CAirportIcao::isValidIcaoDesignator(const QString &icaoCode) + { + QString icao = unifyAirportCode(icaoCode); + return icao.length() == 4; + } + /* * Equal? */ diff --git a/src/blackmisc/avairporticao.h b/src/blackmisc/avairporticao.h index f5fe69c17..b4e37c9bb 100644 --- a/src/blackmisc/avairporticao.h +++ b/src/blackmisc/avairporticao.h @@ -70,6 +70,9 @@ namespace BlackMisc //! Unify code static QString unifyAirportCode(const QString &icaoCode); + //! Valid ICAO designator + static bool isValidIcaoDesignator(const QString &icaoCode); + protected: //! \copydoc CValueObject::convertToQString() virtual QString convertToQString(bool i18n = false) const override; diff --git a/src/blackmisc/avairportlist.h b/src/blackmisc/avairportlist.h index 52ab771f2..92efbce88 100644 --- a/src/blackmisc/avairportlist.h +++ b/src/blackmisc/avairportlist.h @@ -32,7 +32,7 @@ namespace BlackMisc CAirportList(const CSequence &other); //! \copydoc CValueObject::toQVariant() - virtual QVariant toQVariant() const { return QVariant::fromValue(*this); } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } //! Find 0..n airports by ICAO code CAirportList findByIcao(const CAirportIcao &icao) const; diff --git a/src/blackmisc/avatcstationlist.h b/src/blackmisc/avatcstationlist.h index c26cb7e61..c4da4a7e5 100644 --- a/src/blackmisc/avatcstationlist.h +++ b/src/blackmisc/avatcstationlist.h @@ -33,10 +33,7 @@ namespace BlackMisc CAtcStationList(const CSequence &other); //! \copydoc CValueObject::toQVariant() - virtual QVariant toQVariant() const - { - return QVariant::fromValue(*this); - } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } //! Find 0..n stations by callsign CAtcStationList findByCallsign(const CCallsign &callsign) const; diff --git a/src/blackmisc/avcallsignlist.h b/src/blackmisc/avcallsignlist.h index 41d9ecb5e..24ea84683 100644 --- a/src/blackmisc/avcallsignlist.h +++ b/src/blackmisc/avcallsignlist.h @@ -32,10 +32,7 @@ namespace BlackMisc CCallsignList(const CSequence &other); //! CValueObject::toQVariant() - virtual QVariant toQVariant() const - { - return QVariant::fromValue(*this); - } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } //! Register metadata static void registerMetadata(); diff --git a/src/blackmisc/hwkeyboardkeylist.h b/src/blackmisc/hwkeyboardkeylist.h index 6bf2d7e8d..e47373b93 100644 --- a/src/blackmisc/hwkeyboardkeylist.h +++ b/src/blackmisc/hwkeyboardkeylist.h @@ -32,10 +32,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); } //! Contains given hotkey function? bool containsFunction(CKeyboardKey::HotkeyFunction function) const; diff --git a/src/blackmisc/nwaircraftmappinglist.h b/src/blackmisc/nwaircraftmappinglist.h index ac3fc2932..8dc53f9f7 100644 --- a/src/blackmisc/nwaircraftmappinglist.h +++ b/src/blackmisc/nwaircraftmappinglist.h @@ -34,7 +34,7 @@ namespace BlackMisc CAircraftMappingList(const CSequence &other); //! QVariant, required for DBus QVariant lists - virtual QVariant toQVariant() const { return QVariant::fromValue(*this); } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } //! Find by frequency CAircraftMappingList findByIcaoCode(const BlackMisc::Aviation::CAircraftIcao &searchIcao, bool emptyMeansWildcard = true) const; diff --git a/src/blackmisc/nwclient.cpp b/src/blackmisc/nwclient.cpp index 88218b99b..52a8feb0c 100644 --- a/src/blackmisc/nwclient.cpp +++ b/src/blackmisc/nwclient.cpp @@ -11,6 +11,12 @@ namespace BlackMisc QString CClient::convertToQString(bool i18n) const { QString s = this->m_user.toQString(i18n); + s.append(" capabilites: ").append(this->getCapabilitiesAsString()); + s.append(" model: ").append(this->m_model.toQString(i18n)); + if (!this->m_server.isEmpty()) + { + s.append(" server:").append(this->m_server); + } return s; } @@ -103,7 +109,7 @@ namespace BlackMisc */ QJsonObject CClient::toJson() const { - return BlackMisc::serializeJson(CClient::jsonMembers(), TupleConverter::toTuple(*this)); + return BlackMisc::serializeJson(TupleConverter::toMetaTuple(*this)); } /* @@ -111,7 +117,7 @@ namespace BlackMisc */ void CClient::fromJson(const QJsonObject &json) { - BlackMisc::deserializeJson(json, CClient::jsonMembers(), TupleConverter::toTuple(*this)); + BlackMisc::deserializeJson(json, TupleConverter::toMetaTuple(*this)); } /* @@ -119,7 +125,7 @@ namespace BlackMisc */ void CClient::setCapability(bool hasCapability, CClient::Capabilities capability) { - this->m_capabilities.setPropertyByIndex(QVariant(hasCapability), capability); + this->m_capabilities.addValue(static_cast(capability), hasCapability); } /* diff --git a/src/blackmisc/nwclient.h b/src/blackmisc/nwclient.h index 6d0f47001..8cb05c240 100644 --- a/src/blackmisc/nwclient.h +++ b/src/blackmisc/nwclient.h @@ -106,6 +106,12 @@ namespace BlackMisc //! Set voice capabilities void setVoiceCapabilities(const QString &flightPlanRemarks) { m_voiceCapabilities = CVoiceCapabilities(flightPlanRemarks);} + //! User + const CUser &getUser() const { return this->m_user; } + + //! User + void setUser(const CUser &user) { this->m_user = user;} + //! Server const QString &getServer() const { return this->m_server; } @@ -164,7 +170,7 @@ namespace BlackMisc } // namespace } // namespace -BLACK_DECLARE_TUPLE_CONVERSION(BlackMisc::Network::CClient, (o.m_user, o.m_model, o.m_capabilities)) +BLACK_DECLARE_TUPLE_CONVERSION(BlackMisc::Network::CClient, (o.m_user, o.m_model, o.m_capabilities, o.m_server, o.m_voiceCapabilities)) Q_DECLARE_METATYPE(BlackMisc::Network::CClient) #endif // guard diff --git a/src/blackmisc/nwclientlist.h b/src/blackmisc/nwclientlist.h index 0f309a112..b1520ec62 100644 --- a/src/blackmisc/nwclientlist.h +++ b/src/blackmisc/nwclientlist.h @@ -28,7 +28,7 @@ namespace BlackMisc CClientList(const CSequence &other); //! QVariant, required for DBus QVariant lists - virtual QVariant asQVariant() const { return QVariant::fromValue(*this); } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } //! Register metadata static void registerMetadata(); diff --git a/src/blackmisc/nwserverlist.h b/src/blackmisc/nwserverlist.h index 7666bb73e..8027cbed2 100644 --- a/src/blackmisc/nwserverlist.h +++ b/src/blackmisc/nwserverlist.h @@ -38,14 +38,8 @@ namespace BlackMisc */ CServerList(const CSequence &other); - /*! - * \brief QVariant, required for DBus QVariant lists - * \return - */ - virtual QVariant toQVariant() const - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } /*! * \brief Register metadata diff --git a/src/blackmisc/statusmessagelist.h b/src/blackmisc/statusmessagelist.h index 71c3301da..c6ed98b49 100644 --- a/src/blackmisc/statusmessagelist.h +++ b/src/blackmisc/statusmessagelist.h @@ -33,10 +33,7 @@ namespace BlackMisc CStatusMessageList findBySeverity(CStatusMessage::StatusSeverity severity) const; //! \copydoc CValueObject::asQVariant - virtual QVariant asQVariant() const - { - return QVariant::fromValue(*this); - } + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } //! \brief Register metadata of unit and quantity static void registerMetadata(); diff --git a/src/blackmisc/voiceroomlist.h b/src/blackmisc/voiceroomlist.h index 4649d9ae8..1ee32e114 100644 --- a/src/blackmisc/voiceroomlist.h +++ b/src/blackmisc/voiceroomlist.h @@ -33,15 +33,10 @@ namespace BlackMisc //! Construct from a base class object. CVoiceRoomList(const CSequence &other); - //! \copydoc CValueObject::asQVariant - virtual QVariant asQVariant() const - { - return QVariant::fromValue(*this); - } + //! \copydoc CValueObject::toQVariant + virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); } - /*! - * \brief Register metadata - */ + //! \brief Register metadata static void registerMetadata(); //! Frequently needed for voice room resolutions diff --git a/src/plugins/simulator/fsx/simulator_fsx_simconnectproc.cpp b/src/plugins/simulator/fsx/simulator_fsx_simconnectproc.cpp index f8f83ff33..d43c4b8e4 100644 --- a/src/plugins/simulator/fsx/simulator_fsx_simconnectproc.cpp +++ b/src/plugins/simulator/fsx/simulator_fsx_simconnectproc.cpp @@ -127,7 +127,7 @@ namespace BlackSimPlugin if (!pFacilityAirport) break; const QString icao(pFacilityAirport->Icao); if (icao.isEmpty()) continue; // airfield without ICAO code - if (!CAircraftIcao::isValidDesignator(icao)) continue; // tiny airfields in SIM + if (!CAirportIcao::isValidIcaoDesignator(icao)) continue; // tiny airfields in SIM CCoordinateGeodetic pos(pFacilityAirport->Latitude, pFacilityAirport->Longitude, pFacilityAirport->Altitude); CAirport airport(CAirportIcao(icao), pos); CLength d = airport.calculcateDistanceAndBearingToPlane(posAircraft);