diff options
Diffstat (limited to 'src/plugins/platforminputcontexts/ibus/qibusproxy.cpp')
-rw-r--r-- | src/plugins/platforminputcontexts/ibus/qibusproxy.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/plugins/platforminputcontexts/ibus/qibusproxy.cpp b/src/plugins/platforminputcontexts/ibus/qibusproxy.cpp index e6b255a06d..9efa6f7eb0 100644 --- a/src/plugins/platforminputcontexts/ibus/qibusproxy.cpp +++ b/src/plugins/platforminputcontexts/ibus/qibusproxy.cpp @@ -9,6 +9,8 @@ * before re-generating it. */ +#include <QtDBus/qdbusextratypes.h> + #include "qibusproxy.h" /* @@ -18,9 +20,36 @@ QIBusProxy::QIBusProxy(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent) : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent) { + this->connection().connect(service, + path, + this->interface(), // interface + QStringLiteral("GlobalEngineChanged"), + QStringList(), + QString(), // signature + this, SLOT(globalEngineChanged(QString))); } QIBusProxy::~QIBusProxy() { } +QIBusEngineDesc QIBusProxy::getGlobalEngine() +{ + QIBusEngineDesc desc; + QDBusReply<QDBusVariant> reply = GetGlobalEngine(); + QVariant variant = reply.value().variant(); + if (!variant.isValid()) + return desc; + QVariant child = variant.value<QDBusVariant>().variant(); + if (!child.isValid()) + return desc; + const QDBusArgument argument = child.value<QDBusArgument>(); + argument >> desc; + return desc; +} + +void QIBusProxy::globalEngineChanged(const QString &engine_name) +{ + emit GlobalEngineChanged(engine_name); +} + |