diff options
Diffstat (limited to 'src/quicktemplates/qquicktextfield.cpp')
-rw-r--r-- | src/quicktemplates/qquicktextfield.cpp | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/src/quicktemplates/qquicktextfield.cpp b/src/quicktemplates/qquicktextfield.cpp index bb62c15ed1..9513be3f3b 100644 --- a/src/quicktemplates/qquicktextfield.cpp +++ b/src/quicktemplates/qquicktextfield.cpp @@ -288,7 +288,7 @@ void QQuickTextFieldPrivate::accessibilityActiveChanged(bool active) Q_Q(QQuickTextField); QQuickAccessibleAttached *accessibleAttached = qobject_cast<QQuickAccessibleAttached *>(qmlAttachedPropertiesObject<QQuickAccessibleAttached>(q, true)); Q_ASSERT(accessibleAttached); - accessibleAttached->setRole(accessibleRole()); + accessibleAttached->setRole(effectiveAccessibleRole()); accessibleAttached->set_readOnly(m_readOnly); accessibleAttached->set_passwordEdit((m_echoMode == QQuickTextField::Password || m_echoMode == QQuickTextField::PasswordEchoOnEdit) ? true : false); accessibleAttached->setDescription(placeholder); @@ -300,8 +300,6 @@ QAccessible::Role QQuickTextFieldPrivate::accessibleRole() const } #endif -static inline QString backgroundName() { return QStringLiteral("background"); } - void QQuickTextFieldPrivate::cancelBackground() { Q_Q(QQuickTextField); @@ -525,21 +523,32 @@ void QQuickTextField::setPlaceholderTextColor(const QColor &color) /*! \qmlproperty enumeration QtQuick.Controls::TextField::focusReason - \include qquickcontrol-focusreason.qdocinc + This property holds the reason of the last focus change. + + \note This property does not indicate whether the item has \l {Item::activeFocus} + {active focus}, but the reason why the item either gained or lost focus. + + \value Qt.MouseFocusReason A mouse action occurred. + \value Qt.TabFocusReason The Tab key was pressed. + \value Qt.BacktabFocusReason A Backtab occurred. The input for this may include the Shift or Control keys; e.g. Shift+Tab. + \value Qt.ActiveWindowFocusReason The window system made this window either active or inactive. + \value Qt.PopupFocusReason The application opened/closed a pop-up that grabbed/released the keyboard focus. + \value Qt.ShortcutFocusReason The user typed a label's buddy shortcut + \value Qt.MenuBarFocusReason The menu bar took focus. + \value Qt.OtherFocusReason Another reason, usually application-specific. + + \note Prefer \l {Item::focusReason} to this property. */ Qt::FocusReason QQuickTextField::focusReason() const { Q_D(const QQuickTextField); - return d->focusReason; + return d->lastFocusChangeReason(); } void QQuickTextField::setFocusReason(Qt::FocusReason reason) { Q_D(QQuickTextField); - if (d->focusReason == reason) - return; - - d->focusReason = reason; + d->setLastFocusChangeReason(reason); emit focusReasonChanged(); } @@ -839,13 +848,11 @@ QSGNode *QQuickTextField::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData void QQuickTextField::focusInEvent(QFocusEvent *event) { QQuickTextInput::focusInEvent(event); - setFocusReason(event->reason()); } void QQuickTextField::focusOutEvent(QFocusEvent *event) { QQuickTextInput::focusOutEvent(event); - setFocusReason(event->reason()); } #if QT_CONFIG(quicktemplates2_hover) @@ -871,7 +878,7 @@ void QQuickTextField::mousePressEvent(QMouseEvent *event) d->pressHandler.mousePressEvent(event); if (d->pressHandler.isActive()) { if (d->pressHandler.delayedMousePressEvent) { - QQuickTextInput::mousePressEvent(d->pressHandler.delayedMousePressEvent); + QQuickTextInput::mousePressEvent(d->pressHandler.delayedMousePressEvent.get()); d->pressHandler.clearDelayedMouseEvent(); } if (event->buttons() != Qt::RightButton) @@ -885,7 +892,7 @@ void QQuickTextField::mouseMoveEvent(QMouseEvent *event) d->pressHandler.mouseMoveEvent(event); if (d->pressHandler.isActive()) { if (d->pressHandler.delayedMousePressEvent) { - QQuickTextInput::mousePressEvent(d->pressHandler.delayedMousePressEvent); + QQuickTextInput::mousePressEvent(d->pressHandler.delayedMousePressEvent.get()); d->pressHandler.clearDelayedMouseEvent(); } const bool isMouse = QQuickDeliveryAgentPrivate::isEventFromMouseOrTouchpad(event) @@ -904,7 +911,7 @@ void QQuickTextField::mouseReleaseEvent(QMouseEvent *event) d->pressHandler.mouseReleaseEvent(event); if (d->pressHandler.isActive()) { if (d->pressHandler.delayedMousePressEvent) { - QQuickTextInput::mousePressEvent(d->pressHandler.delayedMousePressEvent); + QQuickTextInput::mousePressEvent(d->pressHandler.delayedMousePressEvent.get()); d->pressHandler.clearDelayedMouseEvent(); } if (event->buttons() != Qt::RightButton) @@ -916,7 +923,7 @@ void QQuickTextField::mouseDoubleClickEvent(QMouseEvent *event) { Q_D(QQuickTextField); if (d->pressHandler.delayedMousePressEvent) { - QQuickTextInput::mousePressEvent(d->pressHandler.delayedMousePressEvent); + QQuickTextInput::mousePressEvent(d->pressHandler.delayedMousePressEvent.get()); d->pressHandler.clearDelayedMouseEvent(); } if (event->buttons() != Qt::RightButton) |