]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Revert "Remove deprecated KServiceTypeTrader"
authorMéven Car <meven@kde.org>
Tue, 14 Feb 2023 16:03:33 +0000 (17:03 +0100)
committerMéven Car <meven@kde.org>
Tue, 14 Feb 2023 16:03:33 +0000 (17:03 +0100)
This reverts commit 648c2db6e4c6552962c20d2f9e4d3ce44e02d212.

CMakeLists.txt
src/settings/contextmenu/contextmenusettingspage.cpp

index 544c5f47df2fb9651d5010672fbb5193e4fd7807..88ccc058c5e6fd03b9f9f0ce7e9ea512bc6f7ea5 100644 (file)
@@ -152,6 +152,7 @@ endif()
 ecm_set_disabled_deprecation_versions(
     QT 5.15
     KF 5.90
 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)
 )
 
 add_subdirectory(src)
index daf15bc1b3e98b34c7d68606a9922cc498780d73..2205fadd017fe28edfccc948104086fa57fb8ea3 100644 (file)
@@ -20,6 +20,7 @@
 #include <KMessageBox>
 #include <KPluginMetaData>
 #include <KService>
 #include <KMessageBox>
 #include <KPluginMetaData>
 #include <KService>
+#include <KServiceTypeTrader>
 #include <kio_version.h>
 #include <kiocore_export.h>
 #include <kservice_export.h>
 #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);
 
     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);
 
     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"));
 
     // Load JSON-based plugins that implement the KFileItemActionPlugin interface
     const auto jsonPlugins = KPluginMetaData::findPlugins(QStringLiteral("kf" QT_STRINGIFY(QT_VERSION_MAJOR)) + QStringLiteral("/kfileitemaction"));