From d48b73349241a46ad70cac5a5ce3e11f641650af Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Wed, 8 Jun 2016 15:30:52 +0200 Subject: Load KFileItemAction plugins with json metadata REVIEW: 128088 --- src/settings/services/servicessettingspage.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/settings/services/servicessettingspage.cpp') diff --git a/src/settings/services/servicessettingspage.cpp b/src/settings/services/servicessettingspage.cpp index 4cfa2327c..e124fb2c5 100644 --- a/src/settings/services/servicessettingspage.cpp +++ b/src/settings/services/servicessettingspage.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -228,6 +229,19 @@ void ServicesSettingsPage::loadServices() } } + // Load JSON-based plugins that implement the KFileItemActionPlugin interface + const auto jsonPlugins = KPluginLoader::findPlugins(QString(), [](const KPluginMetaData& metaData) { + return metaData.serviceTypes().contains(QStringLiteral("KFileItemAction/Plugin")); + }); + + foreach (const auto& jsonMetadata, jsonPlugins) { + const QString desktopEntryName = jsonMetadata.pluginId(); + if (!isInServicesList(desktopEntryName)) { + const bool checked = showGroup.readEntry(desktopEntryName, true); + addRow(jsonMetadata.iconName(), jsonMetadata.name(), desktopEntryName, checked); + } + } + m_sortModel->sort(Qt::DisplayRole); } -- cgit v1.3 From 6bb62f17b525baf89e7f35f4f3a321876c3a31ab Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sat, 18 Jun 2016 17:47:07 +0200 Subject: Look for kfileitemaction plugins in the expected subfolder For a rationale, see https://git.reviewboard.kde.org/r/128225/ --- src/dolphincontextmenu.cpp | 2 +- src/settings/services/servicessettingspage.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/settings/services/servicessettingspage.cpp') diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index 823c9340f..ff2e5478a 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -519,7 +519,7 @@ void DolphinContextMenu::addFileItemPluginActions() } } - const auto jsonPlugins = KPluginLoader::findPlugins(QString(), [](const KPluginMetaData& metaData) { + const auto jsonPlugins = KPluginLoader::findPlugins(QStringLiteral("kf5/kfileitemaction"), [](const KPluginMetaData& metaData) { return metaData.serviceTypes().contains(QStringLiteral("KFileItemAction/Plugin")); }); diff --git a/src/settings/services/servicessettingspage.cpp b/src/settings/services/servicessettingspage.cpp index e124fb2c5..2b9b8f46f 100644 --- a/src/settings/services/servicessettingspage.cpp +++ b/src/settings/services/servicessettingspage.cpp @@ -230,7 +230,7 @@ void ServicesSettingsPage::loadServices() } // Load JSON-based plugins that implement the KFileItemActionPlugin interface - const auto jsonPlugins = KPluginLoader::findPlugins(QString(), [](const KPluginMetaData& metaData) { + const auto jsonPlugins = KPluginLoader::findPlugins(QStringLiteral("kf5/kfileitemaction"), [](const KPluginMetaData& metaData) { return metaData.serviceTypes().contains(QStringLiteral("KFileItemAction/Plugin")); }); -- cgit v1.3