From abc2742f860f25a8b8035159e2a765858d2084b6 Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@qt.io>
Date: Fri, 25 Nov 2016 11:15:46 +0100
Subject: [PATCH] QtSupport: Make error message about missing compiler more
verbose
List the ABIs the Qt version has in case no compiler can be found.
Change-Id: If2c0e6052e234638b318ce1f92c255163fb68c3f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
---
src/plugins/qtsupport/qtoptionspage.cpp | 31 ++++++++++++++++++-------
1 file changed, 22 insertions(+), 9 deletions(-)
diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp
index f18724a8b56..cb5ee6f7cbe 100644
--- a/src/plugins/qtsupport/qtoptionspage.cpp
+++ b/src/plugins/qtsupport/qtoptionspage.cpp
@@ -370,6 +370,18 @@ void QtOptionsPageWidget::infoAnchorClicked(const QUrl &url)
QDesktopServices::openUrl(url);
}
+static QString formatAbiHtmlList(const QList<Abi> &abis)
+{
+ QString result = QStringLiteral("<ul><li>");
+ for (int i = 0, count = abis.size(); i < count; ++i) {
+ if (i)
+ result += QStringLiteral("</li><li>");
+ result += abis.at(i).toString();
+ }
+ result += QStringLiteral("</li></ul>");
+ return result;
+}
+
QtOptionsPageWidget::ValidityInfo QtOptionsPageWidget::validInformation(const BaseQtVersion *version)
{
ValidityInfo info;
@@ -386,12 +398,11 @@ QtOptionsPageWidget::ValidityInfo QtOptionsPageWidget::validInformation(const Ba
}
// Do we have tool chain issues?
- QStringList missingToolChains;
- int abiCount = 0;
- foreach (const Abi &abi, version->qtAbis()) {
+ QList<Abi> missingToolChains;
+ const QList<Abi> qtAbis = version->qtAbis();
+ for (const Abi &abi : qtAbis) {
if (ToolChainManager::findToolChains(abi).isEmpty())
- missingToolChains.append(abi.toString());
- ++abiCount;
+ missingToolChains.append(abi);
}
bool useable = true;
@@ -400,16 +411,18 @@ QtOptionsPageWidget::ValidityInfo QtOptionsPageWidget::validInformation(const Ba
warnings << tr("Display Name is not unique.");
if (!missingToolChains.isEmpty()) {
- if (missingToolChains.count() == abiCount) {
+ if (missingToolChains.count() == qtAbis.size()) {
// Yes, this Qt version can't be used at all!
- info.message = tr("No compiler can produce code for this Qt version. Please define one or more compilers.");
+ info.message =
+ tr("No compiler can produce code for this Qt version."
+ " Please define one or more compilers for: %1").arg(formatAbiHtmlList(qtAbis));
info.icon = m_invalidVersionIcon;
useable = false;
} else {
// Yes, some ABIs are unsupported
warnings << tr("Not all possible target environments can be supported due to missing compilers.");
- info.toolTip = tr("The following ABIs are currently not supported:<ul><li>%1</li></ul>")
- .arg(missingToolChains.join(QLatin1String("</li><li>")));
+ info.toolTip = tr("The following ABIs are currently not supported: %1")
+ .arg(formatAbiHtmlList(missingToolChains));
info.icon = m_warningVersionIcon;
}
}
--
GitLab