diff options
| author | Mitch Curtis <mitch.curtis@qt.io> | 2022-06-06 16:02:15 +0800 |
|---|---|---|
| committer | Mitch Curtis <mitch.curtis@qt.io> | 2022-06-10 10:32:34 +0800 |
| commit | dbd108a7997f129004bbed523db75d4aa9d0ab6c (patch) | |
| tree | 399883edff051d79f928a038b681be5ebf761dd3 /src/quick/items/qquickgridview.cpp | |
| parent | e58626a02b7431b06333429aae80c6d23f904ddc (diff) | |
Item views: fix error when accessing attached view from non-delegates
Ensure that the view is set on the relevant attached objects before
QQmlComponent::completeCreate() is called, which would otherwise result
in a TypeError because the view would be set too late.
Fixes: QTBUG-104026
Task-number: QTBUG-98718
Pick-to: 6.2 6.3 6.4
Change-Id: Ic65370bd4534e7452f2377ab4d60a74badf02079
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'src/quick/items/qquickgridview.cpp')
| -rw-r--r-- | src/quick/items/qquickgridview.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/quick/items/qquickgridview.cpp b/src/quick/items/qquickgridview.cpp index 3d4d377d79..b68f2db500 100644 --- a/src/quick/items/qquickgridview.cpp +++ b/src/quick/items/qquickgridview.cpp @@ -208,6 +208,8 @@ public: void updateHeader() override; void updateFooter() override; + void initializeComponentItem(QQuickItem *item) const override; + void changedVisibleIndex(int newIndex) override; void initializeCurrentItem() override; @@ -853,6 +855,14 @@ void QQuickGridViewPrivate::updateFooter() emit q->footerItemChanged(); } +void QQuickGridViewPrivate::initializeComponentItem(QQuickItem *item) const +{ + QQuickGridViewAttached *attached = static_cast<QQuickGridViewAttached *>( + qmlAttachedPropertiesObject<QQuickGridView>(item)); + if (attached) + attached->setView(const_cast<QQuickGridView*>(q_func())); +} + void QQuickGridViewPrivate::updateHeader() { Q_Q(QQuickGridView); |
