Files

82 lines
2.1 KiB
QML

import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
Row {
id: shareTargetsRow
spacing: 10
property bool useDummyTargets: false
property bool interactionLocked: false
property var activeTransferId: 0
ListModel {
id: dummyTargets
ListElement {
targetId: 1
deviceName: "Lasan's Pixel"
type: 1
}
ListElement {
targetId: 2
deviceName: "Work Laptop"
type: 2
}
ListElement {
targetId: 3
deviceName: "Kitchen Tablet"
type: 3
}
ListElement {
targetId: 4
deviceName: "A55"
type: 1
}
ListElement {
targetId: 5
deviceName: "Long Device Name For Wrapping"
type: 2
}
}
Repeater {
model: shareTargetsRow.useDummyTargets ? dummyTargets : backend.targets
Rectangle {
width: 100
height: 130
color: "transparent"
opacity: !shareTargetsRow.interactionLocked
|| model.targetId == shareTargetsRow.activeTransferId ? 1 : 0.32
Behavior on opacity {
NumberAnimation {
duration: 180
easing.type: Easing.OutQuad
}
}
ColumnLayout {
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
spacing: 5
ShareTarget {
shareTargetId: model.targetId
deviceName: model.deviceName
interactionEnabled: !shareTargetsRow.interactionLocked
iconSource: {
if (model.type === 2)
return "qrc:icons/laptop.svg"
if (model.type === 3)
return "qrc:icons/tablet.svg"
return "qrc:icons/smartphone.svg"
}
}
}
}
}
}