]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/settings/contextmenu/contextmenusettingspage.cpp
Fix version macro with respect to finding "KFileItemAction/Plugin" services
[dolphin.git] / src / settings / contextmenu / contextmenusettingspage.cpp
index 2d6c9279afdfb3b1b3d2c12c432f4e51d4e05c36..165007ec8fb5e6c2d1b8b3db79ecdf8e02d54bda 100644 (file)
 #include <KFileUtils>
 #include <KLocalizedString>
 #include <KMessageBox>
-#include <KNS3/Button>
 #include <KPluginMetaData>
 #include <KService>
 #include <KServiceTypeTrader>
-
 #include <kio_version.h>
+#include <kiocore_export.h>
+
+#include <QtGlobal>
+#include <knewstuff_version.h>
+#if KNEWSTUFF_VERSION >= QT_VERSION_CHECK(5, 91, 0)
+#include <KNSWidgets/Button>
+#else
+#include <KNS3/Button>
+#endif
 
 #include <QGridLayout>
 #include <QLabel>
@@ -89,17 +96,22 @@ ContextMenuSettingsPage::ContextMenuSettingsPage(QWidget* parent,
     topLayout->addWidget(m_listView);
 
 #ifndef Q_OS_WIN
-    auto *downloadButton = new KNS3::Button(i18nc("@action:button", "Download New Services..."),
-                                                  QStringLiteral("servicemenu.knsrc"),
-                                                  this);
-    connect(downloadButton, &KNS3::Button::dialogFinished, this, [this](const KNS3::Entry::List &changedEntries) {
+#if KNEWSTUFF_VERSION >= QT_VERSION_CHECK(5, 91, 0)
+    using NewStuffButton = KNSWidgets::Button;
+#else
+    using NewStuffButton = KNS3::Button;
+#endif // KNEWSTUFF_VERSION
+    auto *downloadButton = new NewStuffButton(i18nc("@action:button", "Download New Services..."),
+                                              QStringLiteral("servicemenu.knsrc"),
+                                              this);
+    connect(downloadButton, &NewStuffButton::dialogFinished, this, [this](const auto &changedEntries) {
            if (!changedEntries.isEmpty()) {
                m_serviceModel->clear();
                loadServices();
            }
     });
     topLayout->addWidget(downloadButton);
-#endif
+#endif // Q_OS_WIN
 
     m_enabledVcsPlugins = VersionControlSettings::enabledPlugins();
     std::sort(m_enabledVcsPlugins.begin(), m_enabledVcsPlugins.end());
@@ -297,7 +309,7 @@ void ContextMenuSettingsPage::loadServices()
     }
 
     // Load service plugins, this is deprecated in KIO 5.82
-#if KIO_VERSION < QT_VERSION_CHECK(6, 0, 0)
+#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();