1
/* * This file is part of Maliit framework *
3
* Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
6
* Contact: maliit-discuss@lists.maliit.org
8
* This library is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU Lesser General Public
10
* License version 2.1 as published by the Free Software Foundation
11
* and appearing in the file LICENSE.LGPL included in the packaging
15
#include "mimdirectserverconnection.h"
17
#include "miminputcontextdirectconnection.h"
20
const int firstConnectionId = 1;
23
MImDirectServerConnection *MImDirectServerConnection::instance()
25
static MImDirectServerConnection singleton;
30
MImDirectServerConnection::MImDirectServerConnection(QObject *parent)
31
: MImServerConnection(parent)
33
, mConnectionId(firstConnectionId)
35
/* FIXME: Don't hardcode mConnectionId
36
Ideally it should be possible to have multiple IC (and thus server connection)
37
in one process, talking to one imServer, for testing purposes. */
40
void MImDirectServerConnection::connectTo(MImInputContextDirectConnection *icConnection)
43
qCritical() << __PRETTY_FUNCTION__ << "icConnection cannot be NULL";
47
if (icConnection != mIcConnection) {
48
mIcConnection = icConnection;
49
icConnection->connectTo(this);
53
void MImDirectServerConnection::activateContext()
55
mIcConnection->activateContext(mConnectionId);
58
void MImDirectServerConnection::showInputMethod()
60
mIcConnection->showInputMethod(mConnectionId);
63
void MImDirectServerConnection::hideInputMethod()
65
mIcConnection->hideInputMethod(mConnectionId);
68
void MImDirectServerConnection::mouseClickedOnPreedit(const QPoint &pos, const QRect &preeditRect)
70
mIcConnection->mouseClickedOnPreedit(mConnectionId, pos, preeditRect);
73
void MImDirectServerConnection::setPreedit(const QString &text, int cursorPos)
75
mIcConnection->setPreedit(mConnectionId, text, cursorPos);
78
void MImDirectServerConnection::updateWidgetInformation(const QMap<QString, QVariant> &stateInformation,
81
mIcConnection->updateWidgetInformation(mConnectionId, stateInformation, focusChanged);
84
void MImDirectServerConnection::reset(bool requireSynchronization)
86
Q_UNUSED(requireSynchronization);
87
mIcConnection->reset(mConnectionId);
90
bool MImDirectServerConnection::pendingResets()
92
return MImServerConnection::pendingResets();
95
void MImDirectServerConnection::appOrientationAboutToChange(int angle)
97
mIcConnection->receivedAppOrientationAboutToChange(mConnectionId, angle);
100
void MImDirectServerConnection::appOrientationChanged(int angle)
102
mIcConnection->receivedAppOrientationChanged(mConnectionId, angle);
105
void MImDirectServerConnection::setCopyPasteState(bool copyAvailable, bool pasteAvailable)
107
mIcConnection->setCopyPasteState(mConnectionId, copyAvailable, pasteAvailable);
110
void MImDirectServerConnection::processKeyEvent(QEvent::Type keyType, Qt::Key keyCode,
111
Qt::KeyboardModifiers modifiers,
112
const QString &text, bool autoRepeat, int count,
113
quint32 nativeScanCode, quint32 nativeModifiers,
116
mIcConnection->processKeyEvent(mConnectionId, keyType, keyCode, modifiers, text,
117
autoRepeat, count, nativeScanCode, nativeModifiers,
121
void MImDirectServerConnection::registerAttributeExtension(int id, const QString &fileName)
123
mIcConnection->registerAttributeExtension(mConnectionId, id, fileName);
126
void MImDirectServerConnection::unregisterAttributeExtension(int id)
128
mIcConnection->unregisterAttributeExtension(mConnectionId, id);
131
void MImDirectServerConnection::setExtendedAttribute(int id, const QString &target, const QString &targetItem,
132
const QString &attribute, const QVariant &value)
134
mIcConnection->setExtendedAttribute(mConnectionId, id, target, targetItem, attribute, value);
137
void MImDirectServerConnection::loadPluginSettings(const QString &descriptionLanguage)
139
mIcConnection->loadPluginSettings(mConnectionId, descriptionLanguage);