diff options
author | Takao Fujiwara <takao.fujiwara1@gmail.com> | 2015-10-30 14:43:21 +0900 |
---|---|---|
committer | Takao Fujiwara <takao.fujiwara1@gmail.com> | 2015-11-02 01:16:01 +0000 |
commit | 550cd1d68c01e62b465c393b35a5f2c76b2d1fc5 (patch) | |
tree | c908bd1d6444284e27f538471a7465749eb4a3b8 /src/plugins/platforminputcontexts/ibus/qibusproxy.cpp | |
parent | 779656299897c5d85fd7bfd0f766cb45c3d82e4e (diff) |
IBus: Implement QPlatformInputContext::locale()
Listen to "GlobalEngineChanged" dbus signal.
Task-number: QTBUG-48772
Change-Id: Ia186a66c75fb3ce2fdf5ef9e358c1807f674594b
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
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); +} + |