aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/items/qquicktableview.cpp34
-rw-r--r--src/quick/items/qquicktableview_p_p.h1
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);