#include "global.h"
#include <KDesktopFile>
+#include <KDesktopFileActions>
+#include <KFileUtils>
#include <KLocalizedString>
#include <KMessageBox>
-#include <KNS3/Button>
#include <KPluginMetaData>
#include <KService>
#include <KServiceTypeTrader>
-#include <KDesktopFileActions>
-
#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>
m_listView->setVerticalScrollMode(QListView::ScrollPerPixel);
connect(m_listView, &QListView::clicked, this, &ContextMenuSettingsPage::changed);
+ topLayout->addWidget(label);
+ topLayout->addWidget(m_searchLineEdit);
+ 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();
}
});
-
-#endif
-
- topLayout->addWidget(label);
- topLayout->addWidget(m_searchLineEdit);
- topLayout->addWidget(m_listView);
-#ifndef Q_OS_WIN
topLayout->addWidget(downloadButton);
-#endif
+#endif // Q_OS_WIN
m_enabledVcsPlugins = VersionControlSettings::enabledPlugins();
std::sort(m_enabledVcsPlugins.begin(), m_enabledVcsPlugins.end());
return ContextMenuSettings::showCopyLocation();
} else if (id == "duplicate") {
return ContextMenuSettings::showDuplicateHere();
- } else if (id == "open_terminal") {
+ } else if (id == "open_terminal_here") {
return ContextMenuSettings::showOpenTerminal();
}
return false;
ContextMenuSettings::setShowCopyLocation(visible);
} else if (id == "duplicate") {
ContextMenuSettings::setShowDuplicateHere(visible);
- } else if (id == "open_terminal") {
+ } else if (id == "open_terminal_here") {
ContextMenuSettings::setShowOpenTerminal(visible);
}
}
const KConfigGroup showGroup = config.group("Show");
// Load generic services
- const KService::List entries = KServiceTypeTrader::self()->query(QStringLiteral("KonqPopupMenu/Plugin"));
- for (const KService::Ptr &service : entries) {
- const QString file = QStandardPaths::locate(QStandardPaths::GenericDataLocation, "kservices5/" % service->entryPath());
- const QList<KServiceAction> serviceActions = KDesktopFileActions::userDefinedServices(file, true);
+ const auto locations = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("kio/servicemenus"), QStandardPaths::LocateDirectory);
+ QStringList files = KFileUtils::findAllUniqueFiles(locations);
+ const KService::List services = KServiceTypeTrader::self()->query(QStringLiteral("KonqPopupMenu/Plugin"));
+ for (const KService::Ptr &service : services) {
+ files << QStandardPaths::locate(QStandardPaths::GenericDataLocation, "kservices5/" % service->entryPath());
+ }
+ for (const auto &file : qAsConst(files)) {
+ const QList<KServiceAction> serviceActions = KDesktopFileActions::userDefinedServices(KService(file), true);
const KDesktopFile desktopFile(file);
const QString subMenuName = desktopFile.desktopGroup().readEntry("X-KDE-Submenu");
}
// 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();
loadedPlugins += pluginName;
}
- const KService::List pluginServices = KServiceTypeTrader::self()->query(QStringLiteral("FileViewVersionControlPlugin"));
- for (const auto &plugin : pluginServices) {
- const QString pluginName = plugin->name();
- if (loadedPlugins.contains(pluginName)) {
- continue;
- }
- addRow(QStringLiteral("code-class"),
- pluginName,
- VersionControlServicePrefix + pluginName,
- enabledPlugins.contains(pluginName));
- }
-
m_sortModel->sort(Qt::DisplayRole);
}