aboutsummaryrefslogtreecommitdiffstats
path: root/src/ivicore
diff options
context:
space:
mode:
Diffstat (limited to 'src/ivicore')
-rw-r--r--src/ivicore/qividefaultpropertyoverrider.cpp12
-rw-r--r--src/ivicore/qivipendingreply.cpp15
-rw-r--r--src/ivicore/qivipendingreply.h8
-rw-r--r--src/ivicore/qiviqmlconversion_helper.cpp32
-rw-r--r--src/ivicore/qiviqmlconversion_helper.h2
-rw-r--r--src/ivicore/qivisimulationengine.cpp6
-rw-r--r--src/ivicore/qivisimulationglobalobject.cpp8
-rw-r--r--src/ivicore/queryparser/qiviqueryterm.cpp2
8 files changed, 44 insertions, 41 deletions
diff --git a/src/ivicore/qividefaultpropertyoverrider.cpp b/src/ivicore/qividefaultpropertyoverrider.cpp
index 328cdff..2072050 100644
--- a/src/ivicore/qividefaultpropertyoverrider.cpp
+++ b/src/ivicore/qividefaultpropertyoverrider.cpp
@@ -127,7 +127,7 @@ QString QIviDefaultPropertyOverrider::PropertyOverride::name() const
QString QIviDefaultPropertyOverrider::PropertyOverride::typeName() const
{
const int userType(m_metaProperty.userType());
- return QString::fromLatin1(QMetaType::typeName(userType));
+ return QString::fromLatin1(QMetaType(userType).name());
}
QString QIviDefaultPropertyOverrider::PropertyOverride::displayText() const
@@ -184,11 +184,11 @@ bool QIviDefaultPropertyOverrider::PropertyOverride::notifyOverridenValue(const
if (!notifySignal.isValid() || notifySignal.parameterCount() != 1)
return false;
- switch (value.type()) {
- case QVariant::Int: return notifySignal.invoke(carrier, Q_ARG(int, value.value<int>()));
- case QVariant::String: return notifySignal.invoke(carrier, Q_ARG(QString, value.value<QString>()));
- case QVariant::Double: return notifySignal.invoke(carrier, Q_ARG(double, value.value<double>()));
- case QVariant::Bool: return notifySignal.invoke(carrier, Q_ARG(double, value.value<bool>()));
+ switch (value.metaType().id()) {
+ case QMetaType::Int: return notifySignal.invoke(carrier, Q_ARG(int, value.value<int>()));
+ case QMetaType::QString: return notifySignal.invoke(carrier, Q_ARG(QString, value.value<QString>()));
+ case QMetaType::Double: return notifySignal.invoke(carrier, Q_ARG(double, value.value<double>()));
+ case QMetaType::Bool: return notifySignal.invoke(carrier, Q_ARG(double, value.value<bool>()));
default:
return false;
}
diff --git a/src/ivicore/qivipendingreply.cpp b/src/ivicore/qivipendingreply.cpp
index b0c6edd..ff55666 100644
--- a/src/ivicore/qivipendingreply.cpp
+++ b/src/ivicore/qivipendingreply.cpp
@@ -485,17 +485,18 @@ void QIviPendingReplyWatcher::setSuccess(const QVariant &value)
QVariant var = value;
+ //We need a special conversion for enums from QML as they are saved as int
+ QMetaType metaType(d->m_type);
+ bool isEnumOrFlag = false;
+
//Try to convert the value, if successfully, use the converted value
QVariant temp(var);
- if (temp.convert(d->m_type))
+ if (temp.convert(metaType))
var = temp;
- //We need a special conversion for enums from QML as they are saved as int
- QMetaType metaType(d->m_type);
- bool isEnumOrFlag = false;
const QMetaObject *mo = metaType.metaObject();
- const QString enumName = QString::fromLocal8Bit(QMetaType::typeName(d->m_type)).split(QStringLiteral("::")).last();
+ const QString enumName = QString::fromLocal8Bit(metaType.name()).split(QStringLiteral("::")).last();
if (mo) {
QMetaEnum mEnum = mo->enumerator(mo->indexOfEnumerator(enumName.toLocal8Bit().constData()));
if (mEnum.isValid()) {
@@ -508,8 +509,8 @@ void QIviPendingReplyWatcher::setSuccess(const QVariant &value)
}
//Check that the type names match only if it's not a enum, as it will be converted automatically in this case.
- if (!isEnumOrFlag && var.typeName() != QVariant::typeToName(d->m_type)) {
- qtivi_qmlOrCppWarning(this, QString(QStringLiteral("Expected: %1 but got %2")).arg(QLatin1String(QVariant::typeToName(d->m_type)), QLatin1String(QVariant::typeToName(value.userType()))));
+ if (!isEnumOrFlag && var.metaType() != metaType) {
+ qtivi_qmlOrCppWarning(this, QString(QStringLiteral("Expected: %1 but got %2")).arg(QLatin1String(metaType.name()), QLatin1String(var.metaType().name())));
return;
}
diff --git a/src/ivicore/qivipendingreply.h b/src/ivicore/qivipendingreply.h
index e9bfc3d..7b2cb4d 100644
--- a/src/ivicore/qivipendingreply.h
+++ b/src/ivicore/qivipendingreply.h
@@ -269,7 +269,7 @@ public:
//Workaround for QTBUG-83664
//If T is a enum
-template <typename T> Q_INLINE_TEMPLATE typename QtPrivate::QEnableIf<QtPrivate::IsQEnumHelper<T>::Value, void>::Type qIviRegisterPendingReplyType(const char *name = nullptr)
+template <typename T> Q_INLINE_TEMPLATE typename std::enable_if<QtPrivate::IsQEnumHelper<T>::Value, void>::type qIviRegisterPendingReplyType(const char *name = nullptr)
{
qRegisterMetaType<T>();
QString n;
@@ -280,7 +280,7 @@ template <typename T> Q_INLINE_TEMPLATE typename QtPrivate::QEnableIf<QtPrivate:
if (me.isValid() && me.isFlag())
n = QLatin1String(me.scope()) + QStringLiteral("::") + QLatin1String(me.name());
else
- n = QLatin1String(QMetaType::typeName(qMetaTypeId<T>()));
+ n = QLatin1String(QMetaType(qMetaTypeId<T>()).name());
}
const QString t_name = QStringLiteral("QIviPendingReply<") + n + QStringLiteral(">");
@@ -288,10 +288,10 @@ template <typename T> Q_INLINE_TEMPLATE typename QtPrivate::QEnableIf<QtPrivate:
}
//If T is NOT a enum
-template <typename T> Q_INLINE_TEMPLATE typename QtPrivate::QEnableIf<!QtPrivate::IsQEnumHelper<T>::Value, void>::Type qIviRegisterPendingReplyType(const char *name = nullptr)
+template <typename T> Q_INLINE_TEMPLATE typename std::enable_if<!QtPrivate::IsQEnumHelper<T>::Value, void>::type qIviRegisterPendingReplyType(const char *name = nullptr)
{
qRegisterMetaType<T>();
- const char* n = name ? name : QMetaType::typeName(qMetaTypeId<T>());
+ const char* n = name ? name : QMetaType(qMetaTypeId<T>()).name();
const QString t_name = QStringLiteral("QIviPendingReply<") + QLatin1String(n) + QStringLiteral(">");
qRegisterMetaType<QIviPendingReplyBase>(qPrintable(t_name));
}
diff --git a/src/ivicore/qiviqmlconversion_helper.cpp b/src/ivicore/qiviqmlconversion_helper.cpp
index 2b13b7c..4ad719f 100644
--- a/src/ivicore/qiviqmlconversion_helper.cpp
+++ b/src/ivicore/qiviqmlconversion_helper.cpp
@@ -100,12 +100,12 @@ QVariant qtivi_convertFromJSON(const QVariant &value)
QVariant val = value;
// First try to convert the values to a Map or a List
// This is needed as it could also store a QStringList or a Hash
- if (val.canConvert(QVariant::Map))
- val.convert(QVariant::Map);
- if (val.canConvert(QVariant::List))
- val.convert(QVariant::List);
+ if (val.canConvert(QMetaType::fromType<QVariantMap>()))
+ val.convert(QMetaType::fromType<QVariantMap>());
+ if (val.canConvert(QMetaType::fromType<QVariantList>()))
+ val.convert(QMetaType::fromType<QVariantList>());
- if (val.type() == QVariant::Map) {
+ if (val.metaType() == QMetaType::fromType<QVariantMap>()) {
const QVariantMap map = val.toMap();
if (map.contains(typeLiteral) && map.contains(valueLiteral)) {
const QString type = map.value(typeLiteral).toString();
@@ -116,7 +116,8 @@ QVariant qtivi_convertFromJSON(const QVariant &value)
const int lastIndex = enumValue.lastIndexOf(QStringLiteral("::"));
const QString className = enumValue.left(lastIndex) + QStringLiteral("*");
enumValue = enumValue.right(enumValue.count() - lastIndex - 2);
- const QMetaObject *mo = QMetaType::metaObjectForType(QMetaType::type(className.toLatin1()));
+ QMetaType metaType = QMetaType::fromName(className.toLatin1());
+ const QMetaObject *mo = metaType.metaObject();
if (Q_UNLIKELY(!mo)) {
qWarning() << "Couldn't retrieve MetaObject for enum parsing:" << map;
qWarning("Please make sure %s is registered in Qt's meta-type system: qRegisterMetaType<%s>()",
@@ -128,14 +129,15 @@ QVariant qtivi_convertFromJSON(const QVariant &value)
QMetaEnum me = mo->enumerator(i);
bool ok = false;
int value = me.keysToValue(enumValue.toLatin1(), &ok);
- if (ok)
- return value;
+ if (ok) {
+ return QVariant(QMetaType::fromName((QLatin1String(me.scope()) + QStringLiteral("::") + QLatin1String(me.enumName())).toLatin1()), &value);
+ }
}
qWarning() << "Couldn't parse the enum definition" << map;
return QVariant();
} else {
- int typeId = QMetaType::type(type.toLatin1());
- const QMetaObject *mo = QMetaType::metaObjectForType(typeId);
+ QMetaType metaType = QMetaType::fromName(type.toLatin1());
+ const QMetaObject *mo = metaType.metaObject();
if (Q_UNLIKELY(!mo)) {
qWarning() << "Couldn't retrieve MetaObject for struct parsing:" << map;
qWarning("Please make sure %s is registered in Qt's meta-type system: qRegisterMetaType<%s>()",
@@ -143,9 +145,9 @@ QVariant qtivi_convertFromJSON(const QVariant &value)
return QVariant();
}
- void *gadget = QMetaType::create(typeId);
+ void *gadget = metaType.create();
if (!Q_UNLIKELY(gadget)) {
- qWarning("Couldn't create a new instance of %s", QMetaType::typeName(typeId));
+ qWarning("Couldn't create a new instance of %s", metaType.name());
return QVariant();
}
@@ -159,12 +161,12 @@ QVariant qtivi_convertFromJSON(const QVariant &value)
qWarning("Couldn't find method: %s::fromJSON(QVariant)\n"
"If your are using code created by the ivigenerator, please regenerate"
"your frontend code. See AUTOSUITE-1374 for why this is needed",
- QMetaType::typeName(typeId));
+ metaType.name());
return QVariant();
}
mo->method(moIdx).invokeOnGadget(gadget, Q_ARG(QVariant, QVariant(value)));
- return QVariant(typeId, gadget);
+ return QVariant(metaType, gadget);
}
}
@@ -172,7 +174,7 @@ QVariant qtivi_convertFromJSON(const QVariant &value)
for (auto i = map.constBegin(); i != map.constEnd(); ++i)
convertedValues.insert(i.key(), qtivi_convertFromJSON(i.value()));
return convertedValues;
- } else if (val.type() == QVariant::List) {
+ } else if (val.metaType() == QMetaType::fromType<QVariantList>()) {
QVariantList values = val.toList();
for (auto i = values.begin(); i != values.end(); ++i)
*i = qtivi_convertFromJSON(*i);
diff --git a/src/ivicore/qiviqmlconversion_helper.h b/src/ivicore/qiviqmlconversion_helper.h
index 620fd8e..3f4313a 100644
--- a/src/ivicore/qiviqmlconversion_helper.h
+++ b/src/ivicore/qiviqmlconversion_helper.h
@@ -63,7 +63,7 @@ template <typename T> QVariant qtivi_convertValue(const T &val)
int userType = qMetaTypeId<T>();
QMetaType metaType(userType);
const QMetaObject *mo = metaType.metaObject();
- QString enumName = QString::fromLocal8Bit(QMetaType::typeName(userType)).split(QStringLiteral("::")).last();
+ QString enumName = QString::fromLocal8Bit(metaType.name()).split(QStringLiteral("::")).last();
if (mo) {
QMetaEnum mEnum = mo->enumerator(mo->indexOfEnumerator(enumName.toLocal8Bit().constData()));
if (mEnum.isValid())
diff --git a/src/ivicore/qivisimulationengine.cpp b/src/ivicore/qivisimulationengine.cpp
index 52cfb04..860c305 100644
--- a/src/ivicore/qivisimulationengine.cpp
+++ b/src/ivicore/qivisimulationengine.cpp
@@ -84,7 +84,7 @@ namespace qtivi_helper {
void parseEnv(const QByteArray &rulesSrc, QHash<QString, QString> &hash) {
const QString content = QString::fromLocal8Bit(rulesSrc);
- const auto lines = content.splitRef(QLatin1Char(';'));
+ const auto lines = content.split(QLatin1Char(';'));
for (auto line : lines) {
// Remove whitespace at start and end of line:
line = line.trimmed();
@@ -99,8 +99,8 @@ namespace qtivi_helper {
if (fixedStr.startsWith(qrcUrlLiteral))
fixedStr = fixedStr.mid(3);
- if (QFile::exists(fixedStr.toString()))
- hash.insert(key.toString(), valueStr.toString());
+ if (QFile::exists(fixedStr))
+ hash.insert(key, valueStr);
else
qCWarning(qLcIviSimulationEngine, "Ignoring malformed override: File does not exist: '%s'", fixedStr.toUtf8().constData());
} else {
diff --git a/src/ivicore/qivisimulationglobalobject.cpp b/src/ivicore/qivisimulationglobalobject.cpp
index fe9f7b6..40b2fb1 100644
--- a/src/ivicore/qivisimulationglobalobject.cpp
+++ b/src/ivicore/qivisimulationglobalobject.cpp
@@ -429,9 +429,9 @@ bool QIviSimulationGlobalObject::checkSettings(const QVariantMap &data, const QV
}
}
const QVariant domainDomain = parseDomainValue(data, domainLiteral, zone);
- bool valueToDouble = value.canConvert(QVariant::Double);
- bool minDomainToDouble = minDomain.canConvert(QVariant::Double);
- bool maxDomainToDouble = maxDomain.canConvert(QVariant::Double);
+ bool valueToDouble = value.canConvert(QMetaType::fromType<double>());
+ bool minDomainToDouble = minDomain.canConvert(QMetaType::fromType<double>());
+ bool maxDomainToDouble = maxDomain.canConvert(QMetaType::fromType<double>());
if (unsupportedDomain.isValid()) {
return !unsupportedDomain.toBool();
@@ -473,7 +473,7 @@ QVariant QIviSimulationGlobalObject::parseDomainValue(const QVariantMap &data, c
return QVariant();
const QVariant domainData = data.value(domain);
- if (domainData.type() == QVariant::Map) {
+ if (domainData.metaType().id() == QMetaType::QVariantMap) {
const QVariantMap domainMap = domainData.toMap();
QString z = zone;
if (zone.isEmpty())
diff --git a/src/ivicore/queryparser/qiviqueryterm.cpp b/src/ivicore/queryparser/qiviqueryterm.cpp
index 867439d..556ad50 100644
--- a/src/ivicore/queryparser/qiviqueryterm.cpp
+++ b/src/ivicore/queryparser/qiviqueryterm.cpp
@@ -490,7 +490,7 @@ QDataStream &operator>>(QDataStream &in, QIviAbstractQueryTerm **var)
Q_ASSERT(type == QStringLiteral("conjunction"));
auto term = new QIviConjunctionTerm();
aTerm = term;
- int count = 0;
+ qsizetype count = 0;
in >> term->d_ptr->m_conjunction;
in >> count;
for (int i = 0; i < count; ++i) {