onResultReady: Provide a context object for all usages

Remove overloads for onResultReady() and onFinished()
that don't take context object.

Change-Id: Iaec538bcccd29e22791ec65cc95b4b87640708c3
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Jarek Kobus
2023-04-06 18:27:10 +02:00
parent 3ba769fb46
commit 8175d5abda
11 changed files with 39 additions and 78 deletions

View File

@@ -61,10 +61,10 @@ CreateSimulatorDialog::CreateSimulatorDialog(QWidget *parent)
});
m_futureSync.setCancelOnWait(true);
m_futureSync.addFuture(Utils::onResultReady(SimulatorControl::updateDeviceTypes(), this,
m_futureSync.addFuture(Utils::onResultReady(SimulatorControl::updateDeviceTypes(this), this,
&CreateSimulatorDialog::populateDeviceTypes));
QFuture<QList<RuntimeInfo>> runtimesfuture = SimulatorControl::updateRuntimes();
QFuture<QList<RuntimeInfo>> runtimesfuture = SimulatorControl::updateRuntimes(this);
Utils::onResultReady(runtimesfuture, this, [this](const QList<RuntimeInfo> &runtimes) {
m_runtimes = runtimes;
});

View File

@@ -404,7 +404,7 @@ void IosConfigurations::updateSimulators()
dev = IDevice::ConstPtr(new IosSimulator(devId));
devManager->addDevice(dev);
}
SimulatorControl::updateAvailableSimulators();
SimulatorControl::updateAvailableSimulators(this);
}
void IosConfigurations::setDeveloperPath(const FilePath &devPath)

View File

@@ -175,7 +175,7 @@ void IosSettingsWidget::onStart()
Utils::StdErrFormat);
} else {
futureList << QFuture<void>(Utils::onResultReady(
SimulatorControl::startSimulator(info.identifier),
SimulatorControl::startSimulator(info.identifier), this,
std::bind(onSimOperation, info, statusDialog, Tr::tr("simulator start"), _1)));
}
}
@@ -207,11 +207,9 @@ void IosSettingsWidget::onCreate()
CreateSimulatorDialog createDialog(this);
if (createDialog.exec() == QDialog::Accepted) {
QFuture<void> f = QFuture<void>(
Utils::onResultReady(SimulatorControl::createSimulator(createDialog.name(),
createDialog.deviceType(),
createDialog.runtime()),
std::bind(onSimulatorCreate, createDialog.name(), _1)));
QFuture<void> f = QFuture<void>(Utils::onResultReady(SimulatorControl::createSimulator(
createDialog.name(), createDialog.deviceType(), createDialog.runtime()),
this, std::bind(onSimulatorCreate, createDialog.name(), _1)));
statusDialog->addFutures({ f });
statusDialog->exec(); // Modal dialog returns only when all the operations are done or cancelled.
}
@@ -242,7 +240,7 @@ void IosSettingsWidget::onReset()
QList<QFuture<void>> futureList;
for (const SimulatorInfo &info : simulatorInfoList) {
futureList << QFuture<void>(Utils::onResultReady(
SimulatorControl::resetSimulator(info.identifier),
SimulatorControl::resetSimulator(info.identifier), this,
std::bind(onSimOperation, info, statusDialog, Tr::tr("simulator reset"), _1)));
}
@@ -270,7 +268,7 @@ void IosSettingsWidget::onRename()
statusDialog->setAttribute(Qt::WA_DeleteOnClose);
statusDialog->addMessage(Tr::tr("Renaming simulator device..."), Utils::NormalMessageFormat);
QFuture<void> f = QFuture<void>(Utils::onResultReady(
SimulatorControl::renameSimulator(simInfo.identifier, newName),
SimulatorControl::renameSimulator(simInfo.identifier, newName), this,
std::bind(onSimOperation, simInfo, statusDialog, Tr::tr("simulator rename"), _1)));
statusDialog->addFutures({f});
statusDialog->exec(); // Modal dialog returns only when all the operations are done or cancelled.
@@ -300,7 +298,7 @@ void IosSettingsWidget::onDelete()
QList<QFuture<void>> futureList;
for (const SimulatorInfo &info : simulatorInfoList) {
futureList << QFuture<void>(Utils::onResultReady(
SimulatorControl::deleteSimulator(info.identifier),
SimulatorControl::deleteSimulator(info.identifier), this,
std::bind(onSimOperation, info, statusDialog, Tr::tr("simulator delete"), _1)));
}
@@ -331,7 +329,7 @@ void IosSettingsWidget::onScreenshot()
QList<QFuture<void>> futureList;
for (const SimulatorInfo &info : simulatorInfoList) {
futureList << QFuture<void>(Utils::onResultReady(
SimulatorControl::takeSceenshot(info.identifier, generatePath(info)),
SimulatorControl::takeSceenshot(info.identifier, generatePath(info)), this,
std::bind(onSimOperation, info, statusDialog, Tr::tr("simulator screenshot"), _1)));
}

View File

@@ -815,8 +815,8 @@ void IosSimulatorToolHandlerPrivate::requestTransferApp(const QString &appBundle
if (SimulatorControl::isSimulatorRunning(m_deviceId))
installAppOnSimulator();
else
futureSynchronizer.addFuture(
Utils::onResultReady(SimulatorControl::startSimulator(m_deviceId), onSimulatorStart));
futureSynchronizer.addFuture(Utils::onResultReady(
SimulatorControl::startSimulator(m_deviceId), q, onSimulatorStart));
}
void IosSimulatorToolHandlerPrivate::requestRunApp(const QString &appBundlePath,
@@ -852,8 +852,8 @@ void IosSimulatorToolHandlerPrivate::requestRunApp(const QString &appBundlePath,
if (SimulatorControl::isSimulatorRunning(m_deviceId))
launchAppOnSimulator(extraArgs);
else
futureSynchronizer.addFuture(
Utils::onResultReady(SimulatorControl::startSimulator(m_deviceId), onSimulatorStart));
futureSynchronizer.addFuture(Utils::onResultReady(
SimulatorControl::startSimulator(m_deviceId), q, onSimulatorStart));
}
void IosSimulatorToolHandlerPrivate::requestDeviceInfo(const QString &deviceId, int timeout)
@@ -905,7 +905,7 @@ void IosSimulatorToolHandlerPrivate::installAppOnSimulator()
isTransferringApp(m_bundlePath, m_deviceId, 20, 100, "");
auto installFuture = SimulatorControl::installApp(m_deviceId,
Utils::FilePath::fromString(m_bundlePath));
futureSynchronizer.addFuture(Utils::onResultReady(installFuture, onResponseAppInstall));
futureSynchronizer.addFuture(Utils::onResultReady(installFuture, q, onResponseAppInstall));
}
void IosSimulatorToolHandlerPrivate::launchAppOnSimulator(const QStringList &extraArgs)
@@ -968,16 +968,11 @@ void IosSimulatorToolHandlerPrivate::launchAppOnSimulator(const QStringList &ext
}
};
futureSynchronizer.addFuture(
Utils::onResultReady(SimulatorControl::launchApp(m_deviceId,
bundleId,
debugRun,
extraArgs,
captureConsole ? stdoutFile->fileName()
: QString(),
captureConsole ? stderrFile->fileName()
: QString()),
onResponseAppLaunch));
futureSynchronizer.addFuture(Utils::onResultReady(SimulatorControl::launchApp(
m_deviceId, bundleId, debugRun, extraArgs,
captureConsole ? stdoutFile->fileName() : QString(),
captureConsole ? stderrFile->fileName() : QString()),
q, onResponseAppLaunch));
}
bool IosSimulatorToolHandlerPrivate::isResponseValid(const SimulatorControl::ResponseData &responseData)

View File

@@ -235,10 +235,10 @@ static QList<SimulatorInfo> getAvailableSimulators()
return availableDevices;
}
QFuture<QList<DeviceTypeInfo>> SimulatorControl::updateDeviceTypes()
QFuture<QList<DeviceTypeInfo>> SimulatorControl::updateDeviceTypes(QObject *context)
{
QFuture<QList<DeviceTypeInfo>> future = Utils::asyncRun(getAvailableDeviceTypes);
Utils::onResultReady(future, [](const QList<DeviceTypeInfo> &deviceTypes) {
Utils::onResultReady(future, context, [](const QList<DeviceTypeInfo> &deviceTypes) {
s_availableDeviceTypes = deviceTypes;
});
return future;
@@ -249,20 +249,21 @@ QList<RuntimeInfo> SimulatorControl::availableRuntimes()
return s_availableRuntimes;
}
QFuture<QList<RuntimeInfo>> SimulatorControl::updateRuntimes()
QFuture<QList<RuntimeInfo>> SimulatorControl::updateRuntimes(QObject *context)
{
QFuture<QList<RuntimeInfo>> future = Utils::asyncRun(getAvailableRuntimes);
Utils::onResultReady(future, [](const QList<RuntimeInfo> &runtimes) {
Utils::onResultReady(future, context, [](const QList<RuntimeInfo> &runtimes) {
s_availableRuntimes = runtimes;
});
return future;
}
QFuture<QList<SimulatorInfo>> SimulatorControl::updateAvailableSimulators()
QFuture<QList<SimulatorInfo>> SimulatorControl::updateAvailableSimulators(QObject *context)
{
QFuture<QList<SimulatorInfo>> future = Utils::asyncRun(getAvailableSimulators);
Utils::onResultReady(future,
[](const QList<SimulatorInfo> &devices) { s_availableDevices = devices; });
Utils::onResultReady(future, context, [](const QList<SimulatorInfo> &devices) {
s_availableDevices = devices;
});
return future;
}

View File

@@ -65,11 +65,11 @@ public:
public:
static QList<DeviceTypeInfo> availableDeviceTypes();
static QFuture<QList<DeviceTypeInfo>> updateDeviceTypes();
static QFuture<QList<DeviceTypeInfo>> updateDeviceTypes(QObject *context);
static QList<RuntimeInfo> availableRuntimes();
static QFuture<QList<RuntimeInfo>> updateRuntimes();
static QFuture<QList<RuntimeInfo>> updateRuntimes(QObject *context);
static QList<SimulatorInfo> availableSimulators();
static QFuture<QList<SimulatorInfo>> updateAvailableSimulators();
static QFuture<QList<SimulatorInfo>> updateAvailableSimulators(QObject *context);
static bool isSimulatorRunning(const QString &simUdid);
static QString bundleIdentifier(const Utils::FilePath &bundlePath);
static QString bundleExecutable(const Utils::FilePath &bundlePath);

View File

@@ -109,7 +109,7 @@ void SimulatorInfoModel::requestSimulatorInfo()
if (!m_fetchFuture.isEmpty())
return; // Ignore the request if the last request is still pending.
m_fetchFuture.addFuture(Utils::onResultReady(SimulatorControl::updateAvailableSimulators(),
m_fetchFuture.addFuture(Utils::onResultReady(SimulatorControl::updateAvailableSimulators(this),
this, &SimulatorInfoModel::populateSimulators));
}