diff --git a/libdiscover/backends/PackageKitBackend/runservice/CMakeLists.txt b/libdiscover/backends/PackageKitBackend/runservice/CMakeLists.txt index 17c644e1..1e5d3200 100644 --- a/libdiscover/backends/PackageKitBackend/runservice/CMakeLists.txt +++ b/libdiscover/backends/PackageKitBackend/runservice/CMakeLists.txt @@ -1,3 +1,3 @@ add_executable(runservice main.cpp) -target_link_libraries(runservice KF5::Service KF5::KIOWidgets) +target_link_libraries(runservice KF5::Service KF5::KIOGui) install(TARGETS runservice DESTINATION ${KDE_INSTALL_LIBEXECDIR_KF5}/discover) diff --git a/libdiscover/backends/PackageKitBackend/runservice/main.cpp b/libdiscover/backends/PackageKitBackend/runservice/main.cpp index c0d2c64a..5230310c 100644 --- a/libdiscover/backends/PackageKitBackend/runservice/main.cpp +++ b/libdiscover/backends/PackageKitBackend/runservice/main.cpp @@ -1,43 +1,45 @@ /*************************************************************************** * Copyright © 2016 Aleix Pol Gonzalez * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License as * * published by the Free Software Foundation; either version 2 of * * the License or (at your option) version 3 or any later version * * accepted by the membership of KDE e.V. (or its successor approved * * by the membership of KDE e.V.), which shall act as a proxy * * defined in Section 14 of version 3 of the license. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ -#include +#include #include #include #include #include #include -#include +#include int main(int argc, char** argv) { - QApplication app(argc, argv); + QGuiApplication app(argc, argv); if (app.arguments().size() != 2) return 1; - KService service(app.arguments().constLast()); - if (!service.isValid()) + KService::Ptr service(new KService(app.arguments().constLast())); + if (!service->isValid()) return 2; - if (KRun::runApplication(service, {}, nullptr) == 0) - return 3; - - return 0; + KIO::ApplicationLauncherJob *job = new KIO::ApplicationLauncherJob(service); + job->start(); + QObject::connect(job, &KIO::ApplicationLauncherJob::finished, &app, [&] { + app.exit(job->error()); + }); + return app.exec(); }