| import QtQuick 2.12 |
| |
| Grid { |
| id: root |
| objectName: "root" |
| property bool reparentOnDrag: true |
| width: 200; height: 200 |
| columns: 3 |
| spacing: 10 |
| Repeater { |
| model: 9 |
| anchors.fill: parent |
| Item { |
| id: gridPlaceholder |
| objectName: "gridPlaceholder" + index |
| width: 60 |
| height: 60 |
| Rectangle { |
| id: icon |
| border.color: "black" |
| color: "beige" |
| radius: 3 |
| width: 60 |
| height: 60 |
| onParentChanged :console.log("parent " + parent) |
| anchors { |
| horizontalCenter: parent.horizontalCenter |
| verticalCenter: parent.verticalCenter |
| } |
| DragHandler { |
| id: dragArea |
| } |
| Text { |
| anchors.centerIn: parent |
| text: index + "@" + Math.round(icon.x) + "," + Math.round(icon.y) |
| font.pointSize: 8 |
| } |
| states: [ |
| State { |
| when: dragArea.dragging |
| AnchorChanges { |
| target: icon |
| anchors.horizontalCenter: undefined |
| anchors.verticalCenter: undefined |
| } |
| ParentChange { |
| target: root.reparentOnDrag ? icon : null |
| parent: root |
| } |
| PropertyChanges { |
| target: icon |
| color: "yellow" |
| } |
| } |
| ] |
| } |
| } |
| } |
| } |