X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/5593c252e8d9638c86dcc2bb9edd394ea14f8ba1..bff373d598c031cb1:/src/settings/services/servicessettingspage.cpp diff --git a/src/settings/services/servicessettingspage.cpp b/src/settings/services/servicessettingspage.cpp index 4cfa2327c..ff00ca177 100644 --- a/src/settings/services/servicessettingspage.cpp +++ b/src/settings/services/servicessettingspage.cpp @@ -21,30 +21,22 @@ #include "dolphin_generalsettings.h" #include "dolphin_versioncontrolsettings.h" +#include "settings/serviceitemdelegate.h" +#include "settings/servicemodel.h" -#include -#include #include -#include -#include #include #include #include +#include #include #include -#include - -#include -#include +#include -#include #include -#include #include #include -#include #include -#include namespace { @@ -57,9 +49,9 @@ namespace ServicesSettingsPage::ServicesSettingsPage(QWidget* parent) : SettingsPageBase(parent), m_initialized(false), - m_serviceModel(0), - m_sortModel(0), - m_listView(0), + m_serviceModel(nullptr), + m_sortModel(nullptr), + m_listView(nullptr), m_enabledVcsPlugins() { QVBoxLayout* topLayout = new QVBoxLayout(this); @@ -90,7 +82,7 @@ ServicesSettingsPage::ServicesSettingsPage(QWidget* parent) : topLayout->addWidget(downloadButton); m_enabledVcsPlugins = VersionControlSettings::enabledPlugins(); - qSort(m_enabledVcsPlugins); + std::sort(m_enabledVcsPlugins.begin(), m_enabledVcsPlugins.end()); } ServicesSettingsPage::~ServicesSettingsPage() @@ -228,6 +220,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); }