diff --git a/applauncher-allow-to-show-apps-by-name.patch b/applauncher-allow-to-show-apps-by-name.patch new file mode 100644 index 0000000..caed545 --- /dev/null +++ b/applauncher-allow-to-show-apps-by-name.patch @@ -0,0 +1,182 @@ +From bdaaaedbfbbe72673c288a5acc8a8366d3f6bc1e Mon Sep 17 00:00:00 2001 +From: Kai Uwe Broulik +Date: Fri, 30 Jun 2017 10:43:38 +0200 +Subject: [AppLauncher Containment Action] Add option to "show apps by name" + +This will have it show the actual application name instead of the description. + +BUG: 358423 +FIXED-IN: 5.11.0 + +CHANGELOG: Application launcher mouse action can now be configured to show application names instead of their description + +Differential Revision: https://phabricator.kde.org/D6441 +--- + containmentactions/applauncher/CMakeLists.txt | 5 +++- + containmentactions/applauncher/Messages.sh | 2 ++ + containmentactions/applauncher/config.ui | 25 ++++++++++++++++ + containmentactions/applauncher/launch.cpp | 33 +++++++++++++++++++++- + containmentactions/applauncher/launch.h | 11 ++++++++ + .../plasma-containmentactions-applauncher.desktop | 1 + + 6 files changed, 75 insertions(+), 2 deletions(-) + create mode 100755 containmentactions/applauncher/Messages.sh + create mode 100644 containmentactions/applauncher/config.ui + +diff --git a/containmentactions/applauncher/CMakeLists.txt b/containmentactions/applauncher/CMakeLists.txt +index ead6e81..084ec28 100644 +--- a/containmentactions/applauncher/CMakeLists.txt ++++ b/containmentactions/applauncher/CMakeLists.txt +@@ -1,12 +1,15 @@ ++add_definitions(-DTRANSLATION_DOMAIN=\"plasma_containmentactions_applauncher\") ++ + set(applauncher_SRCS + launch.cpp + ) ++ki18n_wrap_ui(applauncher_SRCS config.ui) + + add_library(plasma_containmentactions_applauncher MODULE ${applauncher_SRCS}) + + kcoreaddons_desktop_to_json(plasma_containmentactions_applauncher plasma-containmentactions-applauncher.desktop) + +-target_link_libraries(plasma_containmentactions_applauncher KF5::Plasma KF5::KIOCore KF5::KIOWidgets) ++target_link_libraries(plasma_containmentactions_applauncher KF5::Plasma KF5::KIOCore KF5::KIOWidgets KF5::I18n) + + install(TARGETS plasma_containmentactions_applauncher DESTINATION ${KDE_INSTALL_PLUGINDIR}) + install(FILES plasma-containmentactions-applauncher.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}) +diff --git a/containmentactions/applauncher/Messages.sh b/containmentactions/applauncher/Messages.sh +new file mode 100755 +index 0000000..0083c51 +--- /dev/null ++++ b/containmentactions/applauncher/Messages.sh +@@ -0,0 +1,2 @@ ++#! /usr/bin/env bash ++$XGETTEXT *.cpp -o $podir/plasma_containmentactions_applauncher.pot +diff --git a/containmentactions/applauncher/config.ui b/containmentactions/applauncher/config.ui +new file mode 100644 +index 0000000..d2389ae +--- /dev/null ++++ b/containmentactions/applauncher/config.ui +@@ -0,0 +1,25 @@ ++ ++ ++ Config ++ ++ ++ ++ 0 ++ 0 ++ 397 ++ 123 ++ ++ ++ ++ ++ ++ ++ Show applications by name ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/containmentactions/applauncher/launch.cpp b/containmentactions/applauncher/launch.cpp +index abda409..7ea8ae8 100644 +--- a/containmentactions/applauncher/launch.cpp ++++ b/containmentactions/applauncher/launch.cpp +@@ -52,7 +52,13 @@ void AppLauncher::makeMenu(QMenu *menu, const KServiceGroup::Ptr group) + foreach (KSycocaEntry::Ptr p, group->entries(true, false, true)) { + if (p->isType(KST_KService)) { + const KService::Ptr service(static_cast(p.data())); +- QAction *action = new QAction(QIcon::fromTheme(service->icon()), service->genericName().isEmpty() ? service->name() : service->genericName(), this); ++ ++ QString text = service->name(); ++ if (!m_showAppsByName && !service->genericName().isEmpty()) { ++ text = service->genericName(); ++ } ++ ++ QAction *action = new QAction(QIcon::fromTheme(service->icon()), text, this); + connect(action, &QAction::triggered, [action](){ + KService::Ptr service = KService::serviceByStorageId(action->data().toString()); + new KRun(QUrl("file://"+service->entryPath()), 0); +@@ -85,6 +91,31 @@ void AppLauncher::makeMenu(QMenu *menu, const KServiceGroup::Ptr group) + } + } + ++QWidget *AppLauncher::createConfigurationInterface(QWidget *parent) ++{ ++ QWidget *widget = new QWidget(parent); ++ m_ui.setupUi(widget); ++ widget->setWindowTitle(i18nc("plasma_containmentactions_applauncher", "Configure Application Launcher Plugin")); ++ ++ m_ui.showAppsByName->setChecked(m_showAppsByName); ++ ++ return widget; ++} ++ ++void AppLauncher::configurationAccepted() ++{ ++ m_showAppsByName = m_ui.showAppsByName->isChecked(); ++} ++ ++void AppLauncher::restore(const KConfigGroup &config) ++{ ++ m_showAppsByName = config.readEntry(QStringLiteral("showAppsByName"), false); ++} ++ ++void AppLauncher::save(KConfigGroup &config) ++{ ++ config.writeEntry(QStringLiteral("showAppsByName"), m_showAppsByName); ++} + + K_EXPORT_PLASMA_CONTAINMENTACTIONS_WITH_JSON(applauncher, AppLauncher, "plasma-containmentactions-applauncher.json") + +diff --git a/containmentactions/applauncher/launch.h b/containmentactions/applauncher/launch.h +index 4738c89..95b5123 100644 +--- a/containmentactions/applauncher/launch.h ++++ b/containmentactions/applauncher/launch.h +@@ -26,6 +26,8 @@ + + #include + ++#include "ui_config.h" ++ + class QAction; + class QMenu; + +@@ -40,12 +42,21 @@ class AppLauncher : public Plasma::ContainmentActions + + QList contextualActions() override; + ++ QWidget *createConfigurationInterface(QWidget* parent) override; ++ void configurationAccepted() override; ++ ++ void restore(const KConfigGroup &config) override; ++ void save(KConfigGroup &config) override; ++ + protected: + void makeMenu(QMenu *menu, const KServiceGroup::Ptr group); + + private: + KServiceGroup::Ptr m_group; + QList m_actions; ++ ++ Ui::Config m_ui; ++ bool m_showAppsByName = false; + }; + + +diff --git a/containmentactions/applauncher/plasma-containmentactions-applauncher.desktop b/containmentactions/applauncher/plasma-containmentactions-applauncher.desktop +index b5112c8..5d955cf 100644 +--- a/containmentactions/applauncher/plasma-containmentactions-applauncher.desktop ++++ b/containmentactions/applauncher/plasma-containmentactions-applauncher.desktop +@@ -165,3 +165,4 @@ X-KDE-PluginInfo-Depends= + X-KDE-PluginInfo-License=GPL + X-KDE-PluginInfo-EnabledByDefault=true + ++X-Plasma-HasConfigurationInterface=true +-- +cgit v0.11.2 + diff --git a/plasma5-workspace.changes b/plasma5-workspace.changes index 41d7d23..213d6b8 100644 --- a/plasma5-workspace.changes +++ b/plasma5-workspace.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Sat Jul 1 10:48:32 UTC 2017 - wbauer@tmo.at + +- Add applauncher-allow-to-show-apps-by-name.patch to provide an + option to display application names instead of the generic names + in the desktop containment's application launcher mouse action + (kde#358423, boo#974513) + ------------------------------------------------------------------- Wed Jun 28 20:57:32 UTC 2017 - wbauer@tmo.at diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index 57055cc..1daddf7 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -38,6 +38,7 @@ Patch0: 0001-Rename-qdbus-in-startkde.patch Patch1: 0001-Ignore-default-sddm-face-icons.patch # PATCHES 100-200 and above are from upstream 5.10 branch # PATCHES 201-300 and above are from upstream master/5.11 branch +Patch201: applauncher-allow-to-show-apps-by-name.patch BuildRequires: breeze5-icons BuildRequires: fdupes BuildRequires: kf5-filesystem @@ -209,6 +210,7 @@ workspace. Development files. %setup -q -n plasma-workspace-%{version} %patch0 -p1 %patch1 -p1 +%patch201 -p1 %build %cmake_kf5 -d build -- -DKDE4_COMMON_PAM_SERVICE=xdm -DKDE_DEFAULT_HOME=.kde4 -DCMAKE_INSTALL_LOCALEDIR=%{_kf5_localedir}