using namespace Qt::StringLiterals;
+static const QString appropriateCaption(const KService::Ptr &service)
+{
+ if (!service) {
+ return {};
+ }
+
+ const QString genericName = service->genericName();
+ if (!genericName.isEmpty() && genericName != service->name()) {
+ return genericName;
+ }
+
+ return service->comment();
+}
+
namespace TaskManager
{
AppData appDataFromUrl(const QUrl &url, const QIcon &fallbackIcon)
if (service && url.path() == service->menuId()) {
data.name = service->name();
- data.genericName = service->genericName();
+ data.genericName = appropriateCaption(service);
data.id = service->storageId();
if (data.icon.isNull()) {
if (service && QUrl::fromLocalFile(service->entryPath()) == url) {
data.name = service->name();
- data.genericName = service->genericName();
+ data.genericName = appropriateCaption(service);
data.id = service->storageId();
if (data.icon.isNull()) {
KDesktopFile f(url.toLocalFile());
if (f.tryExec()) {
data.name = f.readName();
- data.genericName = f.readGenericName();
+ data.genericName = appropriateCaption(KService::serviceByDesktopPath(url.toLocalFile()));
data.id = QUrl::fromLocalFile(f.fileName()).fileName();
if (data.icon.isNull()) {
const QString &desktopFile = service->entryPath();
data.name = service->name();
- data.genericName = service->genericName();
+ data.genericName = appropriateCaption(service);
data.id = service->storageId();
if (data.icon.isNull()) {