summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r--src/corelib/kernel/qassociativeiterable.cpp6
-rw-r--r--src/corelib/kernel/qassociativeiterable.h15
-rw-r--r--src/corelib/kernel/qiterable.cpp13
-rw-r--r--src/corelib/kernel/qiterable.h20
-rw-r--r--src/corelib/kernel/qiterable_impl.h4
-rw-r--r--src/corelib/kernel/qmetaassociation.h10
-rw-r--r--src/corelib/kernel/qmetasequence.h8
-rw-r--r--src/corelib/kernel/qmetatype.cpp16
-rw-r--r--src/corelib/kernel/qsequentialiterable.cpp2
-rw-r--r--src/corelib/kernel/qsequentialiterable.h15
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>;