summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforminputcontexts/ibus/qibusproxy.h
diff options
context:
space:
mode:
authorTakao Fujiwara <takao.fujiwara1@gmail.com>2015-10-30 14:43:21 +0900
committerTakao Fujiwara <takao.fujiwara1@gmail.com>2015-11-02 01:16:01 +0000
commit550cd1d68c01e62b465c393b35a5f2c76b2d1fc5 (patch)
treec908bd1d6444284e27f538471a7465749eb4a3b8 /src/plugins/platforminputcontexts/ibus/qibusproxy.h
parent779656299897c5d85fd7bfd0f766cb45c3d82e4e (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.h')
-rw-r--r--src/plugins/platforminputcontexts/ibus/qibusproxy.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/plugins/platforminputcontexts/ibus/qibusproxy.h b/src/plugins/platforminputcontexts/ibus/qibusproxy.h
index 69443a524d..bbaebe1b96 100644
--- a/src/plugins/platforminputcontexts/ibus/qibusproxy.h
+++ b/src/plugins/platforminputcontexts/ibus/qibusproxy.h
@@ -20,6 +20,8 @@
#include <QtCore/QVariant>
#include <QtDBus/QtDBus>
+#include "qibustypes.h"
+
/*
* Proxy class for interface org.freedesktop.IBus
*/
@@ -29,6 +31,8 @@ class QIBusProxy: public QDBusAbstractInterface
public:
static inline const char *staticInterfaceName()
{ return "org.freedesktop.IBus"; }
+ static inline QString dbusInterfaceProperties()
+ { return QStringLiteral("org.freedesktop.DBus.Properties"); }
public:
QIBusProxy(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
@@ -82,7 +86,26 @@ public Q_SLOTS: // METHODS
return asyncCallWithArgumentList(QLatin1String("RegisterComponent"), argumentList);
}
+ inline QDBusPendingReply<QDBusVariant> GetGlobalEngine()
+ {
+ if (!this->isValid() || this->service().isEmpty() || this->path().isEmpty())
+ return QDBusMessage::createError(this->lastError());
+
+ QDBusMessage msg = QDBusMessage::createMethodCall(this->service(),
+ this->path(),
+ dbusInterfaceProperties(),
+ QStringLiteral("Get"));
+ msg << this->interface() << QStringLiteral("GlobalEngine");
+ return this->connection().asyncCall(msg, this->timeout());
+ }
+
+ QIBusEngineDesc getGlobalEngine();
+
+private:
+ void globalEngineChanged(const QString &engine_name);
+
Q_SIGNALS: // SIGNALS
+ void GlobalEngineChanged(const QString &engine_name);
};
#endif