diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp index b84cd7e2749..203cf78933e 100644 --- a/src/corelib/kernel/qvariant.cpp +++ b/src/corelib/kernel/qvariant.cpp @@ -4,41 +4,40 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #include "qvariant_p.h" + +#include "private/qlocale_p.h" +#include "qmetatype_p.h" + +#if QT_CONFIG(itemmodel) +#include "qabstractitemmodel.h" +#endif #include "qbitarray.h" #include "qbytearray.h" +#include "qbytearraylist.h" +#include "qcborarray.h" +#include "qcborcommon.h" +#include "qcbormap.h" #include "qdatastream.h" -#include "qdebug.h" -#include "qmap.h" -#include "qhash.h" #include "qdatetime.h" +#include "qdebug.h" #if QT_CONFIG(easingcurve) #include "qeasingcurve.h" #endif +#include "qhash.h" +#include "qjsonarray.h" +#include "qjsondocument.h" +#include "qjsonobject.h" +#include "qjsonvalue.h" #include "qlist.h" +#include "qlocale.h" +#include "qmap.h" #if QT_CONFIG(regularexpression) #include "qregularexpression.h" #endif #include "qstring.h" #include "qstringlist.h" #include "qurl.h" -#include "qlocale.h" #include "quuid.h" -#if QT_CONFIG(itemmodel) -#include "qabstractitemmodel.h" -#endif -#ifndef QT_BOOTSTRAPPED -#include "qcborarray.h" -#include "qcborcommon.h" -#include "qcbormap.h" -#include "qjsonvalue.h" -#include "qjsonobject.h" -#include "qjsonarray.h" -#include "qjsondocument.h" -#include "qbytearraylist.h" -#endif -#include "private/qlocale_p.h" -#include "qmetatype_p.h" -#include #ifndef QT_NO_GEOM_VARIANT #include "qsize.h" @@ -48,9 +47,7 @@ #endif #include - #include -#include #include QT_BEGIN_NAMESPACE @@ -88,12 +85,10 @@ static qlonglong qMetaTypeNumber(const QVariant::Private *d) return qRound64(d->get()); case QMetaType::Double: return qRound64(d->get()); -#ifndef QT_BOOTSTRAPPED case QMetaType::QJsonValue: return d->get().toDouble(); case QMetaType::QCborValue: return d->get().toInteger(); -#endif } Q_UNREACHABLE_RETURN(0); } @@ -137,7 +132,6 @@ static std::optional qConvertToNumber(const QVariant::Private *d, boo return std::nullopt; case QMetaType::Bool: return qlonglong(d->get()); -#ifndef QT_BOOTSTRAPPED case QMetaType::QCborValue: if (!d->get().isInteger() && !d->get().isDouble()) break; @@ -146,7 +140,6 @@ static std::optional qConvertToNumber(const QVariant::Private *d, boo if (!d->get().isDouble()) break; Q_FALLTHROUGH(); -#endif case QMetaType::Double: case QMetaType::Int: case QMetaType::Char: @@ -195,12 +188,10 @@ static std::optional qConvertToRealNumber(const QVariant::Private *d) case QMetaType::UShort: case QMetaType::ULong: return double(qMetaTypeUNumber(d)); -#ifndef QT_BOOTSTRAPPED case QMetaType::QCborValue: return d->get().toDouble(); case QMetaType::QJsonValue: return d->get().toDouble(); -#endif default: // includes enum conversion as well as invalid types if (std::optional l = qConvertToNumber(d)) @@ -943,9 +934,7 @@ QVariant::QVariant(double val) noexcept : d(std::piecewise_construct_t{}, val) { QVariant::QVariant(float val) noexcept : d(std::piecewise_construct_t{}, val) {} QVariant::QVariant(const QByteArray &val) noexcept : d(std::piecewise_construct_t{}, val) {} -#ifndef QT_BOOTSTRAPPED QVariant::QVariant(const QBitArray &val) noexcept : d(std::piecewise_construct_t{}, val) {} -#endif QVariant::QVariant(const QString &val) noexcept : d(std::piecewise_construct_t{}, val) {} QVariant::QVariant(QChar val) noexcept : d(std::piecewise_construct_t{}, val) {} QVariant::QVariant(const QStringList &val) noexcept : d(std::piecewise_construct_t{}, val) {} @@ -981,22 +970,18 @@ QVariant::QVariant(QSize s) noexcept QVariant::QVariant(QSizeF s) noexcept(Private::FitsInInternalSize) : d(std::piecewise_construct_t{}, s) {} #endif -#ifndef QT_BOOTSTRAPPED QVariant::QVariant(const QUrl &u) noexcept : d(std::piecewise_construct_t{}, u) {} -#endif QVariant::QVariant(const QLocale &l) noexcept : d(std::piecewise_construct_t{}, l) {} #if QT_CONFIG(regularexpression) QVariant::QVariant(const QRegularExpression &re) noexcept : d(std::piecewise_construct_t{}, re) {} #endif // QT_CONFIG(regularexpression) QVariant::QVariant(QUuid uuid) noexcept(Private::FitsInInternalSize<16>) : d(std::piecewise_construct_t{}, uuid) {} -#ifndef QT_BOOTSTRAPPED QVariant::QVariant(const QJsonValue &jsonValue) noexcept(Private::FitsInInternalSize) : d(std::piecewise_construct_t{}, jsonValue) { static_assert(sizeof(CborValueStandIn) == sizeof(QJsonValue)); } QVariant::QVariant(const QJsonObject &jsonObject) noexcept : d(std::piecewise_construct_t{}, jsonObject) {} QVariant::QVariant(const QJsonArray &jsonArray) noexcept : d(std::piecewise_construct_t{}, jsonArray) {} QVariant::QVariant(const QJsonDocument &jsonDocument) : d(std::piecewise_construct_t{}, jsonDocument) {} -#endif // QT_BOOTSTRAPPED #if QT_CONFIG(itemmodel) QVariant::QVariant(const QModelIndex &modelIndex) noexcept(Private::FitsInInternalSize<8 + 2 * sizeof(quintptr)>) : d(std::piecewise_construct_t{}, modelIndex) {} @@ -1690,7 +1675,6 @@ QPointF QVariant::toPointF() const #endif // QT_NO_GEOM_VARIANT -#ifndef QT_BOOTSTRAPPED /*! \fn QUrl QVariant::toUrl() const @@ -1703,7 +1687,6 @@ QUrl QVariant::toUrl() const { return qvariant_cast(*this); } -#endif /*! \fn QLocale QVariant::toLocale() const @@ -1776,7 +1759,6 @@ QUuid QVariant::toUuid() const return qvariant_cast(*this); } -#ifndef QT_BOOTSTRAPPED /*! \since 5.0 @@ -1828,7 +1810,6 @@ QJsonDocument QVariant::toJsonDocument() const { return qvariant_cast(*this); } -#endif // QT_BOOTSTRAPPED /*! \fn QChar QVariant::toChar() const @@ -1844,7 +1825,6 @@ QChar QVariant::toChar() const return qvariant_cast(*this); } -#ifndef QT_BOOTSTRAPPED /*! Returns the variant as a QBitArray if the variant has userType() \l QMetaType::QBitArray; otherwise returns an empty bit array. @@ -1855,7 +1835,6 @@ QBitArray QVariant::toBitArray() const { return qvariant_cast(*this); } -#endif // QT_BOOTSTRAPPED template inline T qNumVariantToHelper(const QVariant::Private &d, bool *ok) @@ -2370,7 +2349,6 @@ static QPartialOrdering numericCompare(const QVariant::Private *d1, const QVaria return spaceShip(*r1, *r2); } -#ifndef QT_BOOTSTRAPPED static bool qvCanConvertMetaObject(QMetaType fromType, QMetaType toType) { if ((fromType.flags() & QMetaType::PointerToQObject) @@ -2386,7 +2364,6 @@ static QPartialOrdering pointerCompare(const QVariant::Private *d1, const QVaria { return spaceShip(d1->get(), d2->get()); } -#endif /*! \internal @@ -2399,11 +2376,9 @@ bool QVariant::equals(const QVariant &v) const // try numeric comparisons, with C++ type promotion rules (no conversion) if (canBeNumericallyCompared(metatype.iface(), v.d.type().iface())) return numericCompare(&d, &v.d) == QPartialOrdering::Equivalent; -#ifndef QT_BOOTSTRAPPED // if both types are related pointers to QObjects, check if they point to the same object if (qvCanConvertMetaObject(metatype, v.metaType())) return pointerCompare(&d, &v.d) == QPartialOrdering::Equivalent; -#endif return false; } @@ -2443,10 +2418,8 @@ QPartialOrdering QVariant::compare(const QVariant &lhs, const QVariant &rhs) // try numeric comparisons, with C++ type promotion rules (no conversion) if (canBeNumericallyCompared(lhs.d.type().iface(), rhs.d.type().iface())) return numericCompare(&lhs.d, &rhs.d); -#ifndef QT_BOOTSTRAPPED if (qvCanConvertMetaObject(lhs.metaType(), rhs.metaType())) return pointerCompare(&lhs.d, &rhs.d); -#endif return QPartialOrdering::Unordered; } return t.compare(lhs.constData(), rhs.constData()); diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h index 6181f3d97ab..45b5b26314b 100644 --- a/src/corelib/kernel/qvariant.h +++ b/src/corelib/kernel/qvariant.h @@ -264,9 +264,7 @@ public: QVariant(QChar qchar) noexcept; QVariant(QDate date) noexcept; QVariant(QTime time) noexcept; -#ifndef QT_BOOTSTRAPPED QVariant(const QBitArray &bitarray) noexcept; -#endif QVariant(const QByteArray &bytearray) noexcept; QVariant(const QDateTime &datetime) noexcept; QVariant(const QHash &hash) noexcept; @@ -375,9 +373,7 @@ public: float toFloat(bool *ok = nullptr) const; qreal toReal(bool *ok = nullptr) const; QByteArray toByteArray() const; -#ifndef QT_BOOTSTRAPPED QBitArray toBitArray() const; -#endif QString toString() const; QStringList toStringList() const; QChar toChar() const; @@ -406,13 +402,11 @@ public: QEasingCurve toEasingCurve() const; #endif QUuid toUuid() const; -#ifndef QT_BOOTSTRAPPED QUrl toUrl() const; QJsonValue toJsonValue() const; QJsonObject toJsonObject() const; QJsonArray toJsonArray() const; QJsonDocument toJsonDocument() const; -#endif // QT_BOOTSTRAPPED #if QT_CONFIG(itemmodel) QModelIndex toModelIndex() const; QPersistentModelIndex toPersistentModelIndex() const;