106 lines
2.6 KiB
QML
106 lines
2.6 KiB
QML
import QtQuick
|
|
import QtQuick.Controls
|
|
import QtQuick.Layouts
|
|
import QtQuick.Controls.Material
|
|
|
|
import org.electrum 1.0
|
|
|
|
Item {
|
|
property Amount capacity
|
|
property Amount localCapacity
|
|
property Amount remoteCapacity
|
|
property Amount canSend
|
|
property Amount canReceive
|
|
property bool frozenForSending: false
|
|
property bool frozenForReceiving: false
|
|
|
|
height: 10
|
|
implicitWidth: 100
|
|
|
|
function update() {
|
|
Qt.callLater(do_update)
|
|
}
|
|
|
|
function do_update() {
|
|
var cap = capacity.satsInt * 1000
|
|
var twocap = cap * 2
|
|
l1.width = width * (cap - localCapacity.msatsInt) / twocap
|
|
if (frozenForSending) {
|
|
l2.width = width * localCapacity.msatsInt / twocap
|
|
l3.width = 0
|
|
} else {
|
|
l2.width = width * (localCapacity.msatsInt - canSend.msatsInt) / twocap
|
|
l3.width = width * canSend.msatsInt / twocap
|
|
}
|
|
if (frozenForReceiving) {
|
|
r3.width = 0
|
|
r2.width = width * remoteCapacity.msatsInt / twocap
|
|
} else {
|
|
r3.width = width * canReceive.msatsInt / twocap
|
|
r2.width = width * (remoteCapacity.msatsInt - canReceive.msatsInt) / twocap
|
|
}
|
|
r1.width = width * (cap - remoteCapacity.msatsInt) / twocap
|
|
}
|
|
|
|
onWidthChanged: update()
|
|
onFrozenForSendingChanged: update()
|
|
onFrozenForReceivingChanged: update()
|
|
|
|
Connections {
|
|
target: localCapacity
|
|
function onMsatsIntChanged() { update() }
|
|
}
|
|
|
|
Connections {
|
|
target: remoteCapacity
|
|
function onMsatsIntChanged() { update() }
|
|
}
|
|
|
|
Connections {
|
|
target: canSend
|
|
function onMsatsIntChanged() { update() }
|
|
}
|
|
|
|
Connections {
|
|
target: canReceive
|
|
function onMsatsIntChanged() { update() }
|
|
}
|
|
|
|
Rectangle {
|
|
id: l1
|
|
x: 0
|
|
height: parent.height
|
|
color: 'gray'
|
|
}
|
|
Rectangle {
|
|
id: l2
|
|
anchors.left: l1.right
|
|
height: parent.height
|
|
color: constants.colorLightningLocalReserve
|
|
}
|
|
Rectangle {
|
|
id: l3
|
|
anchors.left: l2.right
|
|
height: parent.height
|
|
color: constants.colorLightningLocal
|
|
}
|
|
Rectangle {
|
|
id: r3
|
|
anchors.left: l3.right
|
|
height: parent.height
|
|
color: constants.colorLightningRemote
|
|
}
|
|
Rectangle {
|
|
id: r2
|
|
anchors.left: r3.right
|
|
height: parent.height
|
|
color: constants.colorLightningRemoteReserve
|
|
}
|
|
Rectangle {
|
|
id: r1
|
|
anchors.left: r2.right
|
|
height: parent.height
|
|
color: 'gray'
|
|
}
|
|
}
|