diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2021-10-06 11:14:27 +0300 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2021-10-06 15:21:13 +0000 |
commit | 5acd507e853fe67f1065dc69933d81e2564fb002 (patch) | |
tree | 56e54ee3a02d626da0c2191ea51ced90b7ffb42c /src/lib/corelib/language/moduleproviderloader.cpp | |
parent | d3ee6be6a2e72752697b3b7d1af009770dbc01d6 (diff) |
Fix setting stringlist properties in module providers
...when using foo,bar,baz syntax
Change-Id: I013a55f02c5d6d4bbbccf809b9524bed3c486df4
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/lib/corelib/language/moduleproviderloader.cpp')
-rw-r--r-- | src/lib/corelib/language/moduleproviderloader.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/corelib/language/moduleproviderloader.cpp b/src/lib/corelib/language/moduleproviderloader.cpp index f036e36ab..d8acad651 100644 --- a/src/lib/corelib/language/moduleproviderloader.cpp +++ b/src/lib/corelib/language/moduleproviderloader.cpp @@ -302,13 +302,18 @@ QStringList ModuleProviderLoader::getProviderSearchPaths( BuiltinDeclarations::instance().nameForType(ItemType::ModuleProvider))); } providerItem->setParent(product.item); + + // TODO: this looks like ModuleLoader::overrideItemProperties(), merge them? for (auto it = moduleConfig.begin(); it != moduleConfig.end(); ++it) { const PropertyDeclaration decl = providerItem->propertyDeclaration(it.key()); if (!decl.isValid()) { throw ErrorInfo(Tr::tr("No such property '%1' in module provider '%2'.") .arg(it.key(), name.toString())); } - providerItem->setProperty(it.key(), VariantValue::create(it.value())); + VariantValuePtr v = VariantValue::create( + PropertyDeclaration::convertToPropertyType(it.value(), decl.type(), + QStringList(name), it.key())); + providerItem->setProperty(it.key(), v); } EvalContextSwitcher contextSwitcher(m_evaluator->engine(), EvalContext::ModuleProvider); return m_evaluator->stringListValue(providerItem, QStringLiteral("searchPaths")); |