diff --git a/kcms/keys/kglobalshortcutseditor.cpp b/kcms/keys/kglobalshortcutseditor.cpp --- a/kcms/keys/kglobalshortcutseditor.cpp +++ b/kcms/keys/kglobalshortcutseditor.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -429,11 +430,18 @@ // Unknown component. Create an editor. editor = new KShortcutsEditor(this, d->actionTypes); d->stack->addWidget(editor); - + KService::Ptr service = KService::serviceByStorageId(id); + if (!service) { + // Do we have an application with that name? + KService::List apps = KServiceTypeTrader::self()->query(QStringLiteral("Application"), + QStringLiteral("Name == '%1' or Name == '%2'").arg(id, friendlyName)); + if(!apps.isEmpty()) { + service = apps[0]; + } + } // try to find one appropriate icon QIcon icon = QIcon::fromTheme(id); if (icon.isNull()) { - KService::Ptr service = KService::serviceByStorageId(id); if (service) { icon = QIcon::fromTheme(service->icon()); } @@ -446,11 +454,11 @@ // Add to the component list QStandardItem *item = new QStandardItem(icon, friendlyName); - if (id.endsWith(QLatin1String(".desktop"))) { - item->setData(i18n("Application Launchers"), KCategorizedSortFilterProxyModel::CategoryDisplayRole); + if (service && service->isApplication()) { + item->setData(i18n("Applications"), KCategorizedSortFilterProxyModel::CategoryDisplayRole); item->setData(0, KCategorizedSortFilterProxyModel::CategorySortRole); } else { - item->setData(i18n("Other Shortcuts"), KCategorizedSortFilterProxyModel::CategoryDisplayRole); + item->setData(i18n("Plasma"), KCategorizedSortFilterProxyModel::CategoryDisplayRole); item->setData(1, KCategorizedSortFilterProxyModel::CategorySortRole); } d->model->appendRow(item);