|
|
|
|
@ -233,8 +233,20 @@ Item {
|
|
|
|
|
id: trayModel
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
moveDisplaced: Transition {
|
|
|
|
|
NumberAnimation {
|
|
|
|
|
properties: "x, y"
|
|
|
|
|
duration: 200
|
|
|
|
|
easing.type: Easing.InOutQuad
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
delegate: StandardItem {
|
|
|
|
|
id: _trayItem
|
|
|
|
|
|
|
|
|
|
property bool darkMode: rootItem.darkMode
|
|
|
|
|
property int dragItemIndex: index
|
|
|
|
|
property bool dragStarted: false
|
|
|
|
|
|
|
|
|
|
width: trayView.itemWidth
|
|
|
|
|
height: ListView.view.height
|
|
|
|
|
@ -242,6 +254,46 @@ Item {
|
|
|
|
|
|
|
|
|
|
onDarkModeChanged: updateTimer.restart()
|
|
|
|
|
|
|
|
|
|
Drag.active: _trayItem.mouseArea.drag.active
|
|
|
|
|
Drag.dragType: Drag.Automatic
|
|
|
|
|
Drag.supportedActions: Qt.MoveAction
|
|
|
|
|
Drag.hotSpot.x: iconItem.width / 2
|
|
|
|
|
Drag.hotSpot.y: iconItem.height / 2
|
|
|
|
|
|
|
|
|
|
Drag.onDragStarted: {
|
|
|
|
|
dragStarted = true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Drag.onDragFinished: {
|
|
|
|
|
dragStarted = false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onPositionChanged: {
|
|
|
|
|
if (_trayItem.mouseArea.pressed) {
|
|
|
|
|
_trayItem.mouseArea.drag.target = iconItem
|
|
|
|
|
iconItem.grabToImage(function(result) {
|
|
|
|
|
_trayItem.Drag.imageSource = result.url
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
_trayItem.mouseArea.drag.target = null
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onReleased: {
|
|
|
|
|
_trayItem.mouseArea.drag.target = null
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DropArea {
|
|
|
|
|
anchors.fill: parent
|
|
|
|
|
enabled: true
|
|
|
|
|
|
|
|
|
|
onEntered: {
|
|
|
|
|
if (drag.source)
|
|
|
|
|
trayModel.move(drag.source.dragItemIndex,
|
|
|
|
|
_trayItem.dragItemIndex)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Timer {
|
|
|
|
|
id: updateTimer
|
|
|
|
|
interval: 10
|
|
|
|
|
@ -256,6 +308,7 @@ Item {
|
|
|
|
|
source: model.iconName ? model.iconName : model.icon
|
|
|
|
|
antialiasing: true
|
|
|
|
|
smooth: false
|
|
|
|
|
visible: !dragStarted
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onClicked: trayModel.leftButtonClick(model.id)
|
|
|
|
|
|