1
0
mirror of https://invent.kde.org/system/dolphin synced 2024-07-02 16:31:23 +00:00

Revert "Remove deprecated KServiceTypeTrader"

This reverts commit 648c2db6e4.
This commit is contained in:
Méven Car 2023-02-14 17:03:33 +01:00
parent 4fbc5302e7
commit 1c98a50d83
No known key found for this signature in database
2 changed files with 21 additions and 0 deletions

View File

@ -152,6 +152,7 @@ endif()
ecm_set_disabled_deprecation_versions(
QT 5.15
KF 5.90
KSERVICE 5.89 # We use KServiceTypeTrader in a compat code path
)
add_subdirectory(src)

View File

@ -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"));