diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2020-02-19 14:00:46 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2020-02-28 12:05:39 +0100 |
commit | 46162c304195db2376706f2e1a9da2b2c938e97b (patch) | |
tree | 5db6ebf5b0e77a5f6dcbeb70496ad585cd42af17 /src/quick/items/qquicktableview.cpp | |
parent | 83fdcbf3be0ddbbee1fd2c8c9ff1a4e3c707e3f0 (diff) |
QQuickTableView: Immediately delete delegates when possible
In the dtor we don't need to care about any side effects a direct
delete may have. Rather, any deleteLater() may not take effect
anymore as the event loop may be gone already.
Task-number: QTBUG-82000
Change-Id: I97935dc47fbbfd0c050e80c333c36a05f685c45d
Reviewed-by: Joni Poikelin <joni.poikelin@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/quick/items/qquicktableview.cpp')
-rw-r--r-- | src/quick/items/qquicktableview.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/quick/items/qquicktableview.cpp b/src/quick/items/qquicktableview.cpp index 4b34e3b2c1..4105996b31 100644 --- a/src/quick/items/qquicktableview.cpp +++ b/src/quick/items/qquicktableview.cpp @@ -441,7 +441,16 @@ QQuickTableViewPrivate::QQuickTableViewPrivate() QQuickTableViewPrivate::~QQuickTableViewPrivate() { - releaseLoadedItems(QQmlTableInstanceModel::NotReusable); + for (auto *fxTableItem : loadedItems) { + if (auto item = fxTableItem->item) { + if (fxTableItem->ownItem) + delete item; + else if (tableModel) + tableModel->dispose(item); + } + delete fxTableItem; + } + if (tableModel) delete tableModel; } |