diff options
Diffstat (limited to 'src/corelib/kernel')
| -rw-r--r-- | src/corelib/kernel/qassociativeiterable.cpp | 6 | ||||
| -rw-r--r-- | src/corelib/kernel/qassociativeiterable.h | 15 | ||||
| -rw-r--r-- | src/corelib/kernel/qiterable.cpp | 13 | ||||
| -rw-r--r-- | src/corelib/kernel/qiterable.h | 20 | ||||
| -rw-r--r-- | src/corelib/kernel/qiterable_impl.h | 4 | ||||
| -rw-r--r-- | src/corelib/kernel/qmetaassociation.h | 10 | ||||
| -rw-r--r-- | src/corelib/kernel/qmetasequence.h | 8 | ||||
| -rw-r--r-- | src/corelib/kernel/qmetatype.cpp | 16 | ||||
| -rw-r--r-- | src/corelib/kernel/qsequentialiterable.cpp | 2 | ||||
| -rw-r--r-- | src/corelib/kernel/qsequentialiterable.h | 15 |
10 files changed, 56 insertions, 53 deletions
diff --git a/src/corelib/kernel/qassociativeiterable.cpp b/src/corelib/kernel/qassociativeiterable.cpp index 8a2fc63c441..bca9d43901d 100644 --- a/src/corelib/kernel/qassociativeiterable.cpp +++ b/src/corelib/kernel/qassociativeiterable.cpp @@ -21,7 +21,7 @@ QT_WARNING_DISABLE_DEPRECATED */ QVariant QAssociativeIterator::key() const { - return QIterablePrivate::retrieveElement( + return QtIterablePrivate::retrieveElement( metaContainer().keyMetaType(), [this](void *dataPtr) { metaContainer().keyAtIterator(constIterator(), dataPtr); }); @@ -67,7 +67,7 @@ QVariantPointer<QAssociativeIterator> QAssociativeIterator::operator->() const */ QVariant QAssociativeConstIterator::key() const { - return QIterablePrivate::retrieveElement( + return QtIterablePrivate::retrieveElement( metaContainer().keyMetaType(), [this](void *dataPtr) { metaContainer().keyAtConstIterator(constIterator(), dataPtr); }); @@ -79,7 +79,7 @@ QVariant QAssociativeConstIterator::key() const */ QVariant QAssociativeConstIterator::value() const { - return QIterablePrivate::retrieveElement( + return QtIterablePrivate::retrieveElement( metaContainer().mappedMetaType(), [this](void *dataPtr) { metaContainer().mappedAtConstIterator(constIterator(), dataPtr); }); diff --git a/src/corelib/kernel/qassociativeiterable.h b/src/corelib/kernel/qassociativeiterable.h index 4f9bbf67bfb..c042fe4a0ec 100644 --- a/src/corelib/kernel/qassociativeiterable.h +++ b/src/corelib/kernel/qassociativeiterable.h @@ -21,9 +21,8 @@ QT_WARNING_DISABLE_DEPRECATED Q_CORE_EXPORT QT_DEPRECATED_VERSION_X_6_15(text) #endif -class -QT_CORE_DEPRECATED_EXPORT_VERSION_X_6_15("Use QMetaAssociation::Iterable::Iterator instead.") -QAssociativeIterator : public QIterator<QMetaAssociation> +// Keep this a single long line, otherwise syncqt doesn't create a class forwarding header +class QT_CORE_DEPRECATED_EXPORT_VERSION_X_6_15("Use QMetaAssociation's iterables and iterators instead.") QAssociativeIterator : public QIterator<QMetaAssociation> { public: using key_type = QVariant; @@ -42,9 +41,8 @@ public: QVariantPointer<QAssociativeIterator> operator->() const; }; -class -QT_CORE_DEPRECATED_EXPORT_VERSION_X_6_15("Use QMetaAssociation::Iterable::ConstIterator instead.") -QAssociativeConstIterator : public QConstIterator<QMetaAssociation> +// Keep this a single long line, otherwise syncqt doesn't create a class forwarding header +class QT_CORE_DEPRECATED_EXPORT_VERSION_X_6_15("Use QMetaAssociation's iterables and iterators instead.") QAssociativeConstIterator : public QConstIterator<QMetaAssociation> { public: using key_type = QVariant; @@ -63,9 +61,8 @@ public: QVariantConstPointer operator->() const; }; -class -QT_CORE_DEPRECATED_EXPORT_VERSION_X_6_15("Use QMetaAssociation::Iterable instead.") -QAssociativeIterable : public QIterable<QMetaAssociation> +// Keep this a single long line, otherwise syncqt doesn't create a class forwarding header +class QT_CORE_DEPRECATED_EXPORT_VERSION_X_6_15("Use QMetaAssociation's iterables and iterators instead.") QAssociativeIterable : public QIterable<QMetaAssociation> { public: using iterator = QTaggedIterator<QAssociativeIterator, void>; diff --git a/src/corelib/kernel/qiterable.cpp b/src/corelib/kernel/qiterable.cpp index ca2893e1090..b0b772d18e0 100644 --- a/src/corelib/kernel/qiterable.cpp +++ b/src/corelib/kernel/qiterable.cpp @@ -626,9 +626,18 @@ Q_STATIC_LOGGING_CATEGORY(lcSynthesizedIterableAccess, "qt.iterable.synthesized" /*! \internal */ -void QtPrivate::warnSynthesizedAccess(const char *text) +void QtPrivate::warnSynthesizedIterableAccess(QtPrivate::SynthesizedAccessFunction function) { - qCWarning(lcSynthesizedIterableAccess, "%s", text); + switch (function) { + case QtPrivate::SynthesizedAccessFunction::IterableSize: + qCWarning(lcSynthesizedIterableAccess, + "size() called on an iterable without native size accessor. This is slow"); + break; + case QtPrivate::SynthesizedAccessFunction::SequenceAt: + qCWarning(lcSynthesizedIterableAccess, + "at() called on an iterable without native indexed accessors. This is slow"); + break; + } } QT_END_NAMESPACE diff --git a/src/corelib/kernel/qiterable.h b/src/corelib/kernel/qiterable.h index 494cec73a3f..a5a5b35924a 100644 --- a/src/corelib/kernel/qiterable.h +++ b/src/corelib/kernel/qiterable.h @@ -8,10 +8,6 @@ #include <QtCore/qtypeinfo.h> #include <QtCore/qtaggedpointer.h> -#if !defined(QT_LEAN_HEADERS) || QT_LEAN_HEADERS < 1 -# include <QtCore/qmetacontainer.h> -#endif - QT_BEGIN_NAMESPACE namespace QtPrivate { @@ -65,7 +61,13 @@ namespace QtPrivate { } }; - Q_CORE_EXPORT void warnSynthesizedAccess(const char *text); + enum class SynthesizedAccessFunction: quint8 + { + IterableSize, + SequenceAt + }; + + Q_CORE_EXPORT void warnSynthesizedIterableAccess(SynthesizedAccessFunction function); } template<class Iterator, typename IteratorCategory> @@ -75,7 +77,7 @@ public: using iterator_category = IteratorCategory; QTaggedIterator(Iterator &&it) : Iterator(std::move(it)) { - const auto metaContainer = this->metaContainer(); + [[maybe_unused]] const auto metaContainer = this->metaContainer(); if constexpr (std::is_base_of_v<std::random_access_iterator_tag, IteratorCategory>) { if (!metaContainer.hasRandomAccessIterator()) { qFatal("You cannot use this iterator as a random access iterator"); @@ -103,8 +105,6 @@ public: this->clearIterator(); } } - - Q_UNUSED(metaContainer); // in case none of the above apply } bool operator==(const QTaggedIterator &o) const { return Iterator::operator==(o); } @@ -506,8 +506,8 @@ public: // We shouldn't second-guess the underlying container, so we're not synthesizing a size. return -1; #else - QtPrivate::warnSynthesizedAccess( - "size() called on an iterable without native size accessor. This is slow"); + QtPrivate::warnSynthesizedIterableAccess( + QtPrivate::SynthesizedAccessFunction::IterableSize); if (!m_metaContainer.hasConstIterator()) return -1; diff --git a/src/corelib/kernel/qiterable_impl.h b/src/corelib/kernel/qiterable_impl.h index 7bc06ccde15..419595a3f2c 100644 --- a/src/corelib/kernel/qiterable_impl.h +++ b/src/corelib/kernel/qiterable_impl.h @@ -9,7 +9,7 @@ QT_BEGIN_NAMESPACE -namespace QIterablePrivate { +namespace QtIterablePrivate { template<typename Callback> static QVariant retrieveElement(QMetaType type, Callback callback) @@ -24,7 +24,7 @@ static QVariant retrieveElement(QMetaType type, Callback callback) return v; } -} // namespace QIterablePrivate +} // namespace QtIterablePrivate QT_END_NAMESPACE diff --git a/src/corelib/kernel/qmetaassociation.h b/src/corelib/kernel/qmetaassociation.h index d481ae91079..d94b5191a7b 100644 --- a/src/corelib/kernel/qmetaassociation.h +++ b/src/corelib/kernel/qmetaassociation.h @@ -33,7 +33,7 @@ public: key_type key() const { const QMetaAssociation meta = metaContainer(); - return QIterablePrivate::retrieveElement(meta.keyMetaType(), [&](void *dataPtr) { + return QtIterablePrivate::retrieveElement(meta.keyMetaType(), [&](void *dataPtr) { meta.keyAtIterator(constIterator(), dataPtr); }); } @@ -58,7 +58,7 @@ public: key_type key() const { const QMetaAssociation meta = metaContainer(); - return QIterablePrivate::retrieveElement(meta.keyMetaType(), [&](void *dataPtr) { + return QtIterablePrivate::retrieveElement(meta.keyMetaType(), [&](void *dataPtr) { meta.keyAtConstIterator(constIterator(), dataPtr); }); } @@ -79,12 +79,12 @@ QVariant associativeIteratorToVariant(const Referred &referred) const auto metaAssociation = referred.metaContainer(); const QMetaType metaType(metaAssociation.mappedMetaType()); if (metaType.isValid(QT6_CALL_NEW_OVERLOAD)) { - return QIterablePrivate::retrieveElement(metaType, [&](void *dataPtr) { + return QtIterablePrivate::retrieveElement(metaType, [&](void *dataPtr) { metaAssociation.mappedAtConstIterator(referred.constIterator(), dataPtr); }); } - return QIterablePrivate::retrieveElement(metaType, [&](void *dataPtr) { + return QtIterablePrivate::retrieveElement(metaType, [&](void *dataPtr) { metaAssociation.keyAtConstIterator(referred.constIterator(), dataPtr); }); } @@ -243,7 +243,7 @@ public: QVariant value(const QVariant &key) const { const QMetaAssociation meta = metaContainer(); - return QIterablePrivate::retrieveElement(meta.mappedMetaType(), [&](void *dataPtr) { + return QtIterablePrivate::retrieveElement(meta.mappedMetaType(), [&](void *dataPtr) { QtPrivate::QVariantTypeCoercer coercer; meta.mappedAtKey(constIterable(), coercer.coerce(key, meta.keyMetaType()), dataPtr); }); diff --git a/src/corelib/kernel/qmetasequence.h b/src/corelib/kernel/qmetasequence.h index f8052476d79..792202301e3 100644 --- a/src/corelib/kernel/qmetasequence.h +++ b/src/corelib/kernel/qmetasequence.h @@ -57,7 +57,7 @@ template<typename Referred> QVariant sequentialIteratorToVariant(const Referred &referred) { const auto metaSequence = referred.metaContainer(); - return QIterablePrivate::retrieveElement(metaSequence.valueMetaType(), [&](void *dataPtr) { + return QtIterablePrivate::retrieveElement(metaSequence.valueMetaType(), [&](void *dataPtr) { metaSequence.valueAtConstIterator(referred.constIterator(), dataPtr); }); } @@ -178,7 +178,7 @@ public: QVariant at(qsizetype idx) const { const QMetaSequence meta = metaContainer(); - return QIterablePrivate::retrieveElement(meta.valueMetaType(), [&](void *dataPtr) { + return QtIterablePrivate::retrieveElement(meta.valueMetaType(), [&](void *dataPtr) { if (meta.canGetValueAtIndex()) { meta.valueAtIndex(constIterable(), idx, dataPtr); return; @@ -186,8 +186,8 @@ public: #if QT_VERSION < QT_VERSION_CHECK(7, 0, 0) // We shouldn't second-guess the underlying container. - QtPrivate::warnSynthesizedAccess( - "at() called on an iterable without native indexed accessors. This is slow"); + QtPrivate::warnSynthesizedIterableAccess( + QtPrivate::SynthesizedAccessFunction::SequenceAt); void *it = meta.constBegin(m_iterable.constPointer()); meta.advanceConstIterator(it, idx); meta.valueAtConstIterator(it, dataPtr); diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 565f9182e68..580e830782e 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -2524,7 +2524,7 @@ bool QMetaType::convert(QMetaType fromType, const void *from, QMetaType toType, if (toTypeId == qMetaTypeId<QMetaAssociation::Iterable>()) return convertToAssociativeIterable<QMetaAssociation::Iterable>(fromType, from, to); -#if QT_DEPRECATED_SINCE(6, 13) +#if QT_DEPRECATED_SINCE(6, 15) QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED @@ -2550,7 +2550,7 @@ bool QMetaType::convert(QMetaType fromType, const void *from, QMetaType toType, return convertToAssociativeIterable<QAssociativeIterable>(fromType, from, to); QT_WARNING_POP -#endif // QT_DEPRECATED_SINCE(6, 13) +#endif // QT_DEPRECATED_SINCE(6, 15) return convertMetaObject(fromType, from, toType, to); } @@ -2578,7 +2578,7 @@ bool QMetaType::view(QMetaType fromType, void *from, QMetaType toType, void *to) if (toTypeId == qMetaTypeId<QMetaAssociation::Iterable>()) return viewAsAssociativeIterable<QMetaAssociation::Iterable>(fromType, from, to); -#if QT_DEPRECATED_SINCE(6, 13) +#if QT_DEPRECATED_SINCE(6, 15) QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED @@ -2589,7 +2589,7 @@ bool QMetaType::view(QMetaType fromType, void *from, QMetaType toType, void *to) return viewAsAssociativeIterable<QAssociativeIterable>(fromType, from, to); QT_WARNING_POP -#endif // QT_DEPRECATED_SINCE(6, 13) +#endif // QT_DEPRECATED_SINCE(6, 15) return convertMetaObject(fromType, from, toType, to); } @@ -2629,7 +2629,7 @@ bool QMetaType::canView(QMetaType fromType, QMetaType toType) if (toTypeId == qMetaTypeId<QMetaAssociation::Iterable>()) return canImplicitlyViewAsAssociativeIterable(fromType); -#if QT_DEPRECATED_SINCE(6, 13) +#if QT_DEPRECATED_SINCE(6, 15) QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED @@ -2640,7 +2640,7 @@ bool QMetaType::canView(QMetaType fromType, QMetaType toType) return canImplicitlyViewAsAssociativeIterable(fromType); QT_WARNING_POP -#endif +#endif // QT_DEPRECATED_SINCE(6, 15) if (canConvertMetaObject(fromType, toType)) return true; @@ -2768,7 +2768,7 @@ bool QMetaType::canConvert(QMetaType fromType, QMetaType toType) return true; } -#if QT_DEPRECATED_SINCE(6, 13) +#if QT_DEPRECATED_SINCE(6, 15) QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED @@ -2789,7 +2789,7 @@ bool QMetaType::canConvert(QMetaType fromType, QMetaType toType) } QT_WARNING_POP -#endif // QT_DEPRECATED_SINCE(6, 13) +#endif // QT_DEPRECATED_SINCE(6, 15) if (toTypeId == QVariantPair && hasRegisteredConverterFunction( fromType, QMetaType::fromType<QtMetaTypePrivate::QPairVariantInterfaceImpl>())) diff --git a/src/corelib/kernel/qsequentialiterable.cpp b/src/corelib/kernel/qsequentialiterable.cpp index b256b129d2c..cf9c38c5338 100644 --- a/src/corelib/kernel/qsequentialiterable.cpp +++ b/src/corelib/kernel/qsequentialiterable.cpp @@ -211,7 +211,7 @@ QVariantPointer<QSequentialIterator> QSequentialIterator::operator->() const */ QVariant QSequentialConstIterator::operator*() const { - return QIterablePrivate::retrieveElement(metaContainer().valueMetaType(), [this](void *dataPtr) { + return QtIterablePrivate::retrieveElement(metaContainer().valueMetaType(), [this](void *dataPtr) { metaContainer().valueAtConstIterator(constIterator(), dataPtr); }); } diff --git a/src/corelib/kernel/qsequentialiterable.h b/src/corelib/kernel/qsequentialiterable.h index 76908bdae4b..b2e690ea9cf 100644 --- a/src/corelib/kernel/qsequentialiterable.h +++ b/src/corelib/kernel/qsequentialiterable.h @@ -21,9 +21,8 @@ QT_WARNING_DISABLE_DEPRECATED Q_CORE_EXPORT QT_DEPRECATED_VERSION_X_6_15(text) #endif -class -QT_CORE_DEPRECATED_EXPORT_VERSION_X_6_15("Use QMetaSequence::Iterable::Iterator instead.") -QSequentialIterator : public QIterator<QMetaSequence> +// Keep this a single long line, otherwise syncqt doesn't create a class forwarding header +class QT_CORE_DEPRECATED_EXPORT_VERSION_X_6_15("Use QMetaSequence's iterables and iterators instead.") QSequentialIterator : public QIterator<QMetaSequence> { public: using value_type = QVariant; @@ -38,9 +37,8 @@ public: QVariantPointer<QSequentialIterator> operator->() const; }; -class -QT_CORE_DEPRECATED_EXPORT_VERSION_X_6_15("Use QMetaSequence::Iterable::ConstIterator instead.") -QSequentialConstIterator : public QConstIterator<QMetaSequence> +// Keep this a single long line, otherwise syncqt doesn't create a class forwarding header +class QT_CORE_DEPRECATED_EXPORT_VERSION_X_6_15("Use QMetaSequence's iterables and iterators instead.") QSequentialConstIterator : public QConstIterator<QMetaSequence> { public: using value_type = QVariant; @@ -55,9 +53,8 @@ public: QVariantConstPointer operator->() const; }; -class -QT_CORE_DEPRECATED_EXPORT_VERSION_X_6_15("Use QMetaSequence::Iterable instead.") -QSequentialIterable : public QIterable<QMetaSequence> +// Keep this a single long line, otherwise syncqt doesn't create a class forwarding header +class QT_CORE_DEPRECATED_EXPORT_VERSION_X_6_15("Use QMetaSequence's iterables and iterators instead.") QSequentialIterable : public QIterable<QMetaSequence> { public: using iterator = QTaggedIterator<QSequentialIterator, void>; |
