From 95df9edd527c75aa5246ead99a24d822cdc963fd Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 17 Dec 2014 19:05:45 +0100 Subject: [PATCH] Removed warning from fixQVariantFromDbusArgument. @MS: Please crosscheck. In the past function was only called with QDBusArgument. Now called from CVariant sometimes with standard variant types (QString, int). Expected? --- src/blackmisc/blackmiscfreefunctions.cpp | 43 ++++++++++++------------ 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/blackmisc/blackmiscfreefunctions.cpp b/src/blackmisc/blackmiscfreefunctions.cpp index 19cdb8ccb..0ee67d41b 100644 --- a/src/blackmisc/blackmiscfreefunctions.cpp +++ b/src/blackmisc/blackmiscfreefunctions.cpp @@ -187,29 +187,30 @@ uint BlackMisc::calculateHash(const QList &values, const char *className) */ QVariant BlackMisc::fixQVariantFromDbusArgument(const QVariant &variant, int localUserType) { - if (variant.canConvert()) + // my business? + if (!variant.canConvert()) { return variant; } + + // complex, user type + // it has to be made sure, that the cast works + const QDBusArgument arg = variant.value(); + const int userType = static_cast(QVariant::UserType); + if (localUserType < userType) { - // complex, user type - // it has to be made sure, that the cast works - const QDBusArgument arg = variant.value(); - if (localUserType < static_cast(QVariant::UserType)) - { - // complex Qt type, e.g. QDateTime - return BlackMisc::complexQtTypeFromDbusArgument(arg, localUserType); - } - else - { - QVariant valueVariant(localUserType, nullptr); - auto *meta = Private::getValueObjectMetaInfo(valueVariant); - if (meta) - { - meta->unmarshall(arg, valueVariant.data()); - return valueVariant; - } - } + // complex Qt type, e.g. QDateTime + return BlackMisc::complexQtTypeFromDbusArgument(arg, localUserType); + } + else + { + QVariant valueVariant(localUserType, nullptr); + auto *meta = Private::getValueObjectMetaInfo(valueVariant); + if (meta) + { + meta->unmarshall(arg, valueVariant.data()); + return valueVariant; + } + Q_ASSERT_X(false, "fixQVariantFromDbusArgument", "no meta"); + return valueVariant; } - qWarning() << "fixQVariantFromDbusArgument called with unsupported type"; - return variant; } /*