runners/keys: Use KGlobalAccel QKeySequence (de)serialization code

It properly handles invalid inputs.

SENTRY: KWIN-13AS
This commit is contained in:
Vlad Zahorodnii 2026-10-21 09:52:38 +03:00
parent f579c260a9
commit a0853e26c1
2 changed files with 2 additions and 27 deletions

View file

@ -6,6 +6,7 @@ add_definitions(-DTRANSLATION_DOMAIN=\"plasma_runner_keys\")
kcoreaddons_add_plugin(krunner_keys SOURCES keysrunner.cpp INSTALL_NAMESPACE "kf6/krunner")
target_link_libraries(krunner_keys
Qt::DBus
KF6::GlobalAccel
KF6::I18n
KF6::Runner
kglobalaccelmodel

View file

@ -12,6 +12,7 @@
#include <algorithm>
#include <KGlobalShortcutInfo>
#include <KLocalizedString>
#include "filteredmodel.h"
@ -38,33 +39,6 @@ static const QMap<QString, QStringList> ignoredComponentActions = {
}}
};
QDBusArgument &operator<<(QDBusArgument &argument, const QKeySequence &sequence)
{
argument.beginStructure();
argument.beginArray(qMetaTypeId<int>());
for (int i = 0; i < 4; i++) {
argument << (i < sequence.count() ? sequence[i].toCombined() : 0);
}
argument.endArray();
argument.endStructure();
return argument;
}
const QDBusArgument &operator>>(const QDBusArgument &argument, QKeySequence &sequence)
{
int s1;
int s2;
int s3;
int s4;
argument.beginStructure();
argument.beginArray();
argument >> s1 >> s2 >> s3 >> s4;
sequence = QKeySequence(s1, s2, s3, s4);
argument.endArray();
argument.endStructure();
return argument;
}
KeysRunner::KeysRunner(QObject *parent, const KPluginMetaData &metaData)
: KRunner::AbstractRunner(parent, metaData)
, m_isKRunner(KLocalizedString::applicationDomain() == QByteArrayView("krunner"))