diff options
| author | Méven Car <[email protected]> | 2023-02-14 17:03:33 +0100 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2023-02-14 17:03:33 +0100 |
| commit | 1c98a50d83a55dee582a19b69575ed1993c14b85 (patch) | |
| tree | 53d1f41690a10728a6e0b107f55371889fdbd5df /src | |
| parent | 4fbc5302e7a28dcc5e615a0e1234bf52f120ec7e (diff) | |
Revert "Remove deprecated KServiceTypeTrader"
This reverts commit 648c2db6e4c6552962c20d2f9e4d3ce44e02d212.
Diffstat (limited to 'src')
| -rw-r--r-- | src/settings/contextmenu/contextmenusettingspage.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/settings/contextmenu/contextmenusettingspage.cpp b/src/settings/contextmenu/contextmenusettingspage.cpp index daf15bc1b..2205fadd0 100644 --- a/src/settings/contextmenu/contextmenusettingspage.cpp +++ b/src/settings/contextmenu/contextmenusettingspage.cpp @@ -20,6 +20,7 @@ #include <KMessageBox> #include <KPluginMetaData> #include <KService> +#include <KServiceTypeTrader> #include <kio_version.h> #include <kiocore_export.h> #include <kservice_export.h> @@ -281,6 +282,13 @@ void ContextMenuSettingsPage::loadServices() const auto locations = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("kio/servicemenus"), QStandardPaths::LocateDirectory); QStringList files = KFileUtils::findAllUniqueFiles(locations); +#if KIOWIDGETS_BUILD_DEPRECATED_SINCE(5, 90) + const KService::List services = KServiceTypeTrader::self()->query(QStringLiteral("KonqPopupMenu/Plugin")); + for (const KService::Ptr &service : services) { + files << QStandardPaths::locate(QStandardPaths::GenericDataLocation, "kservices5/" % service->entryPath()); + } +#endif + for (const auto &file : qAsConst(files)) { const QList<KServiceAction> serviceActions = KDesktopFileActions::userDefinedServices(KService(file), true); @@ -299,6 +307,18 @@ void ContextMenuSettingsPage::loadServices() } } + // Load service plugins, this is deprecated in KIO 5.82 +#if KIOCORE_BUILD_DEPRECATED_SINCE(5, 82) + const KService::List pluginServices = KServiceTypeTrader::self()->query(QStringLiteral("KFileItemAction/Plugin")); + for (const KService::Ptr &service : pluginServices) { + const QString desktopEntryName = service->desktopEntryName(); + if (!isInServicesList(desktopEntryName)) { + const bool checked = showGroup.readEntry(desktopEntryName, true); + addRow(service->icon(), service->name(), desktopEntryName, checked); + } + } +#endif + // Load JSON-based plugins that implement the KFileItemActionPlugin interface const auto jsonPlugins = KPluginMetaData::findPlugins(QStringLiteral("kf" QT_STRINGIFY(QT_VERSION_MAJOR)) + QStringLiteral("/kfileitemaction")); |
