diff options
author | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2015-10-26 11:31:56 +0200 |
---|---|---|
committer | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2015-10-28 09:44:59 +0000 |
commit | 03e2a1036061b82739041911e3827de3cb388d02 (patch) | |
tree | e23bb1390d0fba0d69a68dfee70afdc09a496bc5 /src/virtualkeyboard/inputcontext.h | |
parent | 2c5d6925ceeee7b216dead5ab87693c0d4cc0ca4 (diff) |
Refactor class names
Since the virtual keyboard C++ interface is wrapped inside a
namespace, it is possible to get rid of "Declarative" name
in the class names, that would otherwise conflict with the
QML namespace in the documentation.
- Rename DeclarativeSettings to VirtualKeyboardSettings
- Remove "Declarative" from class names
The rationale for this change is that the name Declarative
refers to now obsolete QtQuick1 module. Also, the class names
are now the same in C++ and QML name spaces.
Change-Id: Ide050d47110443d894d95d35dddf0df5891587be
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'src/virtualkeyboard/inputcontext.h')
-rw-r--r-- | src/virtualkeyboard/inputcontext.h | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/src/virtualkeyboard/inputcontext.h b/src/virtualkeyboard/inputcontext.h new file mode 100644 index 00000000..b07b1cad --- /dev/null +++ b/src/virtualkeyboard/inputcontext.h @@ -0,0 +1,140 @@ +/****************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Virtual Keyboard module. +** +** $QT_BEGIN_LICENSE:COMM$ +** +** 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 The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** $QT_END_LICENSE$ +** +******************************************************************************/ + +#ifndef INPUTCONTEXT_H +#define INPUTCONTEXT_H + +#include <QObject> +#include <QRectF> +#include <QLocale> +#include <QInputMethodEvent> +#include <QInputMethod> + +namespace QtVirtualKeyboard { + +class PlatformInputContext; +class InputEngine; +class ShiftHandler; +class InputContextPrivate; + +class InputContext : public QObject +{ + Q_OBJECT + Q_DISABLE_COPY(InputContext) + Q_DECLARE_PRIVATE(InputContext) + Q_PROPERTY(bool focus READ focus NOTIFY focusChanged) + Q_PROPERTY(bool shift READ shift WRITE setShift NOTIFY shiftChanged) + Q_PROPERTY(bool capsLock READ capsLock WRITE setCapsLock NOTIFY capsLockChanged) + Q_PROPERTY(int cursorPosition READ cursorPosition NOTIFY cursorPositionChanged) + Q_PROPERTY(Qt::InputMethodHints inputMethodHints READ inputMethodHints NOTIFY inputMethodHintsChanged) + Q_PROPERTY(QString preeditText READ preeditText WRITE setPreeditText NOTIFY preeditTextChanged) + Q_PROPERTY(QString surroundingText READ surroundingText NOTIFY surroundingTextChanged) + Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectedTextChanged) + Q_PROPERTY(QRectF cursorRectangle READ cursorRectangle NOTIFY cursorRectangleChanged) + Q_PROPERTY(QRectF keyboardRectangle READ keyboardRectangle WRITE setKeyboardRectangle NOTIFY keyboardRectangleChanged) + Q_PROPERTY(QRectF previewRectangle READ previewRectangle WRITE setPreviewRectangle NOTIFY previewRectangleChanged) + Q_PROPERTY(bool previewVisible READ previewVisible WRITE setPreviewVisible NOTIFY previewVisibleChanged) + Q_PROPERTY(bool animating READ animating WRITE setAnimating NOTIFY animatingChanged) + Q_PROPERTY(QString locale READ locale WRITE setLocale NOTIFY localeChanged) + Q_PROPERTY(QObject *inputItem READ inputItem NOTIFY inputItemChanged) + Q_PROPERTY(QtVirtualKeyboard::ShiftHandler *shiftHandler READ shiftHandler CONSTANT) + Q_PROPERTY(QtVirtualKeyboard::InputEngine *inputEngine READ inputEngine CONSTANT) + +public: + explicit InputContext(PlatformInputContext *parent = 0); + ~InputContext(); + + bool focus() const; + bool shift() const; + void setShift(bool enable); + bool capsLock() const; + void setCapsLock(bool enable); + int cursorPosition() const; + Qt::InputMethodHints inputMethodHints() const; + QString preeditText() const; + void setPreeditText(const QString &text, QList<QInputMethodEvent::Attribute> attributes = QList<QInputMethodEvent::Attribute>(), int replaceFrom = 0, int replaceLength = 0); + QString surroundingText() const; + QString selectedText() const; + QRectF cursorRectangle() const; + QRectF keyboardRectangle() const; + void setKeyboardRectangle(QRectF rectangle); + QRectF previewRectangle() const; + void setPreviewRectangle(QRectF rectangle); + bool previewVisible() const; + void setPreviewVisible(bool visible); + bool animating() const; + void setAnimating(bool animating); + QString locale() const; + void setLocale(const QString &locale); + Q_INVOKABLE void updateAvailableLocales(const QStringList &availableLocales); + QObject *inputItem() const; + ShiftHandler *shiftHandler() const; + InputEngine *inputEngine() const; + + Q_INVOKABLE void hideInputPanel(); + Q_INVOKABLE void sendKeyClick(int key, const QString &text, int modifiers = 0); + Q_INVOKABLE void commit(); + Q_INVOKABLE void commit(const QString &text, int replaceFrom = 0, int replaceLength = 0); + Q_INVOKABLE void clear(); + + // Helper functions + Q_INVOKABLE bool fileExists(const QUrl &fileUrl); + Q_INVOKABLE bool hasEnterKeyAction(QObject *item) const; + +signals: + void focusChanged(); + void focusEditorChanged(); + void preeditTextChanged(); + void inputMethodHintsChanged(); + void surroundingTextChanged(); + void selectedTextChanged(); + void cursorPositionChanged(); + void cursorRectangleChanged(); + void shiftChanged(); + void capsLockChanged(); + void keyboardRectangleChanged(); + void previewRectangleChanged(); + void previewVisibleChanged(); + void animatingChanged(); + void localeChanged(); + void inputItemChanged(); + void navigationKeyPressed(int key, bool isAutoRepeat); + void navigationKeyReleased(int key, bool isAutoRepeat); + +private slots: + void onInputItemChanged(); + +private: + void setFocus(bool enable); + void sendPreedit(const QString &text, const QList<QInputMethodEvent::Attribute> &attributes, int replaceFrom, int replaceLength); + void reset(); + void externalCommit(); + void update(Qt::InputMethodQueries queries); + void invokeAction(QInputMethod::Action action, int cursorPosition); + bool filterEvent(const QEvent *event); + +private: + friend class PlatformInputContext; +}; + +} // namespace QtVirtualKeyboard + +#endif |