diff --git a/applets/kicker/plugin/actionlist.h b/applets/kicker/plugin/actionlist.h --- a/applets/kicker/plugin/actionlist.h +++ b/applets/kicker/plugin/actionlist.h @@ -43,7 +43,7 @@ UrlRole }; -QVariantMap createActionItem(const QString &label, const QString &actionId, const QVariant &argument = QVariant()); +QVariantMap createActionItem(const QString &label, const QString &actionId, const QVariant &argument = QVariant(), const QString &icon = QString()); QVariantMap createTitleActionItem(const QString &label); diff --git a/applets/kicker/plugin/actionlist.cpp b/applets/kicker/plugin/actionlist.cpp --- a/applets/kicker/plugin/actionlist.cpp +++ b/applets/kicker/plugin/actionlist.cpp @@ -52,7 +52,7 @@ namespace Kicker { -QVariantMap createActionItem(const QString &label, const QString &actionId, const QVariant &argument) +QVariantMap createActionItem(const QString &label, const QString &actionId, const QVariant &argument, const QString &icon) { QVariantMap map; @@ -63,6 +63,10 @@ map[QStringLiteral("actionArgument")] = argument; } + if (!icon.isEmpty()) { + map[QStringLiteral("icon")] = icon; + } + return map; } @@ -96,17 +100,15 @@ foreach (const KService::Ptr service, services) { const QString text = service->name().replace(QLatin1Char('&'), QStringLiteral("&&")); - QVariantMap item = createActionItem(text, QStringLiteral("_kicker_fileItem_openWith"), service->entryPath()); - item[QStringLiteral("icon")] = service->icon(); + QVariantMap item = createActionItem(text, QStringLiteral("_kicker_fileItem_openWith"), service->entryPath(), service->icon()); list << item; } list << createSeparatorActionItem(); } - QVariantMap propertiesItem = createActionItem(i18n("Properties"), QStringLiteral("_kicker_fileItem_properties")); - propertiesItem[QStringLiteral("icon")] = QStringLiteral("document-properties"); + const QVariantMap &propertiesItem = createActionItem(i18n("Properties"), QStringLiteral("_kicker_fileItem_properties"), QVariant(), QStringLiteral("document-properties")); list << propertiesItem; return list; @@ -150,20 +152,17 @@ } if (ContainmentInterface::mayAddLauncher(appletInterface, ContainmentInterface::Desktop)) { - QVariantMap addToDesktopAction = Kicker::createActionItem(i18n("Add to Desktop"), QStringLiteral("addToDesktop")); - addToDesktopAction[QStringLiteral("icon")] = QStringLiteral("list-add"); + QVariantMap addToDesktopAction = Kicker::createActionItem(i18n("Add to Desktop"), QStringLiteral("addToDesktop"), QVariant(), QStringLiteral("list-add")); actionList << addToDesktopAction; } if (ContainmentInterface::mayAddLauncher(appletInterface, ContainmentInterface::Panel)) { - QVariantMap addToPanelAction = Kicker::createActionItem(i18n("Add to Panel (Widget)"), QStringLiteral("addToPanel")); - addToPanelAction[QStringLiteral("icon")] = QStringLiteral("list-add"); + QVariantMap addToPanelAction = Kicker::createActionItem(i18n("Add to Panel (Widget)"), QStringLiteral("addToPanel"), QVariant(), QStringLiteral("list-add")); actionList << addToPanelAction; } if (service && ContainmentInterface::mayAddLauncher(appletInterface, ContainmentInterface::TaskManager, Kicker::resolvedServiceEntryPath(service))) { - QVariantMap addToTaskManagerAction = Kicker::createActionItem(i18n("Pin to Task Manager"), QStringLiteral("addToTaskManager")); - addToTaskManagerAction[QStringLiteral("icon")] = QStringLiteral("pin"); + QVariantMap addToTaskManagerAction = Kicker::createActionItem(i18n("Pin to Task Manager"), QStringLiteral("addToTaskManager"), QVariant(), QStringLiteral("pin")); actionList << addToTaskManagerAction; } @@ -221,8 +220,7 @@ continue; } - QVariantMap item = createActionItem(action.text(), QStringLiteral("_kicker_jumpListAction"), action.exec()); - item[QStringLiteral("icon")] = action.icon(); + QVariantMap item = createActionItem(action.text(), QStringLiteral("_kicker_jumpListAction"), action.exec(), action.icon()); list << item; } @@ -276,15 +274,13 @@ list << createTitleActionItem(i18n("Recent Documents")); } - QVariantMap item = createActionItem(url.fileName(), QStringLiteral("_kicker_recentDocument"), resource); - item[QStringLiteral("icon")] = fileItem.iconName(); + QVariantMap item = createActionItem(url.fileName(), QStringLiteral("_kicker_recentDocument"), resource, fileItem.iconName()); list << item; } if (!list.isEmpty()) { - QVariantMap forgetAction = createActionItem(i18n("Forget Recent Documents"), QStringLiteral("_kicker_forgetRecentDocuments")); - forgetAction[QStringLiteral("icon")] = QStringLiteral("edit-clear-history"); + QVariantMap forgetAction = createActionItem(i18n("Forget Recent Documents"), QStringLiteral("_kicker_forgetRecentDocuments"), QVariant(), QStringLiteral("edit-clear-history")); list << forgetAction; } @@ -341,8 +337,8 @@ QVariantList actionList; if (canEditApplication(service)) { - QVariantMap editAction = Kicker::createActionItem(i18n("Edit Application..."), QStringLiteral("editApplication")); - editAction[QStringLiteral("icon")] = QStringLiteral("kmenuedit"); // TODO: Using the KMenuEdit icon might be misleading. + // TODO: Using the KMenuEdit icon might be misleading. + QVariantMap editAction = Kicker::createActionItem(i18n("Edit Application..."), QStringLiteral("editApplication"), QVariant(), QStringLiteral("kmenuedit")); actionList << editAction; } @@ -388,8 +384,10 @@ for(const auto &component: components) { const QString componentId = component.id(); - QVariantMap appstreamAction = Kicker::createActionItem(i18nc("@action opens a software center with the application", "Uninstall or Manage Add-Ons..."), "manageApplication", QVariant(QLatin1String("appstream://") + componentId)); - appstreamAction[QStringLiteral("icon")] = appStreamHandler->icon(); + QVariantMap appstreamAction = Kicker::createActionItem( + i18nc("@action opens a software center with the application", "Uninstall or Manage Add-Ons..."), + "manageApplication", QVariant(QLatin1String("appstream://") + componentId), + appStreamHandler->icon()); ret << appstreamAction; } #else diff --git a/applets/kicker/plugin/recentusagemodel.cpp b/applets/kicker/plugin/recentusagemodel.cpp --- a/applets/kicker/plugin/recentusagemodel.cpp +++ b/applets/kicker/plugin/recentusagemodel.cpp @@ -260,7 +260,7 @@ if (role == Qt::DisplayRole) { const auto index = m_placesModel->closestItem(fileItem.url()); - if (index.isValid()) { + if (index.isValid() && !m_placesModel->isHidden(index)) { const auto parentUrl = m_placesModel->url(index); if (parentUrl == fileItem.url()) { return m_placesModel->text(index); @@ -301,13 +301,16 @@ actionList << Kicker::createSeparatorActionItem(); - const QVariantMap &openParentFolder = Kicker::createActionItem(i18n("Open Containing Folder"), QStringLiteral("openParentFolder")); + QVariantMap openParentFolder = Kicker::createActionItem(i18n("Open Containing Folder"), QStringLiteral("openParentFolder")); + openParentFolder[QStringLiteral("icon")] = QStringLiteral("folder-open"); actionList << openParentFolder; - const QVariantMap &forgetAction = Kicker::createActionItem(i18n("Forget Document"), QStringLiteral("forget")); + QVariantMap forgetAction = Kicker::createActionItem(i18n("Forget Document"), QStringLiteral("forget")); + forgetAction[QStringLiteral("icon")] = QStringLiteral("edit-clear-history"); actionList << forgetAction; - const QVariantMap &forgetAllAction = Kicker::createActionItem(forgetAllActionName(), QStringLiteral("forgetAll")); + QVariantMap forgetAllAction = Kicker::createActionItem(forgetAllActionName(), QStringLiteral("forgetAll")); + forgetAllAction[QStringLiteral("icon")] = QStringLiteral("edit-clear-history"); actionList << forgetAllAction; return actionList;