diff options
author | Jan Arne Petersen <jpetersen@openismus.com> | 2012-01-27 13:07:48 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-29 14:42:06 +0100 |
commit | f91c39fe3aab8fae361559216494b283893a54fa (patch) | |
tree | 8a24caf14fc41d68d663dfb61b3251c25aba451c /src/plugins/platforminputcontexts/meego/qmeegoplatforminputcontext.cpp | |
parent | 36c057787f8a94abbfd3796e5039cf4e2db3775a (diff) |
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 <simon.hausmann@nokia.com>
Diffstat (limited to 'src/plugins/platforminputcontexts/meego/qmeegoplatforminputcontext.cpp')
-rw-r--r-- | src/plugins/platforminputcontexts/meego/qmeegoplatforminputcontext.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
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 <qevent.h> #include <qscreen.h> +#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) |