diff options
-rw-r--r-- | libqmenumodel/src/converter.cpp | 2 | ||||
-rw-r--r-- | tests/client/convertertest.cpp | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/libqmenumodel/src/converter.cpp b/libqmenumodel/src/converter.cpp index cbf8076..ff70803 100644 --- a/libqmenumodel/src/converter.cpp +++ b/libqmenumodel/src/converter.cpp @@ -315,7 +315,7 @@ GVariant* Converter::toGVariantWithSchema(const QVariant &value, const char* sch result = g_variant_new_string(qUtf8Printable(value.toString())); } } else if (g_variant_type_equal(schema_type, G_VARIANT_TYPE_VARIANT)) { - result = Converter::toGVariant(value); + result = g_variant_new_variant(Converter::toGVariant(value)); } else if (g_variant_type_equal(schema_type, G_VARIANT_TYPE_VARDICT)) { if (value.canConvert(QVariant::Map)) { result = Converter::toGVariant(value.toMap()); diff --git a/tests/client/convertertest.cpp b/tests/client/convertertest.cpp index f1fd48e..5492a02 100644 --- a/tests/client/convertertest.cpp +++ b/tests/client/convertertest.cpp @@ -192,6 +192,11 @@ private Q_SLOTS: QTest::newRow("int64") << QVariant::fromValue<int>(1) << "x"; QTest::newRow("uint64") << QVariant::fromValue<int>(1) << "t"; + // convert to variant + QTest::newRow("variant from int") << QVariant::fromValue<int>(1) << "v"; + QTest::newRow("variant from double") << QVariant::fromValue<double>(1.1) << "v"; + QTest::newRow("variant from string") << QVariant::fromValue<QString>("string") << "v"; + // convert to bool QTest::newRow("bool") << QVariant::fromValue<bool>(true) << "b"; QTest::newRow("bool from int") << QVariant::fromValue<int>(1) << "b"; |