aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@qt.io>2018-07-12 14:38:32 +0200
committerMitch Curtis <mitch.curtis@qt.io>2018-07-17 18:03:20 +0000
commite792c08ef2bb4d4676df2fe7cc4537ea993d07d2 (patch)
tree5291ba3613758ac0e12d303aafb6214cbbb8d99e /src
parent197c22be541e18b3e8db0d259d4a3e7be3030bb9 (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.cpp7
-rw-r--r--src/quick/items/qquicktableview_p_p.h1
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;