Git commit def5203424618f0f29e25c2a9c66e15decb007c4 by Aleix Pol. Committed on 15/05/2018 at 23:25. Pushed by apol into branch 'Plasma/5.12'. PackageKit: Try harder to find the application desktop file BUG: 394270 M +15 -4 libdiscover/backends/PackageKitBackend/AppPackageKitResource= .cpp https://commits.kde.org/discover/def5203424618f0f29e25c2a9c66e15decb007c4 diff --git a/libdiscover/backends/PackageKitBackend/AppPackageKitResource.c= pp b/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp index 8af5a446..bee92691 100644 --- a/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp +++ b/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp @@ -200,11 +200,22 @@ void AppPackageKitResource::invokeApplication() const } else { const QStringList exes =3D m_appdata.provided(AppStream::Provi= ded::KindBinary).items(); const auto packageExecutables =3D kFilter(allServ= ices, [filenames](const QString &exe) { return filenames.contains(QLatin1Ch= ar('/') + exe); }); - if (packageExecutables.isEmpty()) { - qWarning() << "Could not find any executables" << exes << = filenames; - return; + if (!packageExecutables.isEmpty()) { + QProcess::startDetached(exes.constFirst()); + } else { + const auto locations =3D QStandardPaths::standardLocations= (QStandardPaths::ApplicationsLocation); + const auto desktopFiles =3D kFilter(filenames= , [locations](const QString &exe) { + for (const auto &location: locations) { + if (exe.startsWith(location)) + return exe.contains(QLatin1String(".desktop")); + } + return false; + }); + if (!desktopFiles.isEmpty()) { + QProcess::startDetached(QStringLiteral(CMAKE_INSTALL_F= ULL_LIBEXECDIR_KF5 "/discover/runservice"), { desktopFiles }); + } } - QProcess::startDetached(exes.constFirst()); + qWarning() << "Could not find any executables" << exes << file= names; } }); }