summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Griebl <robert.griebl@qt.io>2023-05-10 11:33:36 +0200
committerRobert Griebl <robert.griebl@qt.io>2023-05-11 05:06:50 +0000
commit20303e9fe0a72bb270b2f0a4f75b9132edb2d515 (patch)
treee8d1ff490ad7199de37396b0863c93c2c424d1d8
parentb94f3dea6e6dd2ce7d56536d428ed6b54de06277 (diff)
downloadqtapplicationmanager-20303e9fe0a72bb270b2f0a4f75b9132edb2d515.tar.gz
Unbreak the submodule integration
Commit 3bf5b5f8944dd417530b09dd6f1cd568717c8cc1 in qtbase broke our pattern of using the result of std::bind() as a QMetaObject::invokeMethod parameter (at least on gcc-10). The C++ standard describes the return value of std::bind as "undefined" and that probably doesn't work with the new return value detection in qtbase on every compiler/c++lib combination. Change-Id: I66ba16fe2535f1a55b2c0d4c6aadd093aa7543be Fixes: QTBUG-113501 Reviewed-by: Zoltan Gera <zoltan.gera@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-rw-r--r--src/tools/controller/controller.cpp93
1 files changed, 52 insertions, 41 deletions
diff --git a/src/tools/controller/controller.cpp b/src/tools/controller/controller.cpp
index 35123386..b553c62b 100644
--- a/src/tools/controller/controller.cpp
+++ b/src/tools/controller/controller.cpp
@@ -359,12 +359,13 @@ int main(int argc, char *argv[])
stdRedirections[qSL("err")] = 2;
bool restart = clp.isSet(qSL("restart"));
- a.runLater(std::bind(startOrDebugApplication,
- QString(),
- clp.positionalArguments().at(1),
- stdRedirections,
- restart,
- args == 3 ? clp.positionalArguments().at(2) : QString()));
+ a.runLater([=, &clp]() {
+ startOrDebugApplication(QString(),
+ clp.positionalArguments().at(1),
+ stdRedirections,
+ restart,
+ args == 3 ? clp.positionalArguments().at(2) : QString());
+ });
break;
}
case DebugApplication: {
@@ -390,12 +391,13 @@ int main(int argc, char *argv[])
stdRedirections[qSL("err")] = 2;
bool restart = clp.isSet(qSL("restart"));
- a.runLater(std::bind(startOrDebugApplication,
- clp.positionalArguments().at(1),
- clp.positionalArguments().at(2),
- stdRedirections,
- restart,
- args == 3 ? clp.positionalArguments().at(2) : QString()));
+ a.runLater([=, &clp]() {
+ startOrDebugApplication(clp.positionalArguments().at(1),
+ clp.positionalArguments().at(2),
+ stdRedirections,
+ restart,
+ args == 3 ? clp.positionalArguments().at(2) : QString());
+ });
break;
}
case StopAllApplications:
@@ -403,7 +405,7 @@ int main(int argc, char *argv[])
if (clp.positionalArguments().size() != 1)
clp.showHelp(1);
- a.runLater(stopAllApplications);
+ a.runLater([=]() { stopAllApplications(); });
break;
case StopApplication:
@@ -414,14 +416,15 @@ int main(int argc, char *argv[])
if (clp.positionalArguments().size() != 2)
clp.showHelp(1);
- a.runLater(std::bind(stopApplication,
- clp.positionalArguments().at(1),
- clp.isSet(qSL("f"))));
+ a.runLater([=, &clp]() {
+ stopApplication(clp.positionalArguments().at(1),
+ clp.isSet(qSL("f")));
+ });
break;
case ListApplications:
clp.process(a);
- a.runLater(listApplications);
+ a.runLater([=]() { listApplications(); });
break;
case ShowApplication:
@@ -432,14 +435,15 @@ int main(int argc, char *argv[])
if (clp.positionalArguments().size() != 2)
clp.showHelp(1);
- a.runLater(std::bind(showApplication,
- clp.positionalArguments().at(1),
- clp.isSet(qSL("json"))));
+ a.runLater([=, &clp]() {
+ showApplication(clp.positionalArguments().at(1),
+ clp.isSet(qSL("json")));
+ });
break;
case ListPackages:
clp.process(a);
- a.runLater(listPackages);
+ a.runLater([=]() { listPackages(); });
break;
case ShowPackage:
@@ -450,9 +454,10 @@ int main(int argc, char *argv[])
if (clp.positionalArguments().size() != 2)
clp.showHelp(1);
- a.runLater(std::bind(showPackage,
- clp.positionalArguments().at(1),
- clp.isSet(qSL("json"))));
+ a.runLater([=, &clp]() {
+ showPackage(clp.positionalArguments().at(1),
+ clp.isSet(qSL("json")));
+ });
break;
case InstallPackage:
@@ -466,9 +471,10 @@ int main(int argc, char *argv[])
if (clp.isSet(qSL("l")))
fprintf(stderr, "Ignoring the deprecated -l option.\n");
- a.runLater(std::bind(installPackage,
- clp.positionalArguments().at(1),
- clp.isSet(qSL("a"))));
+ a.runLater([=, &clp]() {
+ installPackage(clp.positionalArguments().at(1),
+ clp.isSet(qSL("a")));
+ });
break;
case RemovePackage:
@@ -480,15 +486,16 @@ int main(int argc, char *argv[])
if (clp.positionalArguments().size() != 2)
clp.showHelp(1);
- a.runLater(std::bind(removePackage,
- clp.positionalArguments().at(1),
- clp.isSet(qSL("k")),
- clp.isSet(qSL("f"))));
+ a.runLater([=, &clp]() {
+ removePackage(clp.positionalArguments().at(1),
+ clp.isSet(qSL("k")),
+ clp.isSet(qSL("f")));
+ });
break;
case ListInstallationTasks:
clp.process(a);
- a.runLater(listInstallationTasks);
+ a.runLater([=]() { listInstallationTasks(); });
break;
case CancelInstallationTask: {
@@ -501,14 +508,15 @@ int main(int argc, char *argv[])
if (!(((args == 1) && all) || ((args == 2) && !all)))
clp.showHelp(1);
- a.runLater(std::bind(cancelInstallationTask,
- all,
- args == 2 ? clp.positionalArguments().at(1) : QString()));
+ a.runLater([=, &clp]() {
+ cancelInstallationTask(all,
+ args == 2 ? clp.positionalArguments().at(1) : QString());
+ });
break;
}
case ListInstallationLocations:
clp.process(a);
- a.runLater(listInstallationLocations);
+ a.runLater([=]() { listInstallationLocations(); });
break;
case ShowInstallationLocation:
@@ -521,13 +529,14 @@ int main(int argc, char *argv[])
if (clp.positionalArguments().size() == 2)
fprintf(stderr, "Ignoring the deprecated installation-location.\n");
- a.runLater(std::bind(showInstallationLocation,
- clp.isSet(qSL("json"))));
+ a.runLater([=, &clp]() {
+ showInstallationLocation(clp.isSet(qSL("json")));
+ });
break;
case ListInstances:
clp.process(a);
- a.runLater(listInstances);
+ a.runLater([=]() { listInstances(); });
break;
case InjectIntentRequest:
@@ -552,8 +561,10 @@ int main(int argc, char *argv[])
if (clp.positionalArguments().size() == 3)
jsonParams = clp.positionalArguments().at(2);
- a.runLater(std::bind(injectIntentRequest, clp.positionalArguments().at(1),
- isBroadcast, requestingAppId, appId, jsonParams));
+ a.runLater([=, &clp]() {
+ injectIntentRequest(clp.positionalArguments().at(1),
+ isBroadcast, requestingAppId, appId, jsonParams);
+ });
break;
}