2022-02-15 13:19:45 +00:00
|
|
|
import QtQuick 2.13
|
|
|
|
import QtQuick.Controls 2.13
|
|
|
|
import QtQuick.Layouts 1.3
|
|
|
|
import QtGraphicalEffects 1.0
|
|
|
|
|
|
|
|
import StatusQ.Core 0.1
|
|
|
|
import StatusQ.Core.Theme 0.1
|
|
|
|
import StatusQ.Components 0.1
|
|
|
|
import StatusQ.Controls 0.1
|
|
|
|
|
|
|
|
import utils 1.0
|
|
|
|
|
|
|
|
// TODO: replace with StatusModal
|
|
|
|
Popup {
|
|
|
|
id: popup
|
|
|
|
modal: false
|
|
|
|
width: 360
|
|
|
|
height: 432
|
2022-08-05 12:07:03 +00:00
|
|
|
|
|
|
|
horizontalPadding: 5
|
|
|
|
verticalPadding: 5
|
|
|
|
|
2022-02-17 09:15:37 +00:00
|
|
|
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
|
|
|
|
property var layer1Networks
|
|
|
|
property var layer2Networks
|
|
|
|
property var testNetworks
|
|
|
|
|
2022-02-15 13:19:45 +00:00
|
|
|
signal toggleNetwork(int chainId)
|
|
|
|
|
|
|
|
background: Rectangle {
|
|
|
|
radius: Style.current.radius
|
|
|
|
color: Style.current.background
|
|
|
|
border.color: Style.current.border
|
|
|
|
layer.enabled: true
|
|
|
|
layer.effect: DropShadow{
|
|
|
|
verticalOffset: 3
|
|
|
|
radius: 8
|
|
|
|
samples: 15
|
|
|
|
fast: true
|
|
|
|
cached: true
|
|
|
|
color: "#22000000"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-07-13 12:29:38 +00:00
|
|
|
contentItem: StatusScrollView {
|
2022-02-15 13:19:45 +00:00
|
|
|
id: scrollView
|
|
|
|
contentHeight: content.height
|
|
|
|
width: popup.width
|
|
|
|
height: popup.height
|
2022-08-05 12:07:03 +00:00
|
|
|
padding: 0
|
2022-02-15 13:19:45 +00:00
|
|
|
|
|
|
|
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
|
|
|
|
|
|
|
Column {
|
|
|
|
id: content
|
2022-07-20 11:15:05 +00:00
|
|
|
width: scrollView.availableWidth
|
2022-08-05 12:07:03 +00:00
|
|
|
spacing: 4
|
2022-02-15 13:19:45 +00:00
|
|
|
|
2022-02-17 09:15:37 +00:00
|
|
|
Repeater {
|
|
|
|
id: chainRepeater1
|
2022-08-08 10:07:29 +00:00
|
|
|
objectName: "chainRepeaterLayer1"
|
2022-02-17 09:15:37 +00:00
|
|
|
model: popup.layer1Networks
|
|
|
|
|
|
|
|
delegate: chainItem
|
|
|
|
}
|
|
|
|
|
2022-05-18 21:58:07 +00:00
|
|
|
StatusBaseText {
|
|
|
|
font.pixelSize: Style.current.primaryTextFontSize
|
|
|
|
color: Theme.palette.baseColor1
|
|
|
|
text: qsTr("Layer 2")
|
2022-08-05 12:07:03 +00:00
|
|
|
height: 40
|
|
|
|
leftPadding: 16
|
|
|
|
topPadding: 10
|
|
|
|
verticalAlignment: Text.AlignVCenter
|
|
|
|
|
2022-05-18 21:58:07 +00:00
|
|
|
visible: chainRepeater2.count > 0
|
|
|
|
}
|
|
|
|
|
2022-02-17 09:15:37 +00:00
|
|
|
Repeater {
|
|
|
|
id: chainRepeater2
|
|
|
|
model: popup.layer2Networks
|
|
|
|
|
|
|
|
delegate: chainItem
|
|
|
|
}
|
|
|
|
|
|
|
|
Repeater {
|
|
|
|
id: chainRepeater3
|
|
|
|
model: popup.testNetworks
|
|
|
|
|
|
|
|
delegate: chainItem
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Component {
|
|
|
|
id: chainItem
|
2022-05-18 21:58:07 +00:00
|
|
|
StatusListItem {
|
2022-08-05 12:07:03 +00:00
|
|
|
implicitHeight: 48
|
2022-05-18 21:58:07 +00:00
|
|
|
implicitWidth: scrollView.width
|
|
|
|
title: model.chainName
|
2022-08-05 12:07:03 +00:00
|
|
|
image.height: 24
|
|
|
|
image.width: 24
|
2022-08-08 10:07:29 +00:00
|
|
|
objectName: model.chainName
|
2022-07-13 14:32:06 +00:00
|
|
|
image.source: Style.svg(model.iconUrl)
|
2022-05-18 21:58:07 +00:00
|
|
|
onClicked: {
|
|
|
|
checkBox.checked = !checkBox.checked
|
2022-02-17 09:15:37 +00:00
|
|
|
}
|
2022-05-18 21:58:07 +00:00
|
|
|
components: [
|
|
|
|
StatusCheckBox {
|
|
|
|
id: checkBox
|
|
|
|
checked: model.isEnabled
|
|
|
|
onCheckedChanged: {
|
|
|
|
if (model.isEnabled !== checked) {
|
|
|
|
popup.toggleNetwork(model.chainId)
|
|
|
|
}
|
2022-02-15 13:19:45 +00:00
|
|
|
}
|
|
|
|
}
|
2022-05-18 21:58:07 +00:00
|
|
|
]
|
2022-02-15 13:19:45 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|