From 53cbc3c5b43be246c7fad58eda7aafa823200629 Mon Sep 17 00:00:00 2001 From: Takao Fujiwara Date: Mon, 15 Jan 2018 12:25:05 +0900 Subject: IBus: Delete deprecated DBus APIs IBus 1.6 will remove the deprecated DBus APIs; GetAddress() GetEngines() These APIs are replaced with DBus GET properties. Change-Id: I427494dd0685d523ac07366be528127d98ad7d7c Reviewed-by: Lars Knoll --- .../platforminputcontexts/ibus/qibusproxy.cpp | 45 ++++++++++++++++++- .../platforminputcontexts/ibus/qibusproxy.h | 50 +++++++++++++--------- 2 files changed, 73 insertions(+), 22 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/platforminputcontexts/ibus/qibusproxy.cpp b/src/plugins/platforminputcontexts/ibus/qibusproxy.cpp index 9efa6f7eb0..156e9b7c90 100644 --- a/src/plugins/platforminputcontexts/ibus/qibusproxy.cpp +++ b/src/plugins/platforminputcontexts/ibus/qibusproxy.cpp @@ -33,10 +33,53 @@ QIBusProxy::~QIBusProxy() { } +#ifdef QIBUS_GET_ADDRESS +QString QIBusProxy::getAddress() +{ + QDBusReply reply = Address(); + QVariant variant = reply.value().variant(); + if (!variant.isValid()) + return QString(); + return variant.toString(); +} +#endif + +#ifdef QIBUS_GET_ENGINES +QList QIBusProxy::getEngines() +{ + QList engines; + QDBusReply reply = Engines(); + QVariant variant = reply.value().variant(); + if (!variant.isValid()) + return engines; + const QDBusArgument argument = variant.value(); + qCDebug(qtQpaInputMethodsSerialize) << "QIBusProxy::getEngines()" << argument.currentSignature(); + + int i = 1; + argument.beginMap(); + while (!argument.atEnd()) { + QDBusVariant value; + argument >> value; + if (!value.variant().isValid()) { + qWarning() << "Warning in QIBusProxy::getEngines():" << QString::asprintf("%dth variant is wrong", i); + break; + } + const QDBusArgument desc_arg = value.variant().value(); + + QIBusEngineDesc desc; + desc_arg >> desc; + engines.append(desc); + ++i; + } + argument.endMap(); + return engines; +} +#endif + QIBusEngineDesc QIBusProxy::getGlobalEngine() { QIBusEngineDesc desc; - QDBusReply reply = GetGlobalEngine(); + QDBusReply reply = GlobalEngine(); QVariant variant = reply.value().variant(); if (!variant.isValid()) return desc; diff --git a/src/plugins/platforminputcontexts/ibus/qibusproxy.h b/src/plugins/platforminputcontexts/ibus/qibusproxy.h index bbaebe1b96..839e972c34 100644 --- a/src/plugins/platforminputcontexts/ibus/qibusproxy.h +++ b/src/plugins/platforminputcontexts/ibus/qibusproxy.h @@ -54,24 +54,6 @@ public Q_SLOTS: // METHODS return asyncCallWithArgumentList(QLatin1String("Exit"), argumentList); } - inline QDBusPendingReply GetAddress() - { - QList argumentList; - return asyncCallWithArgumentList(QLatin1String("GetAddress"), argumentList); - } - - inline QDBusPendingReply ListActiveEngines() - { - QList argumentList; - return asyncCallWithArgumentList(QLatin1String("ListActiveEngines"), argumentList); - } - - inline QDBusPendingReply ListEngines() - { - QList argumentList; - return asyncCallWithArgumentList(QLatin1String("ListEngines"), argumentList); - } - inline QDBusPendingReply Ping(const QDBusVariant &data) { QList argumentList; @@ -86,19 +68,45 @@ public Q_SLOTS: // METHODS return asyncCallWithArgumentList(QLatin1String("RegisterComponent"), argumentList); } - inline QDBusPendingReply GetGlobalEngine() +// Property + inline QDBusPendingCall GetProperty(const QString method) { if (!this->isValid() || this->service().isEmpty() || this->path().isEmpty()) - return QDBusMessage::createError(this->lastError()); + return QDBusPendingCall::fromError(this->lastError()); QDBusMessage msg = QDBusMessage::createMethodCall(this->service(), this->path(), dbusInterfaceProperties(), QStringLiteral("Get")); - msg << this->interface() << QStringLiteral("GlobalEngine"); + msg << this->interface() << method; return this->connection().asyncCall(msg, this->timeout()); } +#ifdef QIBUS_GET_ADDRESS + inline QDBusPendingCall Address() + { + return GetProperty(QStringLiteral("Address")); + } +#endif + +#ifdef QIBUS_GET_ENGINES + inline QDBusPendingCall Engines() + { + return GetProperty(QStringLiteral("Engines")); + } +#endif + + inline QDBusPendingCall GlobalEngine() + { + return GetProperty(QStringLiteral("GlobalEngine")); + } + +#ifdef QIBUS_GET_ADDRESS + QString getAddress(); +#endif +#ifdef QIBUS_GET_ENGINES + QList getEngines(); +#endif QIBusEngineDesc getGlobalEngine(); private: -- cgit v1.2.3