diff options
author | Doris Verria <doris.verria@qt.io> | 2024-01-10 13:23:59 +0100 |
---|---|---|
committer | Doris Verria <doris.verria@qt.io> | 2024-01-13 11:24:41 +0100 |
commit | 644ee4d23464cb04b5162051ffa1524f006b544d (patch) | |
tree | 1ca40dff7458cbfff8faf426949ec0e645130d11 /src/quick/items/qquickitem.cpp | |
parent | f210779985dab60a764bb1a43ac7b58fddb10dd0 (diff) |
API Cleanup: Remove focusReason from QQuickItem's public API and add docs
Make changes according to API review comments:
- Remove focusReason property and relevant API from QQuickItem. Move
it to private API in QQuickItemPrivate and rename it to
lastFocusChangeReason. Defer exposing this property to
QML for now. (In Qt7 we can expose it by adding it as a signal
parameter to QQuickItem's focusChanged signal)
- Add documentation for focusPolicy C++ API
- Don't mark focusPolicy property as FINAL
Partially reverts 1ca9928856c47108000ffe5f310f2b99740f087b
Task-number: QTBUG-119952
Task-number: QTBUG-117596
Pick-to: 6.7
Change-Id: Ib4632b86c64e3221ca5e651d80d58b8c89fcf2b7
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quick/items/qquickitem.cpp')
-rw-r--r-- | src/quick/items/qquickitem.cpp | 59 |
1 files changed, 31 insertions, 28 deletions
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 8a92841176..58fb51e98a 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -1739,6 +1739,19 @@ bool QQuickItemPrivate::setFocusIfNeeded(QEvent::Type eventType) return false; } +Qt::FocusReason QQuickItemPrivate::lastFocusChangeReason() const +{ + return static_cast<Qt::FocusReason>(focusReason); +} + +void QQuickItemPrivate::setLastFocusChangeReason(Qt::FocusReason reason) +{ + if (focusReason == reason) + return; + + focusReason = reason; +} + /*! \class QQuickItem \brief The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}. @@ -4098,6 +4111,7 @@ void QQuickItem::inputMethodEvent(QInputMethodEvent *event) */ void QQuickItem::focusInEvent(QFocusEvent *event) { + Q_D(QQuickItem); #if QT_CONFIG(accessibility) if (QAccessible::isActive()) { if (QObject *acc = QQuickAccessibleAttached::findAccessible(this)) { @@ -4106,7 +4120,7 @@ void QQuickItem::focusInEvent(QFocusEvent *event) } } #endif - setFocusReason(event->reason()); + d->setLastFocusChangeReason(event->reason()); } /*! @@ -4118,7 +4132,8 @@ void QQuickItem::focusInEvent(QFocusEvent *event) */ void QQuickItem::focusOutEvent(QFocusEvent *event) { - setFocusReason(event->reason()); + Q_D(QQuickItem); + d->setLastFocusChangeReason(event->reason()); } /*! @@ -7916,31 +7931,6 @@ QQuickItem *QQuickItem::scopedFocusItem() const } /*! - \qmlproperty enumeration QtQuick::Item::focusReason - \readonly - \since 6.7 - - \input item.qdocinc focus-reason - - \note This property was a member of {QQuickControl} {Control} until Qt 6.7. -*/ -Qt::FocusReason QQuickItem::focusReason() const -{ - Q_D(const QQuickItem); - return static_cast<Qt::FocusReason>(d->focusReason); -} - -void QQuickItem::setFocusReason(Qt::FocusReason reason) -{ - Q_D(QQuickItem); - if (d->focusReason == reason) - return; - - d->focusReason = reason; - emit focusReasonChanged(); -} - -/*! \qmlproperty enumeration QtQuick::Item::focusPolicy \since 6.7 @@ -7952,7 +7942,15 @@ void QQuickItem::setFocusReason(Qt::FocusReason reason) \value Qt.WheelFocus The item accepts focus by tabbing, clicking, and using the mouse wheel. \value Qt.NoFocus The item does not accept focus. - \note This property was a member of {QQuickControl} {Control} until Qt 6.7. + \note This property was a member of \l {QQuickControl} {Control} until Qt 6.7. +*/ +/*! + \property QQuickItem::focusPolicy + \since 6.7 + + This property determines the way the item accepts focus. + + \note This property was a member of \l {QQuickControl} {Control} until Qt 6.7. */ Qt::FocusPolicy QQuickItem::focusPolicy() const { @@ -7963,6 +7961,11 @@ Qt::FocusPolicy QQuickItem::focusPolicy() const return static_cast<Qt::FocusPolicy>(policy); } +/*! + Sets the focus policy of this item to \a policy. + + \sa focusPolicy() +*/ void QQuickItem::setFocusPolicy(Qt::FocusPolicy policy) { Q_D(QQuickItem); |