From aa093c1e91f9e000dc8582ace032ec3e294b947f Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 14 Jul 2023 17:05:24 +0200 Subject: [PATCH] Axivion: Move query error handling closer to query code Change-Id: I6c57c0578b284f20e23312bf748c5efbe0ac3c3e Reviewed-by: Christian Stenger --- src/plugins/axivion/axivionplugin.cpp | 20 -------------------- src/plugins/axivion/axivionplugin.h | 1 - src/plugins/axivion/axivionquery.cpp | 24 +++++++++++++++++++++++- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/plugins/axivion/axivionplugin.cpp b/src/plugins/axivion/axivionplugin.cpp index 7703fede02c..e068287290f 100644 --- a/src/plugins/axivion/axivionplugin.cpp +++ b/src/plugins/axivion/axivionplugin.cpp @@ -13,7 +13,6 @@ #include #include -#include #include #include @@ -31,7 +30,6 @@ #include #include -#include #include constexpr char AxivionTextMarkId[] = "AxivionTextMark"; @@ -150,24 +148,6 @@ AxivionProjectSettings *AxivionPlugin::projectSettings(ProjectExplorer::Project return dd->projectSettings(project); } -bool AxivionPlugin::handleCertificateIssue() -{ - QTC_ASSERT(dd, return false); - - const QString serverHost = QUrl(dd->m_axivionSettings.server.dashboard).host(); - if (QMessageBox::question(Core::ICore::dialogParent(), Tr::tr("Certificate Error"), - Tr::tr("Server certificate for %1 cannot be authenticated.\n" - "Do you want to disable SSL verification for this server?\n" - "Note: This can expose you to man-in-the-middle attack.") - .arg(serverHost)) - != QMessageBox::Yes) { - return false; - } - dd->m_axivionSettings.server.validateCert = false; - emit s_instance->settingsChanged(); - return true; -} - void AxivionPlugin::fetchProjectInfo(const QString &projectName) { QTC_ASSERT(dd, return); diff --git a/src/plugins/axivion/axivionplugin.h b/src/plugins/axivion/axivionplugin.h index 992971b6bd6..9422ab8b968 100644 --- a/src/plugins/axivion/axivionplugin.h +++ b/src/plugins/axivion/axivionplugin.h @@ -26,7 +26,6 @@ public: static AxivionSettings *settings(); static AxivionProjectSettings *projectSettings(ProjectExplorer::Project *project); - static bool handleCertificateIssue(); static void fetchProjectInfo(const QString &projectName); static ProjectInfo projectInfo(); signals: diff --git a/src/plugins/axivion/axivionquery.cpp b/src/plugins/axivion/axivionquery.cpp index fda0eccf128..deb85ba4417 100644 --- a/src/plugins/axivion/axivionquery.cpp +++ b/src/plugins/axivion/axivionquery.cpp @@ -5,10 +5,14 @@ #include "axivionplugin.h" #include "axivionsettings.h" +#include "axiviontr.h" + +#include #include #include +#include #include using namespace Utils; @@ -50,6 +54,24 @@ QString AxivionQuery::toString() const return {}; } +static bool handleCertificateIssue() +{ + AxivionSettings *settings = AxivionPlugin::settings(); + const QString serverHost = QUrl(settings->server.dashboard).host(); + if (QMessageBox::question(Core::ICore::dialogParent(), Tr::tr("Certificate Error"), + Tr::tr("Server certificate for %1 cannot be authenticated.\n" + "Do you want to disable SSL verification for this server?\n" + "Note: This can expose you to man-in-the-middle attack.") + .arg(serverHost)) + != QMessageBox::Yes) { + return false; + } + settings->server.validateCert = false; + settings->apply(); + + return true; +} + AxivionQueryRunner::AxivionQueryRunner(const AxivionQuery &query, QObject *parent) : QObject(parent) { @@ -71,7 +93,7 @@ AxivionQueryRunner::AxivionQueryRunner(const AxivionQuery &query, QObject *paren const int exitCode = m_process.exitCode(); if (m_process.exitStatus() == QProcess::NormalExit && (exitCode == 35 || exitCode == 60) - && AxivionPlugin::handleCertificateIssue()) { + && handleCertificateIssue()) { // prepend -k for re-requesting same query CommandLine cmdline = m_process.commandLine(); cmdline.prependArgs({"-k"});