diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquickitem.cpp | 21 | ||||
-rw-r--r-- | src/quick/items/qquickitem.h | 2 | ||||
-rw-r--r-- | src/quick/items/qquickitem_p.h | 1 | ||||
-rw-r--r-- | src/quick/items/qquicktextedit.cpp | 18 | ||||
-rw-r--r-- | src/quick/items/qquicktextedit_p.h | 6 | ||||
-rw-r--r-- | src/quick/items/qquicktextedit_p_p.h | 3 | ||||
-rw-r--r-- | src/quick/items/qquicktextinput.cpp | 14 | ||||
-rw-r--r-- | src/quick/items/qquicktextinput_p.h | 7 | ||||
-rw-r--r-- | src/quick/items/qquicktextinput_p_p.h | 2 |
9 files changed, 40 insertions, 34 deletions
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index c5d55cf6b3..889f0548b1 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -2309,7 +2309,6 @@ QQuickItemPrivate::QQuickItemPrivate() z(0), scale(1), rotation(0), opacity(1), attachedLayoutDirection(0), acceptedMouseButtons(0), - imHints(Qt::ImhNone), keyHandler(0), @@ -3113,24 +3112,6 @@ void QQuickItem::windowDeactivateEvent() } } -Qt::InputMethodHints QQuickItem::inputMethodHints() const -{ - Q_D(const QQuickItem); - return d->imHints; -} - -void QQuickItem::setInputMethodHints(Qt::InputMethodHints hints) -{ - Q_D(QQuickItem); - d->imHints = hints; - - if (!d->canvas || d->canvas->activeFocusItem() != this) - return; - - if (qApp->focusObject() == this) - qApp->inputMethod()->update(Qt::ImHints); -} - QVariant QQuickItem::inputMethodQuery(Qt::InputMethodQuery query) const { Q_D(const QQuickItem); @@ -3141,8 +3122,6 @@ QVariant QQuickItem::inputMethodQuery(Qt::InputMethodQuery query) const v = (bool)(flags() & ItemAcceptsInputMethod); break; case Qt::ImHints: - v = (int)inputMethodHints(); - break; case Qt::ImCursorRectangle: case Qt::ImFont: case Qt::ImCursorPosition: diff --git a/src/quick/items/qquickitem.h b/src/quick/items/qquickitem.h index 16a6074354..4c733aecef 100644 --- a/src/quick/items/qquickitem.h +++ b/src/quick/items/qquickitem.h @@ -309,8 +309,6 @@ public: Q_INVOKABLE void forceActiveFocus(); Q_INVOKABLE QQuickItem *childAt(qreal x, qreal y) const; - Qt::InputMethodHints inputMethodHints() const; - void setInputMethodHints(Qt::InputMethodHints hints); virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; struct UpdatePaintNodeData { diff --git a/src/quick/items/qquickitem_p.h b/src/quick/items/qquickitem_p.h index c88219f732..a5e8640b9f 100644 --- a/src/quick/items/qquickitem_p.h +++ b/src/quick/items/qquickitem_p.h @@ -439,7 +439,6 @@ public: QQuickLayoutMirroringAttached* attachedLayoutDirection; Qt::MouseButtons acceptedMouseButtons; - Qt::InputMethodHints imHints; void setAccessibleFlagAndListener(); diff --git a/src/quick/items/qquicktextedit.cpp b/src/quick/items/qquicktextedit.cpp index fba84e6fde..6f3c32db7d 100644 --- a/src/quick/items/qquicktextedit.cpp +++ b/src/quick/items/qquicktextedit.cpp @@ -1131,6 +1131,24 @@ void QQuickTextEdit::setTextMargin(qreal margin) \endlist */ +Qt::InputMethodHints QQuickTextEdit::inputMethodHints() const +{ + Q_D(const QQuickTextEdit); + return d->inputMethodHints; +} + +void QQuickTextEdit::setInputMethodHints(Qt::InputMethodHints hints) +{ + Q_D(QQuickTextEdit); + + if (hints == d->inputMethodHints) + return; + + d->inputMethodHints = hints; + updateInputMethod(Qt::ImHints); + emit inputMethodHintsChanged(); +} + void QQuickTextEdit::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { diff --git a/src/quick/items/qquicktextedit_p.h b/src/quick/items/qquicktextedit_p.h index 0db85bb5fa..d71759f466 100644 --- a/src/quick/items/qquicktextedit_p.h +++ b/src/quick/items/qquicktextedit_p.h @@ -88,7 +88,7 @@ class Q_AUTOTEST_EXPORT QQuickTextEdit : public QQuickImplicitSizeItem Q_PROPERTY(bool activeFocusOnPress READ focusOnPress WRITE setFocusOnPress NOTIFY activeFocusOnPressChanged) Q_PROPERTY(bool persistentSelection READ persistentSelection WRITE setPersistentSelection NOTIFY persistentSelectionChanged) Q_PROPERTY(qreal textMargin READ textMargin WRITE setTextMargin NOTIFY textMarginChanged) - Q_PROPERTY(Qt::InputMethodHints inputMethodHints READ inputMethodHints WRITE setInputMethodHints) + Q_PROPERTY(Qt::InputMethodHints inputMethodHints READ inputMethodHints WRITE setInputMethodHints NOTIFY inputMethodHintsChanged) Q_PROPERTY(bool selectByMouse READ selectByMouse WRITE setSelectByMouse NOTIFY selectByMouseChanged) Q_PROPERTY(SelectionMode mouseSelectionMode READ mouseSelectionMode WRITE setMouseSelectionMode NOTIFY mouseSelectionModeChanged) Q_PROPERTY(bool canPaste READ canPaste NOTIFY canPasteChanged) @@ -190,6 +190,9 @@ public: qreal textMargin() const; void setTextMargin(qreal margin); + Qt::InputMethodHints inputMethodHints() const; + void setInputMethodHints(Qt::InputMethodHints hints); + bool selectByMouse() const; void setSelectByMouse(bool); @@ -265,6 +268,7 @@ Q_SIGNALS: void inputMethodComposingChanged(); void effectiveHorizontalAlignmentChanged(); void baseUrlChanged(); + void inputMethodHintsChanged(); public Q_SLOTS: void selectAll(); diff --git a/src/quick/items/qquicktextedit_p_p.h b/src/quick/items/qquicktextedit_p_p.h index 665aa02839..b30792ffaa 100644 --- a/src/quick/items/qquicktextedit_p_p.h +++ b/src/quick/items/qquicktextedit_p_p.h @@ -77,7 +77,7 @@ public: textMargin(0.0), lastSelectionStart(0), lastSelectionEnd(0), cursorComponent(0), cursor(0), format(QQuickTextEdit::PlainText), document(0), wrapMode(QQuickTextEdit::NoWrap), mouseSelectionMode(QQuickTextEdit::SelectCharacters), - lineCount(0), yoff(0), updateType(UpdatePaintNode) + lineCount(0), yoff(0), inputMethodHints(Qt::ImhNone), updateType(UpdatePaintNode) { } @@ -132,6 +132,7 @@ public: int lineCount; int yoff; QSize contentSize; + Qt::InputMethodHints inputMethodHints; enum UpdateType { UpdateNone, diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp index 830b875617..bcdef31ccb 100644 --- a/src/quick/items/qquicktextinput.cpp +++ b/src/quick/items/qquicktextinput.cpp @@ -1110,7 +1110,8 @@ void QQuickTextInputPrivate::updateInputMethodHints() hints &= ~Qt::ImhHiddenText; if (m_echoMode != QQuickTextInput::Normal) hints |= (Qt::ImhNoAutoUppercase | Qt::ImhNoPredictiveText | Qt::ImhSensitiveData); - q->setInputMethodHints(hints); + effectiveInputMethodHints = hints; + q->updateInputMethod(Qt::ImHints); } /*! \qmlproperty enumeration QtQuick2::TextInput::echoMode @@ -1190,19 +1191,22 @@ void QQuickTextInput::setEchoMode(QQuickTextInput::EchoMode echo) \endlist */ -Qt::InputMethodHints QQuickTextInput::imHints() const +Qt::InputMethodHints QQuickTextInput::inputMethodHints() const { Q_D(const QQuickTextInput); return d->inputMethodHints; } -void QQuickTextInput::setIMHints(Qt::InputMethodHints hints) +void QQuickTextInput::setInputMethodHints(Qt::InputMethodHints hints) { Q_D(QQuickTextInput); - if (d->inputMethodHints == hints) + + if (hints == d->inputMethodHints) return; + d->inputMethodHints = hints; d->updateInputMethodHints(); + emit inputMethodHintsChanged(); } /*! @@ -1781,7 +1785,7 @@ QVariant QQuickTextInput::inputMethodQuery(Qt::InputMethodQuery property) const case Qt::ImEnabled: return QVariant((bool)(flags() & ItemAcceptsInputMethod)); case Qt::ImHints: - return QVariant((int)inputMethodHints()); + return QVariant((int) d->effectiveInputMethodHints); case Qt::ImCursorRectangle: return cursorRectangle(); case Qt::ImFont: diff --git a/src/quick/items/qquicktextinput_p.h b/src/quick/items/qquicktextinput_p.h index b5b3d0f430..952752205d 100644 --- a/src/quick/items/qquicktextinput_p.h +++ b/src/quick/items/qquicktextinput_p.h @@ -88,7 +88,7 @@ class Q_AUTOTEST_EXPORT QQuickTextInput : public QQuickImplicitSizeItem Q_PROPERTY(QValidator* validator READ validator WRITE setValidator NOTIFY validatorChanged) #endif Q_PROPERTY(QString inputMask READ inputMask WRITE setInputMask NOTIFY inputMaskChanged) - Q_PROPERTY(Qt::InputMethodHints inputMethodHints READ imHints WRITE setIMHints) + Q_PROPERTY(Qt::InputMethodHints inputMethodHints READ inputMethodHints WRITE setInputMethodHints NOTIFY inputMethodHintsChanged) Q_PROPERTY(bool acceptableInput READ hasAcceptableInput NOTIFY acceptableInputChanged) Q_PROPERTY(EchoMode echoMode READ echoMode WRITE setEchoMode NOTIFY echoModeChanged) @@ -251,8 +251,8 @@ public: bool isInputMethodComposing() const; - Qt::InputMethodHints imHints() const; - void setIMHints(Qt::InputMethodHints hints); + Qt::InputMethodHints inputMethodHints() const; + void setInputMethodHints(Qt::InputMethodHints hints); Q_INVOKABLE QString getText(int start, int end) const; @@ -295,6 +295,7 @@ Q_SIGNALS: void inputMethodComposingChanged(); void effectiveHorizontalAlignmentChanged(); void contentSizeChanged(); + void inputMethodHintsChanged(); protected: virtual void geometryChanged(const QRectF &newGeometry, diff --git a/src/quick/items/qquicktextinput_p_p.h b/src/quick/items/qquicktextinput_p_p.h index 07d73bebdf..09896c2a6e 100644 --- a/src/quick/items/qquicktextinput_p_p.h +++ b/src/quick/items/qquicktextinput_p_p.h @@ -103,6 +103,7 @@ public: , wrapMode(QQuickTextInput::NoWrap) , mouseSelectionMode(QQuickTextInput::SelectCharacters) , inputMethodHints(Qt::ImhNone) + , effectiveInputMethodHints(Qt::ImhNone) , m_layoutDirection(Qt::LayoutDirectionAuto) , m_passwordCharacter(QLatin1Char('*')) , focused(false) @@ -228,6 +229,7 @@ public: QQuickTextInput::WrapMode wrapMode; QQuickTextInput::SelectionMode mouseSelectionMode; Qt::InputMethodHints inputMethodHints; + Qt::InputMethodHints effectiveInputMethodHints; Qt::LayoutDirection m_layoutDirection; QChar m_blank; |