#include <KServiceTypeTrader>
#include <KDesktopFileActions>
+#include <kio_version.h>
+
#include <QGridLayout>
#include <QLabel>
#include <QListWidget>
return ContextMenuSettings::showCopyLocation();
} else if (id == "duplicate") {
return ContextMenuSettings::showDuplicateHere();
+ } else if (id == "open_terminal") {
+ return ContextMenuSettings::showOpenTerminal();
}
return false;
}
ContextMenuSettings::setShowCopyLocation(visible);
} else if (id == "duplicate") {
ContextMenuSettings::setShowDuplicateHere(visible);
+ } else if (id == "open_terminal") {
+ ContextMenuSettings::setShowOpenTerminal(visible);
}
}
CopyToMoveToService,
ContextMenuSettings::showCopyMoveMenu());
- // Add other built-in actions
- for (const QString& id : m_actionIds) {
- const QAction* action = m_actions->action(id);
- if (action) {
- addRow(action->icon().name(), action->text(), id, entryVisible(id));
+ if (m_actions){
+ // Add other built-in actions
+ for (const QString& id : m_actionIds) {
+ const QAction* action = m_actions->action(id);
+ if (action) {
+ addRow(action->icon().name(), action->text(), id, entryVisible(id));
+ }
}
}
}
}
- // Load service plugins that implement the KFileItemActionPlugin interface
+ // Load service plugins, this is deprecated in KIO 5.82
+#if KIO_VERSION < QT_VERSION_CHECK(6, 0, 0)
const KService::List pluginServices = KServiceTypeTrader::self()->query(QStringLiteral("KFileItemAction/Plugin"));
for (const KService::Ptr &service : pluginServices) {
const QString desktopEntryName = service->desktopEntryName();
addRow(service->icon(), service->name(), desktopEntryName, checked);
}
}
+#endif
// Load JSON-based plugins that implement the KFileItemActionPlugin interface
- const auto jsonPlugins = KPluginLoader::findPlugins(QStringLiteral("kf5/kfileitemaction"), [](const KPluginMetaData& metaData) {
- return metaData.serviceTypes().contains(QLatin1String("KFileItemAction/Plugin"));
- });
+ const auto jsonPlugins = KPluginLoader::findPlugins(QStringLiteral("kf5/kfileitemaction"));
for (const auto &jsonMetadata : jsonPlugins) {
const QString desktopEntryName = jsonMetadata.pluginId();