summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlberto Mardegan <mardy@users.sourceforge.net>2020-02-29 19:08:44 +0300
committerAlberto Mardegan <mardy@users.sourceforge.net>2020-03-10 14:50:02 +0300
commitb26bfb18616e2a4baf33f9f1a2c147e3f5512de6 (patch)
tree6094e51f0a87ad52199b6ded1500f4bc3165a97b /src
parent59d15ec7f1dc19634f47d2aa6fa17f749fa54cd4 (diff)
TreeView: update currentIndex on model changes
The previous binding was not getting re-evaluated when the model was being reset or when rows were been inserted or removed. Here we use a counter variable, whose value change will force the evaluation of the binding. Fixes: QTBUG-53097 Change-Id: I76afebbda78ab477cf65631337a8bad51ca5428d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/controls/TreeView.qml8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/controls/TreeView.qml b/src/controls/TreeView.qml
index 6a38acff5..2bedb9e64 100644
--- a/src/controls/TreeView.qml
+++ b/src/controls/TreeView.qml
@@ -49,7 +49,7 @@ BasicTableView {
property var model: null
property alias rootIndex: modelAdaptor.rootIndex
- readonly property var currentIndex: modelAdaptor.mapRowToModelIndex(__currentRow)
+ readonly property var currentIndex: modelAdaptor.updateCount, modelAdaptor.mapRowToModelIndex(__currentRow)
property ItemSelectionModel selection: null
signal activated(var index)
@@ -96,6 +96,12 @@ BasicTableView {
id: modelAdaptor
model: root.model
+ // Hack to force re-evaluation of the currentIndex binding
+ property int updateCount: 0
+ onModelReset: updateCount++
+ onRowsInserted: updateCount++
+ onRowsRemoved: updateCount++
+
onExpanded: root.expanded(index)
onCollapsed: root.collapsed(index)
}