diff options
author | Richard Moe Gustavsen <richard.gustavsen@qt.io> | 2018-10-15 14:35:15 +0200 |
---|---|---|
committer | Richard Moe Gustavsen <richard.gustavsen@qt.io> | 2018-10-17 10:59:36 +0000 |
commit | d973907f6e4aae492dfad3eaad6827ffdc49962b (patch) | |
tree | c32a0132143f87d703d07dda2e0361ebefb0a282 /src/quick/items/qquicktableview.cpp | |
parent | b09bc0c0ebd8ff35ab5e77b21bd1fdd590347488 (diff) |
TableView: connect to 'layoutChanged' signal from the model
Ensure we rebuild the table when the model emits 'layoutChanged'.
Fixes: QTBUG-71140
Change-Id: I70dac897830bf5a12ae6987920e388743fd358a1
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick/items/qquicktableview.cpp')
-rw-r--r-- | src/quick/items/qquicktableview.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/quick/items/qquicktableview.cpp b/src/quick/items/qquicktableview.cpp index 68d55d98ea..44c16e2d7e 100644 --- a/src/quick/items/qquicktableview.cpp +++ b/src/quick/items/qquicktableview.cpp @@ -1664,6 +1664,7 @@ void QQuickTableViewPrivate::connectToModel() connect(aim, &QAbstractItemModel::columnsInserted, this, &QQuickTableViewPrivate::columnsInsertedCallback); connect(aim, &QAbstractItemModel::columnsRemoved, this, &QQuickTableViewPrivate::columnsRemovedCallback); connect(aim, &QAbstractItemModel::modelReset, this, &QQuickTableViewPrivate::modelResetCallback); + connect(aim, &QAbstractItemModel::layoutChanged, this, &QQuickTableViewPrivate::layoutChangedCallback); } else { QObjectPrivate::connect(model, &QQmlInstanceModel::modelUpdated, this, &QQuickTableViewPrivate::modelUpdated); } @@ -1689,6 +1690,7 @@ void QQuickTableViewPrivate::disconnectFromModel() disconnect(aim, &QAbstractItemModel::columnsInserted, this, &QQuickTableViewPrivate::columnsInsertedCallback); disconnect(aim, &QAbstractItemModel::columnsRemoved, this, &QQuickTableViewPrivate::columnsRemovedCallback); disconnect(aim, &QAbstractItemModel::modelReset, this, &QQuickTableViewPrivate::modelResetCallback); + disconnect(aim, &QAbstractItemModel::layoutChanged, this, &QQuickTableViewPrivate::layoutChangedCallback); } else { QObjectPrivate::disconnect(model, &QQmlInstanceModel::modelUpdated, this, &QQuickTableViewPrivate::modelUpdated); } @@ -1751,6 +1753,14 @@ void QQuickTableViewPrivate::columnsRemovedCallback(const QModelIndex &parent, i scheduleRebuildTable(RebuildOption::ViewportOnly); } +void QQuickTableViewPrivate::layoutChangedCallback(const QList<QPersistentModelIndex> &parents, QAbstractItemModel::LayoutChangeHint hint) +{ + Q_UNUSED(parents); + Q_UNUSED(hint); + + scheduleRebuildTable(RebuildOption::ViewportOnly); +} + void QQuickTableViewPrivate::modelResetCallback() { scheduleRebuildTable(RebuildOption::All); |