summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrett Stottlemyer <bstottle@ford.com>2021-02-13 15:19:49 -0500
committerBrett Stottlemyer <bstottle@ford.com>2021-02-15 14:15:00 -0500
commit8fcc330ac5bbe1dc7faa72a2343f82d47ffb41fa (patch)
tree6e9891da2442d2be6613056a55d53cc3b8830f4e /src
parent306edc01e133bd3addf219923a9bb755cdda57e9 (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.cpp21
-rw-r--r--src/remoteobjects/qremoteobjectnode.cpp13
-rw-r--r--src/remoteobjects/qremoteobjectpacket.cpp62
-rw-r--r--src/remoteobjects/qremoteobjectreplica.cpp12
-rw-r--r--src/remoteobjects/qremoteobjectsource.cpp12
-rw-r--r--src/remoteobjects/qremoteobjectsourceio.cpp8
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"))