]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/settings/contextmenu/contextmenusettingspage.cpp
Port away from deprecated KMessageBox Yes/No
[dolphin.git] / src / settings / contextmenu / contextmenusettingspage.cpp
index 165007ec8fb5e6c2d1b8b3db79ecdf8e02d54bda..974ddb53172e88a0a2e15838657c976dde24f6e5 100644 (file)
 #include <KServiceTypeTrader>
 #include <kio_version.h>
 #include <kiocore_export.h>
+#include <kservice_export.h>
+#include <kwidgetsaddons_version.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>
@@ -96,11 +93,7 @@ ContextMenuSettingsPage::ContextMenuSettingsPage(QWidget* parent,
     topLayout->addWidget(m_listView);
 
 #ifndef Q_OS_WIN
-#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);
@@ -207,14 +200,22 @@ void ContextMenuSettingsPage::applySettings()
         VersionControlSettings::self()->save();
 
         if (!laterSelected) {
+#if KWIDGETSADDONS_VERSION >= QT_VERSION_CHECK(5, 100, 0)
+            KMessageBox::ButtonCode promptRestart = KMessageBox::questionTwoActions(window(),
+#else
             KMessageBox::ButtonCode promptRestart = KMessageBox::questionYesNo(window(),
+#endif
                                     i18nc("@info", "Dolphin must be restarted to apply the "
                                                 "updated version control system settings."),
                                     i18nc("@info", "Restart now?"),
                                     KGuiItem(QApplication::translate("KStandardGuiItem", "&Restart"), QStringLiteral("dialog-restart")),
                                     KGuiItem(QApplication::translate("KStandardGuiItem", "&Later"), QStringLiteral("dialog-later"))
                         );
+#if KWIDGETSADDONS_VERSION >= QT_VERSION_CHECK(5, 100, 0)
+            if (promptRestart == KMessageBox::ButtonCode::PrimaryAction) {
+#else
             if (promptRestart == KMessageBox::ButtonCode::Yes) {
+#endif
                 Dolphin::openNewWindow();
                 qApp->quit();
             } else {
@@ -284,10 +285,14 @@ void ContextMenuSettingsPage::loadServices()
     // Load generic services
     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);
 
@@ -321,7 +326,7 @@ void ContextMenuSettingsPage::loadServices()
 #endif
 
     // Load JSON-based plugins that implement the KFileItemActionPlugin interface
-    const auto jsonPlugins = KPluginMetaData::findPlugins(QStringLiteral("kf5/kfileitemaction"));
+    const auto jsonPlugins = KPluginMetaData::findPlugins(QStringLiteral("kf" QT_STRINGIFY(QT_VERSION_MAJOR)) + QStringLiteral("/kfileitemaction"));
 
     for (const auto &jsonMetadata : jsonPlugins) {
         const QString desktopEntryName = jsonMetadata.pluginId();