diff --git a/src/blackgui/models/listmodelbase.cpp b/src/blackgui/models/listmodelbase.cpp index 134020b28..ed5699a8a 100644 --- a/src/blackgui/models/listmodelbase.cpp +++ b/src/blackgui/models/listmodelbase.cpp @@ -305,10 +305,8 @@ namespace BlackGui { QVariant aQv = a.propertyByIndex(propertyIndex); QVariant bQv = b.propertyByIndex(propertyIndex); - int compare = (order == Qt::AscendingOrder) ? - BlackMisc::compareQVariants(aQv, bQv) : - BlackMisc::compareQVariants(bQv, aQv); - return compare < 0; + int compare = BlackMisc::compareQVariants(aQv, bQv); + return (order == Qt::AscendingOrder) ? (compare < 0) : (compare > 0); }; // KWB: qDebug() will be removed soon diff --git a/src/blackmisc/avaircraft.h b/src/blackmisc/avaircraft.h index 0f38c934e..0c64443f8 100644 --- a/src/blackmisc/avaircraft.h +++ b/src/blackmisc/avaircraft.h @@ -223,10 +223,10 @@ namespace BlackMisc //! Meaningful default settings for Transponder void initTransponder(); - //! \copydoc CValueObject::propertyByIndex() + //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::setPropertyByIndex(variant, index) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; protected: diff --git a/src/blackmisc/avaircrafticao.h b/src/blackmisc/avaircrafticao.h index 0e1fcb137..ff969fe02 100644 --- a/src/blackmisc/avaircrafticao.h +++ b/src/blackmisc/avaircrafticao.h @@ -132,7 +132,7 @@ namespace BlackMisc //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::setPropertyByIndex(variant, index) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; //! Valid designator? diff --git a/src/blackmisc/avaircraftsituation.h b/src/blackmisc/avaircraftsituation.h index cbed4e516..5a91b23ef 100644 --- a/src/blackmisc/avaircraftsituation.h +++ b/src/blackmisc/avaircraftsituation.h @@ -56,10 +56,10 @@ namespace BlackMisc : m_position(position), m_altitude(altitude), m_heading(heading), m_pitch(pitch), m_bank(bank), m_groundspeed(gs), m_timestamp(QDateTime::currentDateTimeUtc()) {} - //! \copydoc CValueObject::propertyByIndex(index) + //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::setPropertyByIndex(variant,index) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; //! Get position diff --git a/src/blackmisc/avairport.h b/src/blackmisc/avairport.h index 306ffeb8a..ac8fa0721 100644 --- a/src/blackmisc/avairport.h +++ b/src/blackmisc/avairport.h @@ -109,10 +109,10 @@ namespace BlackMisc return this->getPosition().longitude(); } - //! \copydoc CValueObject::propertyByIndex() + //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::setPropertyByIndex(variant, index) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; protected: diff --git a/src/blackmisc/avatcstation.h b/src/blackmisc/avatcstation.h index a5b2f2bdc..4455213a5 100644 --- a/src/blackmisc/avatcstation.h +++ b/src/blackmisc/avatcstation.h @@ -254,10 +254,10 @@ namespace BlackMisc return this->getPosition().longitude(); } - //! \copydoc CValueObject::propertyByIndex() + //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::setPropertyByIndex(variant, index) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const CPropertyIndex &index) override; protected: diff --git a/src/blackmisc/avcallsign.h b/src/blackmisc/avcallsign.h index 8456d885c..d4991b8f8 100644 --- a/src/blackmisc/avcallsign.h +++ b/src/blackmisc/avcallsign.h @@ -72,7 +72,7 @@ namespace BlackMisc //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::setPropertyByIndex(variant, index) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; //! Valid callsign? diff --git a/src/blackmisc/aviomodulator.h b/src/blackmisc/aviomodulator.h index 85ec0863c..b855a5c08 100644 --- a/src/blackmisc/aviomodulator.h +++ b/src/blackmisc/aviomodulator.h @@ -92,7 +92,7 @@ namespace BlackMisc //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::setPropertyByIndex(variant, index) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; protected: diff --git a/src/blackmisc/aviotransponder.h b/src/blackmisc/aviotransponder.h index e59d9577f..48d201cc7 100644 --- a/src/blackmisc/aviotransponder.h +++ b/src/blackmisc/aviotransponder.h @@ -145,7 +145,7 @@ namespace BlackMisc //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::setPropertyByIndex(variant, index) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; //! Is valid transponder code? diff --git a/src/blackmisc/namevariantpair.h b/src/blackmisc/namevariantpair.h index 22bc77d09..56829b846 100644 --- a/src/blackmisc/namevariantpair.h +++ b/src/blackmisc/namevariantpair.h @@ -57,10 +57,10 @@ namespace BlackMisc //! Has icon bool hasIcon() const; - //! \copydoc CValueObject::propertyByIndex() + //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::setPropertyByIndex(variant, index) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; protected: diff --git a/src/blackmisc/nwaircraftmodel.h b/src/blackmisc/nwaircraftmodel.h index 66170be9b..2c9b71307 100644 --- a/src/blackmisc/nwaircraftmodel.h +++ b/src/blackmisc/nwaircraftmodel.h @@ -38,10 +38,10 @@ namespace BlackMisc //! Constructor. CAircraftModel(const QString &model, bool isQueriedString) : m_modelString(model), m_queriedModelStringFlag(isQueriedString) {} - //! \copydoc CValueObject::propertyByIndex(int) + //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::setPropertyByIndex(const QVariant, int) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; //! Queried model string diff --git a/src/blackmisc/nwclient.h b/src/blackmisc/nwclient.h index dc56bccd3..a1e5bed72 100644 --- a/src/blackmisc/nwclient.h +++ b/src/blackmisc/nwclient.h @@ -111,10 +111,10 @@ namespace BlackMisc //! \copydoc CValueObject::toIcon() virtual CIcon toIcon() const override { return this->m_user.toIcon(); } - //! \copydoc CValueObject::propertyByIndex(int) + //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::setPropertyByIndex(const QVariant, int) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; protected: diff --git a/src/blackmisc/nwserver.h b/src/blackmisc/nwserver.h index 69fc7e810..1fb3b6dbe 100644 --- a/src/blackmisc/nwserver.h +++ b/src/blackmisc/nwserver.h @@ -86,10 +86,10 @@ namespace BlackMisc //! Validate, provide details about issues BlackMisc::CStatusMessageList validate() const; - //! \copydoc CValueObject::propertyByIndex(int) + //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::setPropertyByIndex(const QVariant &, int index) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; protected: diff --git a/src/blackmisc/nwuser.h b/src/blackmisc/nwuser.h index 41a0c36c8..b7e718427 100644 --- a/src/blackmisc/nwuser.h +++ b/src/blackmisc/nwuser.h @@ -117,10 +117,10 @@ namespace BlackMisc //! \copydoc CValueObject::toIcon() virtual BlackMisc::CIcon toIcon() const override { return this->getCallsign().toIcon(); } - //! \copydoc CValueObject::propertyByIndex(int) + //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::setPropertyByIndex(const QVariant, int) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; /*! diff --git a/src/blackmisc/pqphysicalquantity.h b/src/blackmisc/pqphysicalquantity.h index 6a6e1b7ca..ee6a16df5 100644 --- a/src/blackmisc/pqphysicalquantity.h +++ b/src/blackmisc/pqphysicalquantity.h @@ -235,10 +235,10 @@ namespace BlackMisc *this = CPqString::parse(value, CPqString::SeparatorsCLocale); } - //! \copydoc CValueObject::propertyByIndex(int) + //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::setPropertyByIndex(const QVariant, int) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; protected: diff --git a/src/blackmisc/statusmessage.h b/src/blackmisc/statusmessage.h index 00952d265..6a1744530 100644 --- a/src/blackmisc/statusmessage.h +++ b/src/blackmisc/statusmessage.h @@ -120,10 +120,10 @@ namespace BlackMisc //! Severities as strings static const QStringList &allSeverityStrings(); - //! \copydoc CValueObject::propertyByIndex(int) + //! \copydoc CValueObject::propertyByIndex virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override; - //! \copydoc CValueObject::propertyByIndex(const QVariant, int) + //! \copydoc CValueObject::setPropertyByIndex virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override; //! To HTML diff --git a/src/blackmisc/variant.cpp b/src/blackmisc/variant.cpp index 926591f25..c9348ed1b 100644 --- a/src/blackmisc/variant.cpp +++ b/src/blackmisc/variant.cpp @@ -65,81 +65,35 @@ namespace BlackMisc uint CVariant::getValueHash() const { - uint h = 0; - QVariant qv = this->toQVariant(); - switch (qv.type()) + switch (m_v.type()) { - case QVariant::Int: - h = ::qHash(qv.toInt()); - break; - case QVariant::UInt: - h = ::qHash(qv.toUInt()); - break; - case QVariant::Bool: - h = ::qHash(qv.toUInt()); - break; - case QVariant::Double: - h = ::qHash(qv.toUInt()); - break; - case QVariant::LongLong: - h = ::qHash(qv.toLongLong()); - break; - case QVariant::ULongLong: - h = ::qHash(qv.toULongLong()); - break; - case QVariant::String: - h = ::qHash(qv.toString()); - break; - case QVariant::Char: - h = ::qHash(qv.toChar()); - break; - case QVariant::StringList: - h = ::qHash(qv.toString()); - break; - case QVariant::ByteArray: - h = ::qHash(qv.toByteArray()); - break; - case QVariant::Date: - case QVariant::Time: - case QVariant::DateTime: - case QVariant::Url: - case QVariant::Locale: - case QVariant::RegExp: - h = ::qHash(qv.toString()); - break; - case QVariant::Map: - case QVariant::List: - case QVariant::BitArray: - case QVariant::Size: - case QVariant::SizeF: - case QVariant::Rect: - case QVariant::LineF: - case QVariant::Line: - case QVariant::RectF: - case QVariant::Point: - case QVariant::PointF: - case QVariant::UserType: - case QVariant::Invalid: - h = 2; // known, but not supported - break; + case QVariant::Int: return qHash(m_v.toInt()); + case QVariant::UInt: return qHash(m_v.toUInt()); + case QVariant::Bool: return qHash(m_v.toUInt()); + case QVariant::Double: return qHash(m_v.toUInt()); + case QVariant::LongLong: return qHash(m_v.toLongLong()); + case QVariant::ULongLong: return qHash(m_v.toULongLong()); + case QVariant::String: return qHash(m_v.toString()); + case QVariant::Char: return qHash(m_v.toChar()); + case QVariant::ByteArray: return qHash(m_v.toByteArray()); default: { - // value object? - const QVariant qv = this->toQVariant(); - const CValueObject *cv = CValueObject::fromQVariant(qv); + const CValueObject *cv = CValueObject::fromQVariant(m_v); if (cv) { - h = cv->getValueHash(); + return cv->getValueHash(); + } + else if (m_v.canConvert()) + { + return qHash(m_v.toString()); } else { - // no value object - Q_ASSERT(false); + qWarning() << "Unsupported CVariant type for getValueHash"; + return 0; } } - break; } - return h; } QDBusArgument &operator <<(QDBusArgument &arg, const CVariant &var)