From f91c39fe3aab8fae361559216494b283893a54fa Mon Sep 17 00:00:00 2001 From: Jan Arne Petersen Date: Fri, 27 Jan 2012 13:07:48 +0100 Subject: Use per session socket to connect to maliit server In newer versions of maliit a per session abstract socket for communication between maliit server and input contexts is used. The address is published over the D-Bus session bus as address property in the org.maliit.Server.Address interface of the /org/maliit/server/address object at the org.maliit.server service. Fallback to old socket when org.maliit.server service is not available. Task-number: QTBUG-22982 Change-Id: I1b2cdd0c804d3d625e18b4958dd60008ea289d91 Reviewed-by: Simon Hausmann --- .../meego/qmeegoplatforminputcontext.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/plugins/platforminputcontexts/meego/qmeegoplatforminputcontext.cpp') diff --git a/src/plugins/platforminputcontexts/meego/qmeegoplatforminputcontext.cpp b/src/plugins/platforminputcontexts/meego/qmeegoplatforminputcontext.cpp index 607dad6b94..9b5da9d6d7 100644 --- a/src/plugins/platforminputcontexts/meego/qmeegoplatforminputcontext.cpp +++ b/src/plugins/platforminputcontexts/meego/qmeegoplatforminputcontext.cpp @@ -47,6 +47,7 @@ #include #include +#include "serveraddressproxy.h" #include "serverproxy.h" #include "contextadaptor.h" @@ -126,6 +127,19 @@ static TextContentType contentTypeFromHints(Qt::InputMethodHints hints) return type; } +static QString maliitServerAddress() +{ + org::maliit::Server::Address serverAddress(QStringLiteral("org.maliit.server"), QStringLiteral("/org/maliit/server/address"), QDBusConnection::sessionBus()); + + QString address(serverAddress.address()); + + // Fallback to old socket when org.maliit.server service is not available + if (address.isEmpty()) + return QStringLiteral("unix:path=/tmp/meego-im-uiserver/imserver_dbus"); + + return address; +} + class QMeeGoPlatformInputContextPrivate { public: @@ -517,7 +531,7 @@ bool QMeeGoPlatformInputContext::isInputPanelVisible() const } QMeeGoPlatformInputContextPrivate::QMeeGoPlatformInputContextPrivate(QMeeGoPlatformInputContext* qq) - : connection(QDBusConnection::connectToPeer(QStringLiteral("unix:path=/tmp/meego-im-uiserver/imserver_dbus"), QLatin1String("MeeGoIMProxy"))) + : connection(QDBusConnection::connectToPeer(maliitServerAddress(), QLatin1String("MeeGoIMProxy"))) , server(0) , adaptor(0) , visibility(InputPanelHidden) -- cgit v1.2.3