Utils: Add async variant of DataFromProcess

... and make use of it in PathChooser.

Change-Id: I0e81afec2caf38f488a8ab98b55016535c187fc2
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Christian Kandeler
2024-02-19 15:46:46 +01:00
parent 15fc626a78
commit 4a722bfa9d
4 changed files with 108 additions and 52 deletions

View File

@@ -5,6 +5,7 @@
#include "gerritplugin.h"
#include <utils/commandline.h>
#include <utils/datafromprocess.h>
#include <utils/environment.h>
#include <utils/hostosinfo.h>
#include <utils/pathchooser.h>
@@ -70,8 +71,12 @@ void GerritParameters::setPortFlagBySshType()
{
bool isPlink = false;
if (!ssh.isEmpty()) {
const QString version = PathChooser::toolVersion({ssh, {"-V"}});
isPlink = version.contains("plink", Qt::CaseInsensitive);
DataFromProcess<QString>::Parameters params({ssh, {"-V"}},
[](const QString &output) { return output; });
using namespace std::chrono_literals;
params.timeout = 1s;
if (const auto version = DataFromProcess<QString>::getData(params))
isPlink = version->contains("plink", Qt::CaseInsensitive);
}
portFlag = QLatin1String(isPlink ? "-P" : defaultPortFlag);
}