aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language/moduleproviderloader.cpp
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2021-10-06 11:14:27 +0300
committerIvan Komissarov <ABBAPOH@gmail.com>2021-10-06 15:21:13 +0000
commit5acd507e853fe67f1065dc69933d81e2564fb002 (patch)
tree56e54ee3a02d626da0c2191ea51ced90b7ffb42c /src/lib/corelib/language/moduleproviderloader.cpp
parentd3ee6be6a2e72752697b3b7d1af009770dbc01d6 (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.cpp7
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"));