summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforminputcontexts/meego/qmeegoplatforminputcontext.cpp
diff options
context:
space:
mode:
authorJan Arne Petersen <jpetersen@openismus.com>2012-01-27 13:07:48 +0100
committerQt by Nokia <qt-info@nokia.com>2012-01-29 14:42:06 +0100
commitf91c39fe3aab8fae361559216494b283893a54fa (patch)
tree8a24caf14fc41d68d663dfb61b3251c25aba451c /src/plugins/platforminputcontexts/meego/qmeegoplatforminputcontext.cpp
parent36c057787f8a94abbfd3796e5039cf4e2db3775a (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.cpp16
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)