diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-07-11 14:51:40 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-07-11 17:24:39 +0200 |
commit | 13374ceb165c44658aa97890c37b206859c9a31c (patch) | |
tree | 562362b196a459ee3449a5a1e60e5216a9dd6984 /src/quick/items/qquicktableview.cpp | |
parent | ae47deba4c943c496412530a8d2a5a688ae12038 (diff) | |
parent | b5d18be5a03406d0aac83856dd41e1525fd14a28 (diff) |
Merge remote-tracking branch 'origin/wip/qt6' into wip/cmake
Change-Id: I2963c1209316fb6755f572969f368970450d7991
Diffstat (limited to 'src/quick/items/qquicktableview.cpp')
-rw-r--r-- | src/quick/items/qquicktableview.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/quick/items/qquicktableview.cpp b/src/quick/items/qquicktableview.cpp index 9583ef4231..75e0a1018f 100644 --- a/src/quick/items/qquicktableview.cpp +++ b/src/quick/items/qquicktableview.cpp @@ -432,6 +432,10 @@ bool QQuickTableViewPrivate::EdgeRange::containsIndex(Qt::Edge edge, int index) QQuickTableViewPrivate::QQuickTableViewPrivate() : QQuickFlickablePrivate() { + QObject::connect(&columnWidths, &QQuickTableSectionSizeProvider::sizeChanged, + [this] { this->forceLayout();}); + QObject::connect(&rowHeights, &QQuickTableSectionSizeProvider::sizeChanged, + [this] { this->forceLayout();}); } QQuickTableViewPrivate::~QQuickTableViewPrivate() @@ -868,6 +872,9 @@ void QQuickTableViewPrivate::syncLoadedTableRectFromLoadedTable() void QQuickTableViewPrivate::forceLayout() { + if (loadedItems.isEmpty()) + return; + clearEdgeSizeCache(); RebuildOptions rebuildOptions = RebuildOption::LayoutOnly; @@ -1277,6 +1284,10 @@ qreal QQuickTableViewPrivate::getColumnWidth(int column) if (syncHorizontally) return syncView->d_func()->getColumnWidth(column); + auto cw = columnWidths.size(column); + if (cw >= 0) + return cw; + if (columnWidthProvider.isUndefined()) return noExplicitColumnWidth; @@ -1314,6 +1325,10 @@ qreal QQuickTableViewPrivate::getRowHeight(int row) if (syncVertically) return syncView->d_func()->getRowHeight(row); + auto rh = rowHeights.size(row); + if (rh >= 0) + return rh; + if (rowHeightProvider.isUndefined()) return noExplicitRowHeight; |