These share the same D-Bus service name (org.kde.neochat) which comes with a fun little addition: KRunner activation! While this is not a problem while NeoChat is running - since it's already registered - this becomes an issue while searching for NeoChat in something like the Kickoff. The Kickoff (and consequently, KRunner) tries to activate the NeoChat D-Bus service which runs our unified push parts. This introduces a "FakeRunner" which watches closely for calls to the KRunner interface while we're in unified push mode (or directly called from D-Bus but not running) so it quits immediately.
36 lines
858 B
C++
36 lines
858 B
C++
// SPDX-FileCopyrightText: 2024 Joshua Goins <josh@redstrate.com>
|
|
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
|
|
|
#include "fakerunner.h"
|
|
|
|
#include <QCoreApplication>
|
|
#include <QDBusMetaType>
|
|
|
|
Q_SCRIPTABLE RemoteActions FakeRunner::Actions()
|
|
{
|
|
QCoreApplication::quit();
|
|
return {};
|
|
}
|
|
|
|
Q_SCRIPTABLE RemoteMatches FakeRunner::Match(const QString &searchTerm)
|
|
{
|
|
QCoreApplication::quit();
|
|
return {};
|
|
}
|
|
|
|
Q_SCRIPTABLE void FakeRunner::Run(const QString &id, const QString &actionId)
|
|
{
|
|
QCoreApplication::quit();
|
|
}
|
|
|
|
FakeRunner::FakeRunner()
|
|
: QObject()
|
|
{
|
|
qDBusRegisterMetaType<RemoteMatch>();
|
|
qDBusRegisterMetaType<RemoteMatches>();
|
|
qDBusRegisterMetaType<RemoteAction>();
|
|
qDBusRegisterMetaType<RemoteActions>();
|
|
qDBusRegisterMetaType<RemoteImage>();
|
|
}
|
|
|
|
#include "moc_fakerunner.cpp" |