diff options
Diffstat (limited to 'src/lib/corelib/language/moduleloader.cpp')
-rw-r--r-- | src/lib/corelib/language/moduleloader.cpp | 57 |
1 files changed, 28 insertions, 29 deletions
diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp index 5c4033c3f..591a3df34 100644 --- a/src/lib/corelib/language/moduleloader.cpp +++ b/src/lib/corelib/language/moduleloader.cpp @@ -1339,7 +1339,7 @@ void ModuleLoader::setupProductDependencies(ProductContext *productContext, || !containsKey(m_productsWithDeferredDependsItems, productContext)) { addProductModuleDependencies(productContext); } - productContext->project->result->productInfos.insert(item, productContext->info); + productContext->project->result->productInfos[item] = productContext->info; } // Leaf modules first. @@ -1515,7 +1515,7 @@ void ModuleLoader::handleProduct(ModuleLoader::ProductContext *productContext) handleGroup(productContext, child, reverseModuleDeps); } } - productContext->project->result->productInfos.insert(item, productContext->info); + productContext->project->result->productInfos[item] = productContext->info; } static Item *rootPrototype(Item *item) @@ -1544,7 +1544,7 @@ private: void check(const QVariantMap ¶meters, const QualifiedId &moduleName) const { for (auto it = parameters.begin(); it != parameters.end(); ++it) { - if (it.value().type() == QVariant::Map) { + if (it.value().userType() == QMetaType::QVariantMap) { check(it.value().toMap(), QualifiedId(moduleName) << it.key()); } else { const auto &deps = m_productItem->modules(); @@ -1942,7 +1942,7 @@ void ModuleLoader::printProfilingInfo() static void mergeParameters(QVariantMap &dst, const QVariantMap &src) { for (auto it = src.begin(); it != src.end(); ++it) { - if (it.value().type() == QVariant::Map) { + if (it.value().userType() == QMetaType::QVariantMap) { QVariant &vdst = dst[it.key()]; QVariantMap mdst = vdst.toMap(); mergeParameters(mdst, it.value().toMap()); @@ -3207,30 +3207,30 @@ QStringList &ModuleLoader::getModuleFileNames(const QString &dirPath) return moduleFileNames; } -// returns QVariant::Invalid for types that do not need conversion -static QVariant::Type variantType(PropertyDeclaration::Type t) +// returns QMetaType::UnknownType for types that do not need conversion +static QMetaType::Type variantType(PropertyDeclaration::Type t) { switch (t) { case PropertyDeclaration::UnknownType: break; case PropertyDeclaration::Boolean: - return QVariant::Bool; + return QMetaType::Bool; case PropertyDeclaration::Integer: - return QVariant::Int; + return QMetaType::Int; case PropertyDeclaration::Path: - return QVariant::String; + return QMetaType::QString; case PropertyDeclaration::PathList: - return QVariant::StringList; + return QMetaType::QStringList; case PropertyDeclaration::String: - return QVariant::String; + return QMetaType::QString; case PropertyDeclaration::StringList: - return QVariant::StringList; + return QMetaType::QStringList; case PropertyDeclaration::VariantList: - return QVariant::List; + return QMetaType::QVariantList; case PropertyDeclaration::Variant: break; } - return QVariant::Invalid; + return QMetaType::UnknownType; } static QVariant convertToPropertyType(const QVariant &v, PropertyDeclaration::Type t, @@ -3238,12 +3238,12 @@ static QVariant convertToPropertyType(const QVariant &v, PropertyDeclaration::Ty { if (v.isNull() || !v.isValid()) return v; - const QVariant::Type vt = variantType(t); - if (vt == QVariant::Invalid) + const auto vt = variantType(t); + if (vt == QMetaType::UnknownType) return v; // Handle the foo,bar,bla stringlist syntax. - if (t == PropertyDeclaration::StringList && v.type() == QVariant::String) + if (t == PropertyDeclaration::StringList && v.userType() == QMetaType::QString) return v.toString().split(QLatin1Char(',')); QVariant c = v; @@ -3802,13 +3802,14 @@ QStringList ModuleLoader::findExistingModulePaths( QVariantMap ModuleLoader::moduleProviderConfig(ModuleLoader::ProductContext &product) { - if (product.moduleProviderConfigRetrieved) - return product.theModuleProviderConfig; + if (product.theModuleProviderConfig) + return *product.theModuleProviderConfig; + QVariantMap providerConfig; const ItemValueConstPtr configItemValue = product.item->itemProperty(StringConstants::moduleProviders()); if (configItemValue) { const std::function<void(const Item *, QualifiedId)> collectMap - = [this, &product, &collectMap](const Item *item, const QualifiedId &name) { + = [this, &providerConfig, &collectMap](const Item *item, const QualifiedId &name) { const Item::PropertyMap &props = item->properties(); for (auto it = props.begin(); it != props.end(); ++it) { QVariant value; @@ -3826,9 +3827,9 @@ QVariantMap ModuleLoader::moduleProviderConfig(ModuleLoader::ProductContext &pro value = static_cast<VariantValue *>(it.value().get())->value(); break; } - QVariantMap m = product.theModuleProviderConfig.value(name.toString()).toMap(); + QVariantMap m = providerConfig.value(name.toString()).toMap(); m.insert(it.key(), value); - product.theModuleProviderConfig.insert(name.toString(), m); + providerConfig.insert(name.toString(), m); } }; configItemValue->item()->setScope(product.item); @@ -3841,15 +3842,14 @@ QVariantMap ModuleLoader::moduleProviderConfig(ModuleLoader::ProductContext &pro const QVariantMap providerConfigFromBuildConfig = it.value().toMap(); if (providerConfigFromBuildConfig.empty()) continue; - QVariantMap currentMapForProvider = product.theModuleProviderConfig.value(provider).toMap(); + QVariantMap currentMapForProvider = providerConfig.value(provider).toMap(); for (auto propIt = providerConfigFromBuildConfig.begin(); propIt != providerConfigFromBuildConfig.end(); ++propIt) { currentMapForProvider.insert(propIt.key(), propIt.value()); } - product.theModuleProviderConfig.insert(provider, currentMapForProvider); + providerConfig.insert(provider, currentMapForProvider); } - product.moduleProviderConfigRetrieved = true; - return product.theModuleProviderConfig; + return *(product.theModuleProviderConfig = std::move(providerConfig)); } ModuleLoader::ModuleProviderResult ModuleLoader::findModuleProvider(const QualifiedId &name, @@ -3887,7 +3887,7 @@ ModuleLoader::ModuleProviderResult ModuleLoader::findModuleProvider(const Qualif const QVariant moduleConfig = moduleProviderConfig(product).value(name.toString()); QTextStream stream(&dummyItemFile); using Qt::endl; - stream.setCodec("UTF-8"); + setupDefaultCodec(stream); stream << "import qbs.FileInfo" << endl; stream << "import qbs.Utilities" << endl; stream << "import '" << providerFile << "' as Provider" << endl; @@ -4166,8 +4166,7 @@ void ModuleLoader::handleProductError(const ErrorInfo &error, const auto errorItems = error.items(); for (const ErrorItem &ei : errorItems) productContext->info.delayedError.append(ei.description(), ei.codeLocation()); - productContext->project->result->productInfos.insert(productContext->item, - productContext->info); + productContext->project->result->productInfos[productContext->item] = productContext->info; m_disabledItems << productContext->item; m_erroneousProducts.insert(productContext->name); } |