diff options
author | Mitch Curtis <mitch.curtis@qt.io> | 2018-07-12 14:38:32 +0200 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2018-07-17 18:03:20 +0000 |
commit | e792c08ef2bb4d4676df2fe7cc4537ea993d07d2 (patch) | |
tree | 5291ba3613758ac0e12d303aafb6214cbbb8d99e /src | |
parent | 197c22be541e18b3e8db0d259d4a3e7be3030bb9 (diff) |
TableView: invalidate table when model is reset
Signals like rowsInserted() were already accounted for in
QQuickTableViewPrivate::connectToModel(), but modelReset() was not.
Change-Id: I6b8248d745d507d4ea846e9bee717182915792b3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquicktableview.cpp | 7 | ||||
-rw-r--r-- | src/quick/items/qquicktableview_p_p.h | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/quick/items/qquicktableview.cpp b/src/quick/items/qquicktableview.cpp index 92f45cd151..4165b52381 100644 --- a/src/quick/items/qquicktableview.cpp +++ b/src/quick/items/qquicktableview.cpp @@ -1229,6 +1229,7 @@ void QQuickTableViewPrivate::connectToModel() connect(aim, &QAbstractItemModel::rowsRemoved, this, &QQuickTableViewPrivate::rowsRemovedCallback); connect(aim, &QAbstractItemModel::columnsInserted, this, &QQuickTableViewPrivate::columnsInsertedCallback); connect(aim, &QAbstractItemModel::columnsRemoved, this, &QQuickTableViewPrivate::columnsRemovedCallback); + connect(aim, &QAbstractItemModel::modelReset, this, &QQuickTableViewPrivate::modelResetCallback); } else { QObjectPrivate::connect(model, &QQmlInstanceModel::modelUpdated, this, &QQuickTableViewPrivate::modelUpdated); } @@ -1247,6 +1248,7 @@ void QQuickTableViewPrivate::disconnectFromModel() disconnect(aim, &QAbstractItemModel::rowsRemoved, this, &QQuickTableViewPrivate::rowsRemovedCallback); disconnect(aim, &QAbstractItemModel::columnsInserted, this, &QQuickTableViewPrivate::columnsInsertedCallback); disconnect(aim, &QAbstractItemModel::columnsRemoved, this, &QQuickTableViewPrivate::columnsRemovedCallback); + disconnect(aim, &QAbstractItemModel::modelReset, this, &QQuickTableViewPrivate::modelResetCallback); } else { QObjectPrivate::disconnect(model, &QQmlInstanceModel::modelUpdated, this, &QQuickTableViewPrivate::modelUpdated); } @@ -1301,6 +1303,11 @@ void QQuickTableViewPrivate::columnsRemovedCallback(const QModelIndex &parent, i invalidateTable(); } +void QQuickTableViewPrivate::modelResetCallback() +{ + invalidateTable(); +} + QQuickTableView::QQuickTableView(QQuickItem *parent) : QQuickFlickable(*(new QQuickTableViewPrivate), parent) { diff --git a/src/quick/items/qquicktableview_p_p.h b/src/quick/items/qquicktableview_p_p.h index 4dcf421183..b11afb1e5a 100644 --- a/src/quick/items/qquicktableview_p_p.h +++ b/src/quick/items/qquicktableview_p_p.h @@ -324,6 +324,7 @@ public: void rowsRemovedCallback(const QModelIndex &parent, int begin, int end); void columnsInsertedCallback(const QModelIndex &parent, int begin, int end); void columnsRemovedCallback(const QModelIndex &parent, int begin, int end); + void modelResetCallback(); inline QString tableLayoutToString() const; void dumpTable() const; |