diff options
-rw-r--r-- | src/quick/items/qquicktableview.cpp | 34 | ||||
-rw-r--r-- | src/quick/items/qquicktableview_p_p.h | 1 |
2 files changed, 15 insertions, 20 deletions
diff --git a/src/quick/items/qquicktableview.cpp b/src/quick/items/qquicktableview.cpp index 0db886506e..e93544c37a 100644 --- a/src/quick/items/qquicktableview.cpp +++ b/src/quick/items/qquicktableview.cpp @@ -105,7 +105,7 @@ QQuickTableViewPrivate::QQuickTableViewPrivate() QQuickTableViewPrivate::~QQuickTableViewPrivate() { - clear(); + releaseLoadedItems(); if (tableModel) delete tableModel; } @@ -397,23 +397,6 @@ void QQuickTableViewPrivate::releaseItem(FxTableItem *fxTableItem, QQmlTableInst delete fxTableItem; } -void QQuickTableViewPrivate::clear() -{ - tableInvalid = true; - tableRebuilding = false; - if (loadRequest.isActive()) - cancelLoadRequest(); - - releaseLoadedItems(); - loadedTable = QRect(); - loadedTableOuterRect = QRect(); - loadedTableInnerRect = QRect(); - contentSizeBenchMarkPoint = QPoint(-1, -1); - - updateContentWidth(); - updateContentHeight(); -} - void QQuickTableViewPrivate::unloadItem(const QPoint &cell) { const int modelIndex = modelIndexAtCell(cell); @@ -865,10 +848,23 @@ void QQuickTableViewPrivate::processLoadRequest() void QQuickTableViewPrivate::beginRebuildTable() { + Q_Q(QQuickTableView); qCDebug(lcTableViewDelegateLifecycle()); - clear(); + tableInvalid = false; tableRebuilding = true; + + releaseLoadedItems(); + loadedTable = QRect(); + loadedTableOuterRect = QRect(); + loadedTableInnerRect = QRect(); + contentSizeBenchMarkPoint = QPoint(-1, -1); + + q->setContentWidth(0); + q->setContentHeight(0); + q->setContentX(0); + q->setContentY(0); + calculateTableSize(); loadInitialTopLeftItem(); loadAndUnloadVisibleEdges(); diff --git a/src/quick/items/qquicktableview_p_p.h b/src/quick/items/qquicktableview_p_p.h index 4f5a1acdd3..19f560d3ed 100644 --- a/src/quick/items/qquicktableview_p_p.h +++ b/src/quick/items/qquicktableview_p_p.h @@ -268,7 +268,6 @@ public: void releaseItem(FxTableItem *fxTableItem, QQmlTableInstanceModel::ReusableFlag reusableFlag); void releaseLoadedItems(); - void clear(); void unloadItem(const QPoint &cell); void unloadItems(const QLine &items); |