49 lines
1.5 KiB
QML
49 lines
1.5 KiB
QML
import QtQuick
|
|
import QtQml.Models
|
|
|
|
Item {
|
|
property var visualIndexBeforeMove: [-1, -1, -1]
|
|
property var visualIndexAfterMove: [-1, -1, -1]
|
|
|
|
DelegateModel {
|
|
id: visualModel
|
|
model: ListModel {
|
|
ListElement { name: "Apple (id 0)" }
|
|
ListElement { name: "Orange (id 1)" }
|
|
ListElement { name: "Banana (id 2)" }
|
|
}
|
|
|
|
delegate: DropArea {
|
|
id: delegateRoot
|
|
|
|
required property string name
|
|
// property that was not updated correctly in QTBUG-104047
|
|
readonly property int visualIndex: DelegateModel.itemsIndex
|
|
Rectangle {
|
|
id: child
|
|
|
|
readonly property int visualIndex: delegateRoot.visualIndex
|
|
}
|
|
}
|
|
}
|
|
|
|
Repeater {
|
|
id: root
|
|
model: visualModel
|
|
}
|
|
|
|
Component.onCompleted: {
|
|
visualIndexBeforeMove[0] = root.itemAt(0).visualIndex
|
|
visualIndexBeforeMove[1] = root.itemAt(1).visualIndex
|
|
visualIndexBeforeMove[2] = root.itemAt(2).visualIndex
|
|
visualModel.items.move(2, 0)
|
|
// test that bindings on the QQmlDelegateModelAttached are captured properly:
|
|
// after the move, the visualIndex property should be updated to the new value,
|
|
// which in this case is also the index used in itemAt()
|
|
visualIndexAfterMove[0] = root.itemAt(0).visualIndex
|
|
visualIndexAfterMove[1] = root.itemAt(1).visualIndex
|
|
visualIndexAfterMove[2] = root.itemAt(2).visualIndex
|
|
}
|
|
|
|
}
|