diff options
author | Brett Stottlemyer <bstottle@ford.com> | 2021-02-13 15:19:49 -0500 |
---|---|---|
committer | Brett Stottlemyer <bstottle@ford.com> | 2021-02-15 14:15:00 -0500 |
commit | 8fcc330ac5bbe1dc7faa72a2343f82d47ffb41fa (patch) | |
tree | 6e9891da2442d2be6613056a55d53cc3b8830f4e /src | |
parent | 306edc01e133bd3addf219923a9bb755cdda57e9 (diff) |
Fix QMetaType Deprecation warnings
Change-Id: If7de5da3e7ad6d345e8b483486bb7177bccbc0df
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/remoteobjects/qremoteobjectdynamicreplica.cpp | 21 | ||||
-rw-r--r-- | src/remoteobjects/qremoteobjectnode.cpp | 13 | ||||
-rw-r--r-- | src/remoteobjects/qremoteobjectpacket.cpp | 62 | ||||
-rw-r--r-- | src/remoteobjects/qremoteobjectreplica.cpp | 12 | ||||
-rw-r--r-- | src/remoteobjects/qremoteobjectsource.cpp | 12 | ||||
-rw-r--r-- | src/remoteobjects/qremoteobjectsourceio.cpp | 8 |
6 files changed, 68 insertions, 60 deletions
diff --git a/src/remoteobjects/qremoteobjectdynamicreplica.cpp b/src/remoteobjects/qremoteobjectdynamicreplica.cpp index 0fcfb10..ebe9b32 100644 --- a/src/remoteobjects/qremoteobjectdynamicreplica.cpp +++ b/src/remoteobjects/qremoteobjectdynamicreplica.cpp @@ -156,8 +156,8 @@ int QRemoteObjectDynamicReplica::qt_metacall(QMetaObject::Call call, int id, voi *reinterpret_cast<QVariant*>(argv[0]) = impl->m_propertyStorage[id]; else { const QVariant value = propAsVariant(id); - QMetaType::destruct(mp.userType(), argv[0]); - QMetaType::construct(mp.userType(), argv[0], value.data()); + mp.metaType().destruct(argv[0]); + mp.metaType().construct(argv[0], value.data()); } const bool readStatus = true; // Caller supports QVariant returns? Then we can also report errors @@ -178,15 +178,14 @@ int QRemoteObjectDynamicReplica::qt_metacall(QMetaObject::Call call, int id, voi } else { // method relay from Replica to Source const QMetaMethod mm = impl->m_metaObject->method(saved_id); - const QList<QByteArray> types = mm.parameterTypes(); - const int typeSize = types.size(); + const int nParam = mm.parameterCount(); QVariantList args; - args.reserve(typeSize); - for (int i = 0; i < typeSize; ++i) { - const int type = QMetaType::type(types[i].constData()); - if (impl->m_metaObject->indexOfEnumerator(types[i].constData()) != -1) { - const auto size = QMetaType(type).sizeOf(); + args.reserve(nParam); + for (int i = 0; i < nParam; ++i) { + const auto metaType = mm.parameterMetaType(i); + if (metaType.flags().testFlag(QMetaType::IsEnumeration)) { + const auto size = metaType.sizeOf(); switch (size) { case 1: args.push_back(QVariant(QMetaType(QMetaType::Char), argv[i + 1])); break; case 2: args.push_back(QVariant(QMetaType(QMetaType::Short), argv[i + 1])); break; @@ -194,11 +193,11 @@ int QRemoteObjectDynamicReplica::qt_metacall(QMetaObject::Call call, int id, voi // Qt currently only supports enum values of 4 or less bytes (QMetaEnum value(index) returns int) // case 8: args.push_back(QVariant(QMetaType::Int, argv[i + 1])); break; default: - qWarning() << "Invalid enum detected (Dynamic Replica)" << QMetaType::typeName(type) << "with size" << size; + qWarning() << "Invalid enum detected (Dynamic Replica)" << metaType.name() << "with size" << size; args.push_back(QVariant(QMetaType(QMetaType::Int), argv[i + 1])); break; } } else - args.push_back(QVariant(QMetaType(type), argv[i + 1])); + args.push_back(QVariant(metaType, argv[i + 1])); } if (debugArgs) { diff --git a/src/remoteobjects/qremoteobjectnode.cpp b/src/remoteobjects/qremoteobjectnode.cpp index 1808d2d..7773865 100644 --- a/src/remoteobjects/qremoteobjectnode.cpp +++ b/src/remoteobjects/qremoteobjectnode.cpp @@ -86,8 +86,8 @@ static void GadgetsStaticMetacallFunction(QObject *_o, QMetaObject::Call _c, int GadgetType *_t = reinterpret_cast<GadgetType *>(_o); if (_id < _t->size()) { const auto &prop = _t->at(_id); - QMetaType::destruct(int(prop.userType()), _a[0]); - QMetaType::construct(int(prop.userType()), _a[0], prop.constData()); + prop.metaType().destruct(_a[0]); + prop.metaType().construct(_a[0], prop.constData()); } } else if (_c == QMetaObject::WriteProperty) { GadgetType *_t = reinterpret_cast<GadgetType *>(_o); @@ -851,7 +851,7 @@ static TypeInfo *registerEnum(const QByteArray &name, uint size=4u) // When we add support for enum classes, we will need to set this to something like // QByteArray(enumClass).append("::").append(enumMeta.name()) when enumMeta.isScoped() is true. // That is a new feature, though. - if (QMetaType::isRegistered(QMetaType::type(name))) + if (QMetaType::fromName(name).isValid()) return result; switch (size) { case 1: @@ -882,7 +882,8 @@ static TypeInfo *registerEnum(const QByteArray &name, uint size=4u) static int registerGadgets(IoDeviceBase *connection, Gadgets &gadgets, QByteArray typeName) { const auto &gadget = gadgets.take(typeName); - int typeId = QMetaType::type(typeName); + // TODO Look at having registerGadgets return QMetaType index of the id of the type + int typeId = QMetaType::fromName(typeName).id(); if (typeId != QMetaType::UnknownType) { trackConnection(typeId, connection); return typeId; @@ -894,10 +895,10 @@ static int registerGadgets(IoDeviceBase *connection, Gadgets &gadgets, QByteArra gadgetBuilder.setClassName(typeName); gadgetBuilder.setFlags(DynamicMetaObject | PropertyAccessInStaticMetaCall); for (const auto &prop : gadget.properties) { - int propertyType = QMetaType::type(prop.type); + int propertyType = QMetaType::fromName(prop.type).id(); if (!propertyType && gadgets.contains(prop.type)) propertyType = registerGadgets(connection, gadgets, prop.type); - entry.gadgetType.push_back(QVariant(QVariant::Type(propertyType))); + entry.gadgetType.push_back(QVariant(QMetaType(propertyType))); auto dynamicProperty = gadgetBuilder.addProperty(prop.name, prop.type); dynamicProperty.setWritable(true); dynamicProperty.setReadable(true); diff --git a/src/remoteobjects/qremoteobjectpacket.cpp b/src/remoteobjects/qremoteobjectpacket.cpp index 7c19f2b..f1e9318 100644 --- a/src/remoteobjects/qremoteobjectpacket.cpp +++ b/src/remoteobjects/qremoteobjectpacket.cpp @@ -80,18 +80,19 @@ namespace QRemoteObjectPackets { // decode the integer variant into an enum variant (via decodeVariant). const QVariant encodeVariant(const QVariant &value) { - if (QMetaType::typeFlags(value.userType()).testFlag(QMetaType::IsEnumeration)) { + const auto metaType = value.metaType(); + if (metaType.flags().testFlag(QMetaType::IsEnumeration)) { auto converted = QVariant(value); - const auto size = QMetaType(value.userType()).sizeOf(); + const auto size = metaType.sizeOf(); switch (size) { - case 1: converted.convert(QMetaType::Char); break; - case 2: converted.convert(QMetaType::Short); break; - case 4: converted.convert(QMetaType::Int); break; + case 1: converted.convert(QMetaType::fromType<qint8>()); break; + case 2: converted.convert(QMetaType::fromType<qint16>()); break; + case 4: converted.convert(QMetaType::fromType<qint32>()); break; // Qt currently only supports enum values of 4 or less bytes (QMetaEnum value(index) returns int) // case 8: converted.convert(QMetaType::Long); break; // typeId for long from qmetatype.h default: - qWarning() << "Invalid enum detected" << QMetaType::typeName(value.userType()) << "with size" << size; - converted.convert(QMetaType::Int); + qWarning() << "Invalid enum detected" << metaType.name() << "with size" << size; + converted.convert(QMetaType::fromType<qint32>()); } #ifdef QTRO_VERBOSE_PROTOCOL qDebug() << "Converting from enum to integer type" << size << converted << value; @@ -103,11 +104,11 @@ const QVariant encodeVariant(const QVariant &value) QVariant &decodeVariant(QVariant &value, int type) { - if (QMetaType::typeFlags(type).testFlag(QMetaType::IsEnumeration)) { + if (QMetaType(type).flags().testFlag(QMetaType::IsEnumeration)) { #ifdef QTRO_VERBOSE_PROTOCOL QVariant encoded(value); #endif - value.convert(type); + value.convert(QMetaType(type)); #ifdef QTRO_VERBOSE_PROTOCOL qDebug() << "Converting to enum from integer type" << value << encoded; #endif @@ -122,7 +123,7 @@ void serializeProperty(QDataStream &ds, const QRemoteObjectSourceBase *source, i const auto target = source->m_api->isAdapterProperty(internalIndex) ? source->m_adapter : source->m_object; const auto property = target->metaObject()->property(propertyIndex); const QVariant value = property.read(target); - if (QMetaType::typeFlags(property.userType()).testFlag(QMetaType::PointerToQObject)) { + if (QMetaType(property.userType()).flags().testFlag(QMetaType::PointerToQObject)) { auto const childSource = source->m_children.value(internalIndex); auto valueAsPointerToQObject = qvariant_cast<QObject *>(value); if (childSource->m_object != valueAsPointerToQObject) @@ -147,8 +148,8 @@ void serializeProperty(QDataStream &ds, const QRemoteObjectSourceBase *source, i return; } if (source->d->isDynamic && property.userType() == QMetaType::QVariant && - QMetaType::typeFlags(value.userType()).testFlag(QMetaType::IsGadget)) { - const auto typeName = QString::fromLatin1(QMetaType::typeName(value.userType())); + QMetaType(value.userType()).flags().testFlag(QMetaType::IsGadget)) { + const auto typeName = QString::fromLatin1(QMetaType(value.userType()).name()); if (!source->d->sentTypes.contains(typeName)) { QRO_ qro(value); ds << QVariant::fromValue<QRO_>(qro); @@ -238,7 +239,7 @@ static ObjectType getObjectType(const QString &typeName) { if (typeName == QLatin1String("QAbstractItemModelAdapter")) return ObjectType::MODEL; - auto tid = QMetaType::type(typeName.toUtf8()); + auto tid = QMetaType::fromName(typeName.toUtf8()).id(); if (tid == QMetaType::UnknownType) return ObjectType::CLASS; QMetaType type(tid); @@ -254,7 +255,7 @@ static QMetaEnum metaEnumFromType(int type) QMetaType t(type); if (t.flags() & QMetaType::IsEnumeration) { if (const QMetaObject *metaObject = t.metaObject()) { - const char *enumName = QMetaType::typeName(type); + const char *enumName = t.name(); const char *lastColon = std::strrchr(enumName, ':'); if (lastColon) enumName = lastColon + 1; @@ -266,7 +267,7 @@ static QMetaEnum metaEnumFromType(int type) static bool checkEnum(int type, QSet<QMetaEnum> &enums) { - if (QMetaType::typeFlags(type).testFlag(QMetaType::IsEnumeration)) { + if (QMetaType(type).flags().testFlag(QMetaType::IsEnumeration)) { QMetaEnum meta = metaEnumFromType(type); enums.insert(meta); return true; @@ -284,8 +285,8 @@ static void recurseMetaobject(const QMetaObject *mo, QSet<const QMetaObject *> & const auto property = mo->property(i); if (checkEnum(property.userType(), enums)) continue; - if (QMetaType::typeFlags(property.userType()).testFlag(QMetaType::IsGadget)) - recurseMetaobject(QMetaType::metaObjectForType(property.userType()), gadgets, enums); + if (QMetaType(property.userType()).flags().testFlag(QMetaType::IsGadget)) + recurseMetaobject(QMetaType(property.userType()).metaObject(), gadgets, enums); } } @@ -306,9 +307,10 @@ void recurseForGadgets(QSet<const QMetaObject *> &gadgets, QSet<QMetaEnum> &enum const int type = api->signalParameterType(si, pi); if (checkEnum(type, enums)) continue; - if (!QMetaType::typeFlags(type).testFlag(QMetaType::IsGadget)) + const auto metaType = QMetaType(type); + if (!metaType.flags().testFlag(QMetaType::IsGadget)) continue; - const auto mo = QMetaType::metaObjectForType(type); + const auto mo = metaType.metaObject(); if (source->d->sentTypes.contains(QLatin1String(mo->className()))) continue; recurseMetaobject(mo, gadgets, enums); @@ -322,9 +324,10 @@ void recurseForGadgets(QSet<const QMetaObject *> &gadgets, QSet<QMetaEnum> &enum const int type = api->methodParameterType(mi, pi); if (checkEnum(type, enums)) continue; - if (!QMetaType::typeFlags(type).testFlag(QMetaType::IsGadget)) + const auto metaType = QMetaType(type); + if (!metaType.flags().testFlag(QMetaType::IsGadget)) continue; - const auto mo = QMetaType::metaObjectForType(type); + const auto mo = metaType.metaObject(); if (source->d->sentTypes.contains(QLatin1String(mo->className()))) continue; recurseMetaobject(mo, gadgets, enums); @@ -339,7 +342,8 @@ void recurseForGadgets(QSet<const QMetaObject *> &gadgets, QSet<QMetaEnum> &enum const int type = metaProperty.userType(); if (checkEnum(type, enums)) continue; - if (QMetaType::typeFlags(type).testFlag(QMetaType::PointerToQObject)) { + const auto metaType = QMetaType(type); + if (metaType.flags().testFlag(QMetaType::PointerToQObject)) { auto const objectType = getObjectType(QString::fromLatin1(metaProperty.typeName())); if (objectType == ObjectType::CLASS) { auto const childSource = source->m_children.value(pi); @@ -347,9 +351,9 @@ void recurseForGadgets(QSet<const QMetaObject *> &gadgets, QSet<QMetaEnum> &enum recurseForGadgets(gadgets, enums, childSource); } } - if (!QMetaType::typeFlags(type).testFlag(QMetaType::IsGadget)) + if (!metaType.flags().testFlag(QMetaType::IsGadget)) continue; - const auto mo = QMetaType::metaObjectForType(type); + const auto mo = metaType.metaObject(); if (source->d->sentTypes.contains(QLatin1String(mo->className()))) continue; recurseMetaobject(mo, gadgets, enums); @@ -374,7 +378,7 @@ static void serializeEnum(QDataStream &ds, const QMetaEnum &enumerator) ds << enumerator.isFlag(); ds << enumerator.isScoped(); const auto typeName = QByteArray(enumerator.scope()).append("::").append(enumerator.name()); - quint32 size = QMetaType(QMetaType::type(typeName.constData())).sizeOf(); + quint32 size = QMetaType::fromName(typeName.constData()).sizeOf(); ds << size; #ifdef QTRO_VERBOSE_PROTOCOL qDebug(" Enum (name = %s, size = %d, isFlag = %s, isScoped = %s):", enumerator.name(), size, enumerator.isFlag() ? "true" : "false", enumerator.isScoped() ? "true" : "false"); @@ -531,7 +535,7 @@ void serializeDefinition(QDataStream &ds, const QRemoteObjectSourceBase *source) #ifdef QTRO_VERBOSE_PROTOCOL qDebug() << " Property" << i << "name =" << metaProperty.name(); #endif - if (QMetaType::typeFlags(metaProperty.userType()).testFlag(QMetaType::PointerToQObject)) { + if (QMetaType(metaProperty.userType()).flags().testFlag(QMetaType::PointerToQObject)) { auto objectType = getObjectType(QLatin1String(metaProperty.typeName())); ds << (objectType == ObjectType::CLASS ? "QObject*" : "QAbstractItemModel*"); #ifdef QTRO_VERBOSE_PROTOCOL @@ -677,10 +681,12 @@ QRO_::QRO_(const QVariant &value) : type(ObjectType::GADGET) , isNull(false) { - auto meta = QMetaType::metaObjectForType(value.userType()); + const auto metaType = QMetaType(value.userType()); + auto meta = metaType.metaObject(); QDataStream out(&classDefinition, QIODevice::WriteOnly); const int numProperties = meta->propertyCount(); - const auto typeName = QByteArray::fromRawData(QMetaType::typeName(value.userType()), qstrlen(QMetaType::typeName(value.userType()))); + const auto name = metaType.name(); + const auto typeName = QByteArray::fromRawData(name, qstrlen(name)); out << quint32(0) << quint32(1); out << typeName; out << numProperties; diff --git a/src/remoteobjects/qremoteobjectreplica.cpp b/src/remoteobjects/qremoteobjectreplica.cpp index 0d565a1..d6fbb18 100644 --- a/src/remoteobjects/qremoteobjectreplica.cpp +++ b/src/remoteobjects/qremoteobjectreplica.cpp @@ -133,7 +133,7 @@ QConnectedReplicaImplementation::QConnectedReplicaImplementation(const QString & QtRemoteObjects::getTypeNameAndMetaobjectFromClassInfo(offsetMeta); for (int index = offsetMeta->propertyOffset(); index < offsetMeta->propertyCount(); ++index) { const QMetaProperty property = offsetMeta->property(index); - if (QMetaType::typeFlags(property.userType()).testFlag(QMetaType::PointerToQObject)) + if (QMetaType(property.userType()).flags().testFlag(QMetaType::PointerToQObject)) m_childIndices << index - offsetMeta->propertyOffset(); } } @@ -287,7 +287,7 @@ void QConnectedReplicaImplementation::setDynamicMetaObject(const QMetaObject *me for (int index = m_metaObject->propertyOffset(); index < m_metaObject->propertyCount(); ++index) { const QMetaProperty property = m_metaObject->property(index); - if (QMetaType::typeFlags(property.userType()).testFlag(QMetaType::PointerToQObject)) + if (QMetaType(property.userType()).flags().testFlag(QMetaType::PointerToQObject)) m_childIndices << index - m_metaObject->propertyOffset(); } } @@ -860,10 +860,10 @@ QRemoteObjectPendingCall QInProcessReplicaImplementation::_q_sendWithReply(QMeta Q_ASSERT(call == QMetaObject::InvokeMetaMethod); const int ReplicaIndex = index - m_methodOffset; - int typeId = QMetaType::type(connectionToSource->m_api->typeName(ReplicaIndex).constData()); - if (!QMetaType(typeId).sizeOf()) - typeId = QVariant::Invalid; - QVariant returnValue(QMetaType(typeId), nullptr); + auto metaType = QMetaType::fromName(connectionToSource->m_api->typeName(ReplicaIndex).constData()); + if (!metaType.sizeOf()) + metaType = QMetaType(QMetaType::UnknownType); + QVariant returnValue(metaType, nullptr); const int resolvedIndex = connectionToSource->m_api->sourceMethodIndex(ReplicaIndex); if (resolvedIndex < 0) { diff --git a/src/remoteobjects/qremoteobjectsource.cpp b/src/remoteobjects/qremoteobjectsource.cpp index 869f37a..ef60316 100644 --- a/src/remoteobjects/qremoteobjectsource.cpp +++ b/src/remoteobjects/qremoteobjectsource.cpp @@ -108,8 +108,9 @@ QRemoteObjectSourceBase::QRemoteObjectSourceBase(QObject *obj, Private *d, const continue; const int index = api->sourcePropertyIndex(i); const auto property = m_object->metaObject()->property(index); - if (QMetaType::typeFlags(property.userType()).testFlag(QMetaType::PointerToQObject)) { - auto propertyMeta = QMetaType::metaObjectForType(property.userType()); + const auto metaType = property.metaType(); + if (metaType.flags().testFlag(QMetaType::PointerToQObject)) { + auto propertyMeta = metaType.metaObject(); QObject *child = property.read(m_object).value<QObject *>(); if (propertyMeta->inherits(&QAbstractItemModel::staticMetaObject)) { const auto modelInfo = api->m_models.at(modelIndex++); @@ -290,7 +291,7 @@ QVariantList* QRemoteObjectSourceBase::marshalArgs(int index, void **a) { QVariantList &list = m_marshalledArgs; int N = m_api->signalParameterCount(index); - if (N == 1 && QMetaType::typeFlags(m_api->signalParameterType(index, 0)).testFlag(QMetaType::PointerToQObject)) + if (N == 1 && QMetaType(m_api->signalParameterType(index, 0)).flags().testFlag(QMetaType::PointerToQObject)) N = 0; // Don't try to send pointers, the will be handle by QRO_ if (list.size() < N) list.reserve(N); @@ -457,8 +458,9 @@ DynamicApiMap::DynamicApiMap(QObject *object, const QMetaObject *metaObject, con int i = 0; for (i = propOffset; i < propCount; ++i) { const QMetaProperty property = metaObject->property(i); - if (QMetaType::typeFlags(property.userType()).testFlag(QMetaType::PointerToQObject)) { - auto propertyMeta = QMetaType::metaObjectForType(property.userType()); + const auto metaType = property.metaType(); + if (metaType.flags().testFlag(QMetaType::PointerToQObject)) { + auto propertyMeta = metaType.metaObject(); QObject *child = property.read(object).value<QObject *>(); if (propertyMeta->inherits(&QAbstractItemModel::staticMetaObject)) { const QByteArray name = QByteArray::fromRawData(property.name(), diff --git a/src/remoteobjects/qremoteobjectsourceio.cpp b/src/remoteobjects/qremoteobjectsourceio.cpp index aed3f6d..49d9ad0 100644 --- a/src/remoteobjects/qremoteobjectsourceio.cpp +++ b/src/remoteobjects/qremoteobjectsourceio.cpp @@ -242,10 +242,10 @@ void QRemoteObjectSourceIo::onServerRead(QObject *conn) for (int i = 0; i < parameterCount; i++) decodeVariant(m_rxArgs[i], method.parameterType(i)); } - int typeId = QMetaType::type(source->m_api->typeName(index).constData()); - if (!QMetaType(typeId).sizeOf()) - typeId = QVariant::Invalid; - QVariant returnValue(QMetaType(typeId), nullptr); + auto metaType = QMetaType::fromName(source->m_api->typeName(index).constData()); + if (!metaType.sizeOf()) + metaType = QMetaType(QMetaType::UnknownType); + QVariant returnValue(metaType, nullptr); // If a Replica is used as a Source (which node->proxy() does) we can have a PendingCall return value. // In this case, we need to wait for the pending call and send that. if (source->m_api->typeName(index) == QByteArrayLiteral("QRemoteObjectPendingCall")) |