aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/app/qbs/commandlinefrontend.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/app/qbs/commandlinefrontend.cpp b/src/app/qbs/commandlinefrontend.cpp
index ae81265ef..d07af0d6f 100644
--- a/src/app/qbs/commandlinefrontend.cpp
+++ b/src/app/qbs/commandlinefrontend.cpp
@@ -346,17 +346,28 @@ CommandLineFrontend::ProductMap CommandLineFrontend::productsToUse() const
const ProjectData projectData = project.projectData();
const auto products = projectData.allProducts();
for (const ProductData &product : products) {
+ productNames << product.name();
if (useAll || m_parser.products().contains(product.name())) {
productList.push_back(product);
- productNames << product.name();
}
}
}
const auto parsedProductNames = m_parser.products();
for (const QString &productName : parsedProductNames) {
- if (!productNames.contains(productName))
- throw ErrorInfo(Tr::tr("No such product '%1'.").arg(productName));
+ if (!productNames.contains(productName)) {
+ QString msg;
+ if (productNames.size() <= 10) {
+ productNames.sort();
+ const QString available = productNames.join(QLatin1String("', '"));
+ msg = Tr::tr("No such product '%1'. "
+ "Available products: '%2'").arg(productName, available);
+ } else {
+ msg = Tr::tr("No such product '%1'. Use 'list-products' to see "
+ "all available products.").arg(productName);
+ }
+ throw ErrorInfo(msg);
+ }
}
return products;