┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings/services/servicessettingspage.cpp
diff options
context:
space:
mode:
authorarnav dhamija <[email protected]>2016-09-25 23:13:22 +0530
committerarnav dhamija <[email protected]>2016-09-25 23:13:22 +0530
commit67099640b90588af1c72c340756253400da3e95b (patch)
tree16fe472cc13677496793c2a4967097e978379ef4 /src/settings/services/servicessettingspage.cpp
parentccd0a74eed22c35b5eb72e6f46e747f621169732 (diff)
parent1710304e9ba926d2aec4226d00974b826f9bcbc0 (diff)
Merge branch 'master' of git.kde.org:dolphin
Diffstat (limited to 'src/settings/services/servicessettingspage.cpp')
-rw-r--r--src/settings/services/servicessettingspage.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/settings/services/servicessettingspage.cpp b/src/settings/services/servicessettingspage.cpp
index 4cfa2327c..2b9b8f46f 100644
--- a/src/settings/services/servicessettingspage.cpp
+++ b/src/settings/services/servicessettingspage.cpp
@@ -30,6 +30,7 @@
#include <KLocalizedString>
#include <KMessageBox>
#include <KNS3/Button>
+#include <KPluginMetaData>
#include <KService>
#include <KServiceTypeTrader>
#include <QStandardPaths>
@@ -228,6 +229,19 @@ void ServicesSettingsPage::loadServices()
}
}
+ // Load JSON-based plugins that implement the KFileItemActionPlugin interface
+ const auto jsonPlugins = KPluginLoader::findPlugins(QStringLiteral("kf5/kfileitemaction"), [](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);
}