From c09351e101443889fce34e0113f9bb31f3394ba8 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 10 Oct 2022 10:55:32 +0200 Subject: [PATCH] Squish: Provide error message for license issues Change-Id: I1b3ca3aba19df2fbc2accd9ecf9e4ec2d862c6d8 Reviewed-by: David Schulz --- src/plugins/squish/squishfilehandler.cpp | 2 +- src/plugins/squish/squishsettings.cpp | 2 +- src/plugins/squish/squishtools.cpp | 8 +++++++- src/plugins/squish/squishtools.h | 3 ++- src/plugins/squish/squishwizardpages.cpp | 7 ++++++- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/plugins/squish/squishfilehandler.cpp b/src/plugins/squish/squishfilehandler.cpp index 5bc9a5be21b..0417aa0ef80 100644 --- a/src/plugins/squish/squishfilehandler.cpp +++ b/src/plugins/squish/squishfilehandler.cpp @@ -74,7 +74,7 @@ public: auto squishTools = SquishTools::instance(); connect(squishTools, &SquishTools::queryFinished, this, - [this] (const QString &out) { + [this] (const QString &out, const QString &) { SquishServerSettings s; s.setFromXmlOutput(out); QApplication::restoreOverrideCursor(); diff --git a/src/plugins/squish/squishsettings.cpp b/src/plugins/squish/squishsettings.cpp index 93f37e9d70c..f560e9bd6b3 100644 --- a/src/plugins/squish/squishsettings.cpp +++ b/src/plugins/squish/squishsettings.cpp @@ -393,7 +393,7 @@ SquishServerSettingsWidget::SquishServerSettingsWidget(QWidget *parent) // query settings SquishTools *squishTools = SquishTools::instance(); connect(squishTools, &SquishTools::queryFinished, this, - [this, progress] (const QString &out) { + [this, progress] (const QString &out, const QString &) { m_serverSettings.setFromXmlOutput(out); m_originalSettings.setFromXmlOutput(out); repopulateApplicationView(); diff --git a/src/plugins/squish/squishtools.cpp b/src/plugins/squish/squishtools.cpp index ca0a4ba600e..614ac1f1e82 100644 --- a/src/plugins/squish/squishtools.cpp +++ b/src/plugins/squish/squishtools.cpp @@ -521,6 +521,7 @@ void SquishTools::startSquishServer(Request request) { if (m_shutdownInitiated) return; + m_licenseIssues = false; QTC_ASSERT(m_perspective.perspectiveMode() != SquishPerspective::NoMode, return); m_request = request; if (m_serverProcess.state() != QProcess::NotRunning) { @@ -683,7 +684,9 @@ void SquishTools::onRunnerFinished() { qCDebug(LOG) << "Runner finished"; if (m_request == RunnerQueryRequested) { - emit queryFinished(m_fullRunnerOutput); + const QString error = m_licenseIssues ? Tr::tr("Could not get Squish license from server.") + : QString(); + emit queryFinished(m_fullRunnerOutput, error); setState(RunnerStopped); m_fullRunnerOutput.clear(); return; @@ -894,6 +897,9 @@ void SquishTools::onRunnerErrorOutput() "squishserver settings.\n" "(Tools > Squish > Server Settings...)") .arg(m_suiteConf.aut())); + } else if (trimmed.startsWith("Couldn't get license") + || trimmed.contains("UNLICENSED version of Squish")) { + m_licenseIssues = true; } } } diff --git a/src/plugins/squish/squishtools.h b/src/plugins/squish/squishtools.h index 505bd726f6f..72825514e44 100644 --- a/src/plugins/squish/squishtools.h +++ b/src/plugins/squish/squishtools.h @@ -77,7 +77,7 @@ signals: void squishTestRunStarted(); void squishTestRunFinished(); void resultOutputCreated(const QByteArray &output); - void queryFinished(const QString &output); + void queryFinished(const QString &output, const QString &error); void configChangesFailed(QProcess::ProcessError error); void configChangesWritten(); void localsUpdated(const QString &output); @@ -163,6 +163,7 @@ private: int m_autId = 0; bool m_shutdownInitiated = false; bool m_closeRunnerOnEndRecord = false; + bool m_licenseIssues = false; }; } // namespace Internal diff --git a/src/plugins/squish/squishwizardpages.cpp b/src/plugins/squish/squishwizardpages.cpp index 43559d1d7b5..b40a037cf45 100644 --- a/src/plugins/squish/squishwizardpages.cpp +++ b/src/plugins/squish/squishwizardpages.cpp @@ -127,7 +127,7 @@ void SquishToolkitsPage::fetchServerSettings() QTC_ASSERT(squishTools, return); connect(squishTools, &SquishTools::queryFinished, this, - [this] (const QString &out) { + [this] (const QString &out, const QString &error) { SquishServerSettings s; s.setFromXmlOutput(out); QApplication::restoreOverrideCursor(); @@ -143,6 +143,11 @@ void SquishToolkitsPage::fetchServerSettings() } } m_hiddenLineEdit->setText(s.mappedAuts.keys().join('\n')); + + if (!error.isEmpty()) { + m_errorLabel->setText(error); + m_errorLabel->setVisible(true); + } }); QApplication::setOverrideCursor(Qt::WaitCursor); squishTools->queryServerSettings();