diff options
Diffstat (limited to 'src/quick/items/qquicktableview.cpp')
-rw-r--r-- | src/quick/items/qquicktableview.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/quick/items/qquicktableview.cpp b/src/quick/items/qquicktableview.cpp index ab57a8ea0b..4b34e3b2c1 100644 --- a/src/quick/items/qquicktableview.cpp +++ b/src/quick/items/qquicktableview.cpp @@ -628,6 +628,12 @@ void QQuickTableViewPrivate::updateContentWidth() return; } + if (loadedItems.isEmpty()) { + QBoolBlocker fixupGuard(inUpdateContentSize, true); + q->QQuickFlickable::setContentWidth(0); + return; + } + const int nextColumn = nextVisibleEdgeIndexAroundLoadedTable(Qt::RightEdge); const int columnsRemaining = nextColumn == kEdgeIndexAtEnd ? 0 : tableSize.width() - nextColumn; const qreal remainingColumnWidths = columnsRemaining * averageEdgeSize.width(); @@ -655,6 +661,12 @@ void QQuickTableViewPrivate::updateContentHeight() return; } + if (loadedItems.isEmpty()) { + QBoolBlocker fixupGuard(inUpdateContentSize, true); + q->QQuickFlickable::setContentHeight(0); + return; + } + const int nextRow = nextVisibleEdgeIndexAroundLoadedTable(Qt::BottomEdge); const int rowsRemaining = nextRow == kEdgeIndexAtEnd ? 0 : tableSize.height() - nextRow; const qreal remainingRowHeights = rowsRemaining * averageEdgeSize.height(); @@ -1614,6 +1626,8 @@ void QQuickTableViewPrivate::processRebuildTable() if (rebuildState == RebuildState::VerifyTable) { if (loadedItems.isEmpty()) { qCDebug(lcTableViewDelegateLifecycle()) << "no items loaded!"; + updateContentWidth(); + updateContentHeight(); rebuildState = RebuildState::Done; } else if (!moveToNextRebuildState()) { return; |