Remove Maliit input context.
Maliit upstream has its own IC which is more advanced than this one, as well as being supported. Change-Id: I4b820fc7f39468e53c113699c4c43c75d490f65b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com> Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>bb10
parent
e94c221655
commit
80cb575953
|
|
@ -1,158 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the plugins of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "contextadaptor.h"
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QList>
|
||||
#include <QtCore/QMetaObject>
|
||||
#include <QtCore/QMap>
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QtCore/QVariant>
|
||||
|
||||
#include "qmaliitplatforminputcontext.h"
|
||||
|
||||
/*
|
||||
* Implementation of adaptor class Inputcontext1Adaptor
|
||||
*/
|
||||
|
||||
Inputcontext1Adaptor::Inputcontext1Adaptor(QObject *parent)
|
||||
: QDBusAbstractAdaptor(parent)
|
||||
{
|
||||
// constructor
|
||||
setAutoRelaySignals(true);
|
||||
}
|
||||
|
||||
Inputcontext1Adaptor::~Inputcontext1Adaptor()
|
||||
{
|
||||
// destructor
|
||||
}
|
||||
|
||||
void Inputcontext1Adaptor::activationLostEvent()
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.activationLostEvent
|
||||
QMetaObject::invokeMethod(parent(), "activationLostEvent");
|
||||
}
|
||||
|
||||
void Inputcontext1Adaptor::commitString(const QString &in0, int in1, int in2, int in3)
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.commitString
|
||||
QMetaObject::invokeMethod(parent(), "commitString", Q_ARG(QString, in0), Q_ARG(int, in1), Q_ARG(int, in2), Q_ARG(int, in3));
|
||||
}
|
||||
|
||||
void Inputcontext1Adaptor::updatePreedit(const QDBusMessage &message)
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.updatePreedit
|
||||
QMetaObject::invokeMethod(parent(), "updatePreedit", Q_ARG(QDBusMessage, message));
|
||||
}
|
||||
|
||||
void Inputcontext1Adaptor::copy()
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.copy
|
||||
QMetaObject::invokeMethod(parent(), "copy");
|
||||
}
|
||||
|
||||
void Inputcontext1Adaptor::imInitiatedHide()
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.imInitiatedHide
|
||||
QMetaObject::invokeMethod(parent(), "imInitiatedHide");
|
||||
}
|
||||
|
||||
void Inputcontext1Adaptor::keyEvent(int in0, int in1, int in2, const QString &in3, bool in4, int in5, uchar in6)
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.keyEvent
|
||||
QMetaObject::invokeMethod(parent(), "keyEvent", Q_ARG(int, in0), Q_ARG(int, in1), Q_ARG(int, in2), Q_ARG(QString, in3), Q_ARG(bool, in4), Q_ARG(int, in5), Q_ARG(uchar, in6));
|
||||
}
|
||||
|
||||
void Inputcontext1Adaptor::paste()
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.paste
|
||||
QMetaObject::invokeMethod(parent(), "paste");
|
||||
}
|
||||
|
||||
bool Inputcontext1Adaptor::preeditRectangle(int &out1, int &out2, int &out3, int &out4)
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.preeditRectangle
|
||||
return static_cast<QMaliitPlatformInputContext *>(parent())->preeditRectangle(out1, out2, out3, out4);
|
||||
}
|
||||
|
||||
bool Inputcontext1Adaptor::selection(QString &out1)
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.selection
|
||||
return static_cast<QMaliitPlatformInputContext *>(parent())->selection(out1);
|
||||
}
|
||||
|
||||
void Inputcontext1Adaptor::setDetectableAutoRepeat(bool in0)
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.setDetectableAutoRepeat
|
||||
QMetaObject::invokeMethod(parent(), "setDetectableAutoRepeat", Q_ARG(bool, in0));
|
||||
}
|
||||
|
||||
void Inputcontext1Adaptor::setGlobalCorrectionEnabled(bool in0)
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.setGlobalCorrectionEnabled
|
||||
QMetaObject::invokeMethod(parent(), "setGlobalCorrectionEnabled", Q_ARG(bool, in0));
|
||||
}
|
||||
|
||||
void Inputcontext1Adaptor::setLanguage(const QString &in0)
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.setLanguage
|
||||
QMetaObject::invokeMethod(parent(), "setLanguage", Q_ARG(QString, in0));
|
||||
}
|
||||
|
||||
void Inputcontext1Adaptor::setRedirectKeys(bool in0)
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.setRedirectKeys
|
||||
QMetaObject::invokeMethod(parent(), "setRedirectKeys", Q_ARG(bool, in0));
|
||||
}
|
||||
|
||||
void Inputcontext1Adaptor::setSelection(int in0, int in1)
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.setSelection
|
||||
QMetaObject::invokeMethod(parent(), "setSelection", Q_ARG(int, in0), Q_ARG(int, in1));
|
||||
}
|
||||
|
||||
void Inputcontext1Adaptor::updateInputMethodArea(int in0, int in1, int in2, int in3)
|
||||
{
|
||||
// handle method call com.meego.inputmethod.inputcontext1.updateInputMethodArea
|
||||
QMetaObject::invokeMethod(parent(), "updateInputMethodArea", Q_ARG(int, in0), Q_ARG(int, in1), Q_ARG(int, in2), Q_ARG(int, in3));
|
||||
}
|
||||
|
||||
|
|
@ -1,148 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the plugins of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef CONTEXT_H_1318935171
|
||||
#define CONTEXT_H_1318935171
|
||||
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QList>
|
||||
#include <QtCore/QMap>
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QtCore/QVariant>
|
||||
#include <QtDBus/QtDBus>
|
||||
|
||||
/*
|
||||
* Adaptor class for interface com.meego.inputmethod.inputcontext1
|
||||
*/
|
||||
class Inputcontext1Adaptor: public QDBusAbstractAdaptor
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_CLASSINFO("D-Bus Interface", "com.meego.inputmethod.inputcontext1")
|
||||
Q_CLASSINFO("D-Bus Introspection", ""
|
||||
" <interface name=\"com.meego.inputmethod.inputcontext1\">\n"
|
||||
" <method name=\"activationLostEvent\"/>\n"
|
||||
" <method name=\"imInitiatedHide\"/>\n"
|
||||
" <method name=\"commitString\">\n"
|
||||
" <arg type=\"s\"/>\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" </method>\n"
|
||||
" <method name=\"updatePreedit\">\n"
|
||||
" <arg type=\"s\"/>\n"
|
||||
" <arg type=\"a(iii)\"/>\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" </method>\n"
|
||||
" <method name=\"keyEvent\">\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" <arg type=\"s\"/>\n"
|
||||
" <arg type=\"b\"/>\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" <arg type=\"y\"/>\n"
|
||||
" </method>\n"
|
||||
" <method name=\"updateInputMethodArea\">\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" </method>\n"
|
||||
" <method name=\"setGlobalCorrectionEnabled\">\n"
|
||||
" <arg type=\"b\"/>\n"
|
||||
" </method>\n"
|
||||
" <method name=\"preeditRectangle\">\n"
|
||||
" <arg direction=\"out\" type=\"b\"/>\n"
|
||||
" <arg direction=\"out\" type=\"i\"/>\n"
|
||||
" <arg direction=\"out\" type=\"i\"/>\n"
|
||||
" <arg direction=\"out\" type=\"i\"/>\n"
|
||||
" <arg direction=\"out\" type=\"i\"/>\n"
|
||||
" </method>\n"
|
||||
" <method name=\"copy\"/>\n"
|
||||
" <method name=\"paste\"/>\n"
|
||||
" <method name=\"setRedirectKeys\">\n"
|
||||
" <arg type=\"b\"/>\n"
|
||||
" </method>\n"
|
||||
" <method name=\"setDetectableAutoRepeat\">\n"
|
||||
" <arg type=\"b\"/>\n"
|
||||
" </method>\n"
|
||||
" <method name=\"setSelection\">\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" <arg type=\"i\"/>\n"
|
||||
" </method>\n"
|
||||
" <method name=\"selection\">\n"
|
||||
" <arg direction=\"out\" type=\"b\"/>\n"
|
||||
" <arg direction=\"out\" type=\"s\"/>\n"
|
||||
" </method>\n"
|
||||
" <method name=\"setLanguage\">\n"
|
||||
" <arg type=\"s\"/>\n"
|
||||
" </method>\n"
|
||||
" </interface>\n"
|
||||
"")
|
||||
public:
|
||||
Inputcontext1Adaptor(QObject *parent);
|
||||
virtual ~Inputcontext1Adaptor();
|
||||
|
||||
public: // PROPERTIES
|
||||
public Q_SLOTS: // METHODS
|
||||
void activationLostEvent();
|
||||
void commitString(const QString &in0, int in1, int in2, int in3);
|
||||
void updatePreedit(const QDBusMessage &message);
|
||||
void copy();
|
||||
void imInitiatedHide();
|
||||
void keyEvent(int in0, int in1, int in2, const QString &in3, bool in4, int in5, uchar in6);
|
||||
void paste();
|
||||
bool preeditRectangle(int &out1, int &out2, int &out3, int &out4);
|
||||
bool selection(QString &out1);
|
||||
void setDetectableAutoRepeat(bool in0);
|
||||
void setGlobalCorrectionEnabled(bool in0);
|
||||
void setLanguage(const QString &in0);
|
||||
void setRedirectKeys(bool in0);
|
||||
void setSelection(int in0, int in1);
|
||||
void updateInputMethodArea(int in0, int in1, int in2, int in3);
|
||||
Q_SIGNALS: // SIGNALS
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the plugins of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <qpa/qplatforminputcontextplugin_p.h>
|
||||
#include <QtCore/QStringList>
|
||||
#include "qmaliitplatforminputcontext.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class QMaliitPlatformInputContextPlugin : public QPlatformInputContextPlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPlatformInputContextFactoryInterface" FILE "maliit.json")
|
||||
|
||||
public:
|
||||
QPlatformInputContext *create(const QString&, const QStringList&);
|
||||
};
|
||||
|
||||
QPlatformInputContext *QMaliitPlatformInputContextPlugin::create(const QString& system, const QStringList& paramList)
|
||||
{
|
||||
Q_UNUSED(paramList);
|
||||
|
||||
if (system.compare(system, QStringLiteral("maliit"), Qt::CaseInsensitive) == 0)
|
||||
return new QMaliitPlatformInputContext;
|
||||
return 0;
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#include "main.moc"
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"Keys": [ "maliit" ]
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
TARGET = maliitplatforminputcontextplugin
|
||||
|
||||
PLUGIN_TYPE = platforminputcontexts
|
||||
PLUGIN_CLASS_NAME = QMaliitPlatformInputContextPlugin
|
||||
load(qt_plugin)
|
||||
|
||||
QT += dbus gui-private
|
||||
SOURCES += $$PWD/qmaliitplatforminputcontext.cpp \
|
||||
$$PWD/serverproxy.cpp \
|
||||
$$PWD/serveraddressproxy.cpp \
|
||||
$$PWD/contextadaptor.cpp \
|
||||
$$PWD/main.cpp
|
||||
|
||||
HEADERS += $$PWD/qmaliitplatforminputcontext.h \
|
||||
$$PWD/serverproxy.h \
|
||||
$$PWD/serveraddressproxy.h \
|
||||
$$PWD/contextadaptor.h
|
||||
|
||||
OTHER_FILES += $$PWD/maliit.json
|
||||
|
|
@ -1,583 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the plugins of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
#include "qmaliitplatforminputcontext.h"
|
||||
|
||||
#include <QtDebug>
|
||||
#include <QTextCharFormat>
|
||||
#include <QGuiApplication>
|
||||
#include <qwindow.h>
|
||||
#include <qevent.h>
|
||||
#include <qscreen.h>
|
||||
|
||||
#include "serveraddressproxy.h"
|
||||
#include "serverproxy.h"
|
||||
#include "contextadaptor.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <signal.h>
|
||||
|
||||
#include <QtDBus>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
enum { debug = 0 };
|
||||
|
||||
enum InputPanelVisibility {
|
||||
InputPanelHidden,
|
||||
InputPanelShowRequested,
|
||||
InputPanelShown
|
||||
};
|
||||
|
||||
enum MaliitOrientationAngle {
|
||||
Angle0 = 0,
|
||||
Angle90 = 90,
|
||||
Angle180 = 180,
|
||||
Angle270 = 270
|
||||
};
|
||||
|
||||
static int orientationAngle(Qt::ScreenOrientation orientation)
|
||||
{
|
||||
switch (orientation) {
|
||||
case Qt::PrimaryOrientation: // Urgh.
|
||||
case Qt::PortraitOrientation:
|
||||
return Angle270;
|
||||
case Qt::LandscapeOrientation:
|
||||
return Angle0;
|
||||
case Qt::InvertedPortraitOrientation:
|
||||
return Angle90;
|
||||
case Qt::InvertedLandscapeOrientation:
|
||||
return Angle180;
|
||||
}
|
||||
return Angle0;
|
||||
}
|
||||
|
||||
// From MTF:
|
||||
//! Content type for text entries. Used at least with MTextEdit
|
||||
enum TextContentType {
|
||||
//! all characters allowed
|
||||
FreeTextContentType,
|
||||
|
||||
//! only integer numbers allowed
|
||||
NumberContentType,
|
||||
|
||||
//! allows numbers and certain other characters used in phone numbers
|
||||
PhoneNumberContentType,
|
||||
|
||||
//! allows only characters permitted in email address
|
||||
EmailContentType,
|
||||
|
||||
//! allows only character permitted in URL address
|
||||
UrlContentType,
|
||||
|
||||
//! allows content with user defined format
|
||||
CustomContentType
|
||||
};
|
||||
static TextContentType contentTypeFromHints(Qt::InputMethodHints hints)
|
||||
{
|
||||
TextContentType type = FreeTextContentType;
|
||||
hints &= Qt::ImhExclusiveInputMask;
|
||||
|
||||
if (hints == Qt::ImhFormattedNumbersOnly || hints == Qt::ImhDigitsOnly)
|
||||
type = NumberContentType;
|
||||
else if (hints == Qt::ImhDialableCharactersOnly)
|
||||
type = PhoneNumberContentType;
|
||||
else if (hints == Qt::ImhEmailCharactersOnly)
|
||||
type = EmailContentType;
|
||||
else if (hints == Qt::ImhUrlCharactersOnly)
|
||||
type = UrlContentType;
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
/// From Maliit's namespace.h
|
||||
enum MaliitEventRequestType {
|
||||
EventRequestBoth, //!< Both a Qt::KeyEvent and a signal
|
||||
EventRequestSignalOnly, //!< Only a signal
|
||||
EventRequestEventOnly //!< Only a Qt::KeyEvent
|
||||
};
|
||||
|
||||
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 QMaliitPlatformInputContextPrivate
|
||||
{
|
||||
public:
|
||||
QMaliitPlatformInputContextPrivate(QMaliitPlatformInputContext *qq);
|
||||
~QMaliitPlatformInputContextPrivate()
|
||||
{
|
||||
delete adaptor;
|
||||
delete server;
|
||||
}
|
||||
|
||||
void sendStateUpdate(bool focusChanged = false);
|
||||
|
||||
QDBusConnection connection;
|
||||
ComMeegoInputmethodUiserver1Interface *server;
|
||||
Inputcontext1Adaptor *adaptor;
|
||||
|
||||
QMap<QString, QVariant> imState;
|
||||
|
||||
InputPanelVisibility visibility;
|
||||
|
||||
bool valid;
|
||||
bool active;
|
||||
bool correctionEnabled;
|
||||
QRect keyboardRect;
|
||||
QString preedit;
|
||||
QPointer<QWindow> window;
|
||||
QMaliitPlatformInputContext *q;
|
||||
};
|
||||
|
||||
|
||||
QMaliitPlatformInputContext::QMaliitPlatformInputContext()
|
||||
: d(new QMaliitPlatformInputContextPrivate(this))
|
||||
{
|
||||
if (debug)
|
||||
qDebug() << "QMaliitPlatformInputContext::QMaliitPlatformInputContext()";
|
||||
}
|
||||
|
||||
QMaliitPlatformInputContext::~QMaliitPlatformInputContext(void)
|
||||
{
|
||||
delete d;
|
||||
}
|
||||
|
||||
bool QMaliitPlatformInputContext::isValid() const
|
||||
{
|
||||
return d->valid;
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::invokeAction(QInputMethod::Action action, int x)
|
||||
{
|
||||
if (!inputMethodAccepted())
|
||||
return;
|
||||
|
||||
if (action == QInputMethod::Click) {
|
||||
if (x < 0 || x >= d->preedit.length()) {
|
||||
reset();
|
||||
return;
|
||||
}
|
||||
|
||||
d->imState["preeditClickPos"] = x;
|
||||
d->sendStateUpdate();
|
||||
// The first argument is the mouse pos and the second is the
|
||||
// preedit rectangle. Both are unused on the server side.
|
||||
d->server->mouseClickedOnPreedit(0, 0, 0, 0, 0, 0);
|
||||
} else {
|
||||
QPlatformInputContext::invokeAction(action, x);
|
||||
}
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::reset()
|
||||
{
|
||||
const bool hadPreedit = !d->preedit.isEmpty();
|
||||
if (hadPreedit && inputMethodAccepted()) {
|
||||
// ### selection
|
||||
QInputMethodEvent event;
|
||||
event.setCommitString(d->preedit);
|
||||
QGuiApplication::sendEvent(qGuiApp->focusObject(), &event);
|
||||
d->preedit.clear();
|
||||
}
|
||||
|
||||
QDBusPendingReply<void> reply = d->server->reset();
|
||||
if (hadPreedit)
|
||||
reply.waitForFinished();
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::update(Qt::InputMethodQueries queries)
|
||||
{
|
||||
if (!qGuiApp->focusObject())
|
||||
return;
|
||||
|
||||
QInputMethodQueryEvent query(queries);
|
||||
QGuiApplication::sendEvent(qGuiApp->focusObject(), &query);
|
||||
|
||||
if (queries & Qt::ImSurroundingText)
|
||||
d->imState["surroundingText"] = query.value(Qt::ImSurroundingText);
|
||||
if (queries & Qt::ImCursorPosition)
|
||||
d->imState["cursorPosition"] = query.value(Qt::ImCursorPosition);
|
||||
if (queries & Qt::ImAnchorPosition)
|
||||
d->imState["anchorPosition"] = query.value(Qt::ImAnchorPosition);
|
||||
if (queries & Qt::ImCursorRectangle) {
|
||||
QRect rect = query.value(Qt::ImCursorRectangle).toRect();
|
||||
rect = qGuiApp->inputMethod()->inputItemTransform().mapRect(rect);
|
||||
QWindow *window = qGuiApp->focusWindow();
|
||||
if (window)
|
||||
d->imState["cursorRectangle"] = QRect(window->mapToGlobal(rect.topLeft()), rect.size());
|
||||
}
|
||||
|
||||
if (queries & Qt::ImCurrentSelection)
|
||||
d->imState["hasSelection"] = !query.value(Qt::ImCurrentSelection).toString().isEmpty();
|
||||
|
||||
if (queries & Qt::ImHints) {
|
||||
Qt::InputMethodHints hints = Qt::InputMethodHints(query.value(Qt::ImHints).toUInt());
|
||||
|
||||
d->imState["predictionEnabled"] = !(hints & Qt::ImhNoPredictiveText);
|
||||
d->imState["autocapitalizationEnabled"] = !(hints & Qt::ImhNoAutoUppercase);
|
||||
d->imState["hiddenText"] = (hints & Qt::ImhHiddenText) != 0;
|
||||
|
||||
d->imState["contentType"] = contentTypeFromHints(hints);
|
||||
}
|
||||
|
||||
d->sendStateUpdate(/*focusChanged*/true);
|
||||
}
|
||||
|
||||
QRectF QMaliitPlatformInputContext::keyboardRect() const
|
||||
{
|
||||
return d->keyboardRect;
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::activationLostEvent()
|
||||
{
|
||||
d->active = false;
|
||||
d->visibility = InputPanelHidden;
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::commitString(const QString &string, int replacementStart, int replacementLength, int /* cursorPos */)
|
||||
{
|
||||
if (!inputMethodAccepted())
|
||||
return;
|
||||
|
||||
d->preedit.clear();
|
||||
|
||||
if (debug)
|
||||
qWarning() << "CommitString" << string;
|
||||
// ### start/cursorPos
|
||||
QInputMethodEvent event;
|
||||
event.setCommitString(string, replacementStart, replacementLength);
|
||||
QCoreApplication::sendEvent(qGuiApp->focusObject(), &event);
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::updatePreedit(const QDBusMessage &message)
|
||||
{
|
||||
if (!inputMethodAccepted())
|
||||
return;
|
||||
|
||||
QList<QVariant> arguments = message.arguments();
|
||||
if (arguments.count() != 5) {
|
||||
qWarning() << "QMaliitPlatformInputContext::updatePreedit: Received message from input method server with wrong parameters.";
|
||||
return;
|
||||
}
|
||||
|
||||
d->preedit = arguments[0].toString();
|
||||
|
||||
QList<QInputMethodEvent::Attribute> attributes;
|
||||
|
||||
const QDBusArgument formats = arguments[1].value<QDBusArgument>();
|
||||
formats.beginArray();
|
||||
while (!formats.atEnd()) {
|
||||
formats.beginStructure();
|
||||
int start, length, preeditFace;
|
||||
formats >> start >> length >> preeditFace;
|
||||
formats.endStructure();
|
||||
|
||||
QTextCharFormat format;
|
||||
|
||||
enum PreeditFace {
|
||||
PreeditDefault,
|
||||
PreeditNoCandidates,
|
||||
PreeditKeyPress, //!< Used for displaying the hwkbd key just pressed
|
||||
PreeditUnconvertible, //!< Inactive preedit region, not clickable
|
||||
PreeditActive, //!< Preedit region with active suggestions
|
||||
|
||||
};
|
||||
switch (PreeditFace(preeditFace)) {
|
||||
case PreeditDefault:
|
||||
case PreeditKeyPress:
|
||||
format.setUnderlineStyle(QTextCharFormat::SingleUnderline);
|
||||
format.setUnderlineColor(QColor(0, 0, 0));
|
||||
break;
|
||||
case PreeditNoCandidates:
|
||||
format.setUnderlineStyle(QTextCharFormat::SingleUnderline);
|
||||
format.setUnderlineColor(QColor(255, 0, 0));
|
||||
break;
|
||||
case PreeditUnconvertible:
|
||||
format.setForeground(QBrush(QColor(128, 128, 128)));
|
||||
break;
|
||||
case PreeditActive:
|
||||
format.setForeground(QBrush(QColor(153, 50, 204)));
|
||||
format.setFontWeight(QFont::Bold);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
attributes << QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, start, length, format);
|
||||
}
|
||||
formats.endArray();
|
||||
|
||||
int replacementStart = arguments[2].toInt();
|
||||
int replacementLength = arguments[3].toInt();
|
||||
int cursorPos = arguments[4].toInt();
|
||||
|
||||
if (debug)
|
||||
qWarning() << "updatePreedit" << d->preedit << replacementStart << replacementLength << cursorPos;
|
||||
|
||||
if (cursorPos >= 0)
|
||||
attributes << QInputMethodEvent::Attribute(QInputMethodEvent::Cursor, cursorPos, 1, QVariant());
|
||||
|
||||
QInputMethodEvent event(d->preedit, attributes);
|
||||
if (replacementStart || replacementLength)
|
||||
event.setCommitString(QString(), replacementStart, replacementLength);
|
||||
QCoreApplication::sendEvent(qGuiApp->focusObject(), &event);
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::copy()
|
||||
{
|
||||
// Not supported at the moment.
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::imInitiatedHide()
|
||||
{
|
||||
d->visibility = InputPanelHidden;
|
||||
emitInputPanelVisibleChanged();
|
||||
// ### clear focus
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::keyEvent(int type, int key, int modifiers, const QString &text,
|
||||
bool autoRepeat, int count, uchar requestType_)
|
||||
{
|
||||
MaliitEventRequestType requestType = MaliitEventRequestType(requestType_);
|
||||
if (requestType == EventRequestSignalOnly) {
|
||||
qWarning() << "Maliit: Signal emitted key events are not supported.";
|
||||
return;
|
||||
}
|
||||
|
||||
// HACK: This code relies on QEvent::Type for key events and modifiers to be binary compatible between
|
||||
// Qt 4 and 5.
|
||||
QEvent::Type eventType = static_cast<QEvent::Type>(type);
|
||||
if (type != QEvent::KeyPress && type != QEvent::KeyRelease) {
|
||||
qWarning() << "Maliit: Unknown key event type" << type;
|
||||
return;
|
||||
}
|
||||
|
||||
QKeyEvent event(eventType, key, static_cast<Qt::KeyboardModifiers>(modifiers),
|
||||
text, autoRepeat, count);
|
||||
if (d->window)
|
||||
QCoreApplication::sendEvent(d->window.data(), &event);
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::paste()
|
||||
{
|
||||
// Not supported at the moment.
|
||||
}
|
||||
|
||||
bool QMaliitPlatformInputContext::preeditRectangle(int &x, int &y, int &width, int &height)
|
||||
{
|
||||
// ###
|
||||
QRect r = qApp->inputMethod()->cursorRectangle().toRect();
|
||||
if (!r.isValid())
|
||||
return false;
|
||||
x = r.x();
|
||||
y = r.y();
|
||||
width = r.width();
|
||||
height = r.height();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool QMaliitPlatformInputContext::selection(QString &selection)
|
||||
{
|
||||
selection.clear();
|
||||
|
||||
if (!inputMethodAccepted())
|
||||
return false;
|
||||
|
||||
QInputMethodQueryEvent query(Qt::ImCurrentSelection);
|
||||
QGuiApplication::sendEvent(qGuiApp->focusObject(), &query);
|
||||
QVariant value = query.value(Qt::ImCurrentSelection);
|
||||
if (!value.isValid())
|
||||
return false;
|
||||
|
||||
selection = value.toString();
|
||||
return true;
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::setDetectableAutoRepeat(bool)
|
||||
{
|
||||
// Not supported.
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::setGlobalCorrectionEnabled(bool enable)
|
||||
{
|
||||
d->correctionEnabled = enable;
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::setLanguage(const QString &)
|
||||
{
|
||||
// Unused at the moment.
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::setRedirectKeys(bool)
|
||||
{
|
||||
// Not supported.
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::setSelection(int start, int length)
|
||||
{
|
||||
if (!inputMethodAccepted())
|
||||
return;
|
||||
|
||||
QList<QInputMethodEvent::Attribute> attributes;
|
||||
attributes << QInputMethodEvent::Attribute(QInputMethodEvent::Selection, start, length, QVariant());
|
||||
QInputMethodEvent event(QString(), attributes);
|
||||
QGuiApplication::sendEvent(qGuiApp->focusObject(), &event);
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::updateInputMethodArea(int x, int y, int width, int height)
|
||||
{
|
||||
d->keyboardRect = QRect(x, y, width, height);
|
||||
emitKeyboardRectChanged();
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::updateServerWindowOrientation(Qt::ScreenOrientation orientation)
|
||||
{
|
||||
d->server->appOrientationChanged(orientationAngle(orientation));
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::setFocusObject(QObject *object)
|
||||
{
|
||||
if (!d->valid)
|
||||
return;
|
||||
|
||||
QWindow *window = qGuiApp->focusWindow();
|
||||
if (window != d->window.data()) {
|
||||
if (d->window)
|
||||
disconnect(d->window.data(), SIGNAL(contentOrientationChanged(Qt::ScreenOrientation)),
|
||||
this, SLOT(updateServerWindowOrientation(Qt::ScreenOrientation)));
|
||||
d->window = window;
|
||||
if (d->window)
|
||||
connect(d->window.data(), SIGNAL(contentOrientationChanged(Qt::ScreenOrientation)),
|
||||
this, SLOT(updateServerWindowOrientation(Qt::ScreenOrientation)));
|
||||
}
|
||||
|
||||
d->imState["focusState"] = (object != 0);
|
||||
if (inputMethodAccepted()) {
|
||||
if (window)
|
||||
d->imState["winId"] = static_cast<qulonglong>(window->winId());
|
||||
|
||||
if (!d->active) {
|
||||
d->active = true;
|
||||
d->server->activateContext();
|
||||
|
||||
if (window)
|
||||
d->server->appOrientationChanged(orientationAngle(window->contentOrientation()));
|
||||
}
|
||||
}
|
||||
d->sendStateUpdate(/*focusChanged*/true);
|
||||
if (inputMethodAccepted() && window && d->visibility == InputPanelShowRequested)
|
||||
showInputPanel();
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::showInputPanel()
|
||||
{
|
||||
if (debug)
|
||||
qDebug() << "showInputPanel";
|
||||
|
||||
if (!inputMethodAccepted())
|
||||
d->visibility = InputPanelShowRequested;
|
||||
else {
|
||||
d->server->showInputMethod();
|
||||
d->visibility = InputPanelShown;
|
||||
emitInputPanelVisibleChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContext::hideInputPanel()
|
||||
{
|
||||
d->server->hideInputMethod();
|
||||
d->visibility = InputPanelHidden;
|
||||
emitInputPanelVisibleChanged();
|
||||
}
|
||||
|
||||
bool QMaliitPlatformInputContext::isInputPanelVisible() const
|
||||
{
|
||||
return d->visibility == InputPanelShown;
|
||||
}
|
||||
|
||||
QMaliitPlatformInputContextPrivate::QMaliitPlatformInputContextPrivate(QMaliitPlatformInputContext* qq)
|
||||
: connection(QDBusConnection::connectToPeer(maliitServerAddress(), QLatin1String("MaliitIMProxy")))
|
||||
, server(0)
|
||||
, adaptor(0)
|
||||
, visibility(InputPanelHidden)
|
||||
, valid(false)
|
||||
, active(false)
|
||||
, correctionEnabled(false)
|
||||
, q(qq)
|
||||
{
|
||||
if (!connection.isConnected())
|
||||
return;
|
||||
|
||||
server = new ComMeegoInputmethodUiserver1Interface(QStringLiteral(""), QStringLiteral("/com/meego/inputmethod/uiserver1"), connection);
|
||||
adaptor = new Inputcontext1Adaptor(qq);
|
||||
connection.registerObject("/com/meego/inputmethod/inputcontext", qq);
|
||||
|
||||
enum InputMethodMode {
|
||||
//! Normal mode allows to use preedit and error correction
|
||||
InputMethodModeNormal,
|
||||
|
||||
//! Virtual keyboard sends QKeyEvent for every key press or release
|
||||
InputMethodModeDirect,
|
||||
|
||||
//! Used with proxy widget
|
||||
InputMethodModeProxy
|
||||
};
|
||||
imState["inputMethodMode"] = InputMethodModeNormal;
|
||||
|
||||
imState["correctionEnabled"] = true;
|
||||
|
||||
valid = true;
|
||||
}
|
||||
|
||||
void QMaliitPlatformInputContextPrivate::sendStateUpdate(bool focusChanged)
|
||||
{
|
||||
server->updateWidgetInformation(imState, focusChanged);
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the plugins of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
#ifndef QMALIITPLATFORMINPUTCONTEXT_H
|
||||
#define QMALIITPLATFORMINPUTCONTEXT_H
|
||||
|
||||
#include <qpa/qplatforminputcontext.h>
|
||||
#include <QDBusArgument>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class QMaliitPlatformInputContextPrivate;
|
||||
class QDBusVariant;
|
||||
class QDBusMessage;
|
||||
|
||||
class QMaliitPlatformInputContext : public QPlatformInputContext
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QMaliitPlatformInputContext();
|
||||
~QMaliitPlatformInputContext();
|
||||
|
||||
bool isValid() const;
|
||||
|
||||
void invokeAction(QInputMethod::Action action, int x);
|
||||
void reset(void);
|
||||
void update(Qt::InputMethodQueries);
|
||||
virtual QRectF keyboardRect() const;
|
||||
|
||||
virtual void showInputPanel();
|
||||
virtual void hideInputPanel();
|
||||
virtual bool isInputPanelVisible() const;
|
||||
void setFocusObject(QObject *object);
|
||||
|
||||
public Q_SLOTS:
|
||||
void activationLostEvent();
|
||||
void commitString(const QString &in0, int in1, int in2, int in3);
|
||||
void updatePreedit(const QDBusMessage &message);
|
||||
void copy();
|
||||
void imInitiatedHide();
|
||||
void keyEvent(int type, int key, int modifiers, const QString &text, bool autoRepeat, int count, uchar requestType_);
|
||||
void paste();
|
||||
bool preeditRectangle(int &x, int &y, int &width, int &height);
|
||||
bool selection(QString &selection);
|
||||
void setDetectableAutoRepeat(bool in0);
|
||||
void setGlobalCorrectionEnabled(bool enable);
|
||||
void setLanguage(const QString &);
|
||||
void setRedirectKeys(bool );
|
||||
void setSelection(int start, int length);
|
||||
void updateInputMethodArea(int x, int y, int width, int height);
|
||||
void updateServerWindowOrientation(Qt::ScreenOrientation orientation);
|
||||
|
||||
private:
|
||||
QMaliitPlatformInputContextPrivate *d;
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the plugins of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "serveraddressproxy.h"
|
||||
|
||||
/*
|
||||
* Implementation of interface class OrgMaliitServerAddressInterface
|
||||
*/
|
||||
|
||||
OrgMaliitServerAddressInterface::OrgMaliitServerAddressInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
|
||||
: QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent)
|
||||
{
|
||||
}
|
||||
|
||||
OrgMaliitServerAddressInterface::~OrgMaliitServerAddressInterface()
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -1,84 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the plugins of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef SERVERADDRESSPROXY_H
|
||||
#define SERVERADDRESSPROXY_H
|
||||
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QList>
|
||||
#include <QtCore/QMap>
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QtCore/QVariant>
|
||||
#include <QtDBus/QtDBus>
|
||||
|
||||
/*
|
||||
* Proxy class for interface org.maliit.Server.Address
|
||||
*/
|
||||
class OrgMaliitServerAddressInterface: public QDBusAbstractInterface
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
static inline const char *staticInterfaceName()
|
||||
{ return "org.maliit.Server.Address"; }
|
||||
|
||||
public:
|
||||
OrgMaliitServerAddressInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
|
||||
|
||||
~OrgMaliitServerAddressInterface();
|
||||
|
||||
Q_PROPERTY(QString address READ address)
|
||||
inline QString address() const
|
||||
{ return qvariant_cast< QString >(property("address")); }
|
||||
|
||||
public Q_SLOTS: // METHODS
|
||||
Q_SIGNALS: // SIGNALS
|
||||
};
|
||||
|
||||
namespace org {
|
||||
namespace maliit {
|
||||
namespace Server {
|
||||
typedef ::OrgMaliitServerAddressInterface Address;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the plugins of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "serverproxy.h"
|
||||
|
||||
/*
|
||||
* Implementation of interface class ComMeegoInputmethodUiserver1Interface
|
||||
*/
|
||||
|
||||
ComMeegoInputmethodUiserver1Interface::ComMeegoInputmethodUiserver1Interface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
|
||||
: QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent)
|
||||
{
|
||||
}
|
||||
|
||||
ComMeegoInputmethodUiserver1Interface::~ComMeegoInputmethodUiserver1Interface()
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -1,166 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the plugins of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef SERVER_H_1318935108
|
||||
#define SERVER_H_1318935108
|
||||
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QList>
|
||||
#include <QtCore/QMap>
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QtCore/QVariant>
|
||||
#include <QtDBus/QtDBus>
|
||||
|
||||
/*
|
||||
* Proxy class for interface com.meego.inputmethod.uiserver1
|
||||
*/
|
||||
class ComMeegoInputmethodUiserver1Interface: public QDBusAbstractInterface
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
static inline const char *staticInterfaceName()
|
||||
{ return "com.meego.inputmethod.uiserver1"; }
|
||||
|
||||
public:
|
||||
ComMeegoInputmethodUiserver1Interface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
|
||||
|
||||
~ComMeegoInputmethodUiserver1Interface();
|
||||
|
||||
public Q_SLOTS: // METHODS
|
||||
inline QDBusPendingReply<> activateContext()
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
return asyncCallWithArgumentList(QLatin1String("activateContext"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> appOrientationAboutToChange(int in0)
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
argumentList << QVariant::fromValue(in0);
|
||||
return asyncCallWithArgumentList(QLatin1String("appOrientationAboutToChange"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> appOrientationChanged(int in0)
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
argumentList << QVariant::fromValue(in0);
|
||||
return asyncCallWithArgumentList(QLatin1String("appOrientationChanged"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> hideInputMethod()
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
return asyncCallWithArgumentList(QLatin1String("hideInputMethod"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> mouseClickedOnPreedit(int in0, int in1, int in2, int in3, int in4, int in5)
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1) << QVariant::fromValue(in2) << QVariant::fromValue(in3) << QVariant::fromValue(in4) << QVariant::fromValue(in5);
|
||||
return asyncCallWithArgumentList(QLatin1String("mouseClickedOnPreedit"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> processKeyEvent(int in0, int in1, int in2, const QString &in3, bool in4, int in5, uint in6, uint in7, uint in8)
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1) << QVariant::fromValue(in2) << QVariant::fromValue(in3) << QVariant::fromValue(in4) << QVariant::fromValue(in5) << QVariant::fromValue(in6) << QVariant::fromValue(in7) << QVariant::fromValue(in8);
|
||||
return asyncCallWithArgumentList(QLatin1String("processKeyEvent"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> setPreedit(const QString &in0, int in1)
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1);
|
||||
return asyncCallWithArgumentList(QLatin1String("setPreedit"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> showInputMethod()
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
return asyncCallWithArgumentList(QLatin1String("showInputMethod"), argumentList);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> updateWidgetInformation(const QMap<QString, QVariant> &stateInformation, bool focusChanged)
|
||||
{
|
||||
QDBusMessage msg = QDBusMessage::createMethodCall(service(), path(), interface(), "updateWidgetInformation");
|
||||
|
||||
QDBusArgument map;
|
||||
map.beginMap(QVariant::String, qMetaTypeId<QDBusVariant>());
|
||||
for (QMap<QString, QVariant>::ConstIterator it = stateInformation.constBegin(), end = stateInformation.constEnd();
|
||||
it != end; ++it) {
|
||||
map.beginMapEntry();
|
||||
map << it.key();
|
||||
map << QDBusVariant(it.value());
|
||||
map.endMapEntry();
|
||||
}
|
||||
map.endMap();
|
||||
|
||||
QList<QVariant> args;
|
||||
args << QVariant::fromValue(map) << QVariant(focusChanged);
|
||||
msg.setArguments(args);
|
||||
return connection().asyncCall(msg);
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> reset()
|
||||
{
|
||||
return asyncCall(QLatin1String("reset"));
|
||||
}
|
||||
|
||||
inline QDBusPendingReply<> setCopyPasteState(bool in0, bool in1)
|
||||
{
|
||||
QList<QVariant> argumentList;
|
||||
argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1);
|
||||
return asyncCallWithArgumentList(QLatin1String("setCopyPasteState"), argumentList);
|
||||
}
|
||||
|
||||
Q_SIGNALS: // SIGNALS
|
||||
};
|
||||
|
||||
namespace com {
|
||||
namespace meego {
|
||||
namespace inputmethod {
|
||||
typedef ::ComMeegoInputmethodUiserver1Interface uiserver1;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
TEMPLATE = subdirs
|
||||
|
||||
qtHaveModule(dbus) {
|
||||
!mac:!win32:SUBDIRS += ibus maliit
|
||||
!mac:!win32:SUBDIRS += ibus
|
||||
}
|
||||
|
||||
unix:!macx:!contains(DEFINES, QT_NO_XKBCOMMON): {
|
||||
|
|
|
|||
Loading…
Reference in New Issue