174 lines
5.1 KiB
QML
174 lines
5.1 KiB
QML
import QtQuick 2.12
|
|
import QtQuick.Controls 2.12
|
|
import "./"
|
|
import "../../Controls"
|
|
import "../../Config"
|
|
|
|
Drawer {
|
|
id: root
|
|
signal containerSelected(int id)
|
|
property alias selectedIndex: tb.currentIndex
|
|
property var filter: function (item){ return item.is_vpn_role }
|
|
|
|
z: -3
|
|
|
|
y: 0
|
|
x: 0
|
|
edge: Qt.RightEdge
|
|
width: parent.width * 0.85
|
|
height: parent.height
|
|
|
|
modal: true
|
|
interactive: true
|
|
|
|
Flickable {
|
|
clip: true
|
|
anchors.fill: parent
|
|
contentHeight: col.height
|
|
|
|
Column {
|
|
id: col
|
|
anchors {
|
|
left: parent.left;
|
|
right: parent.right;
|
|
}
|
|
topPadding: 20
|
|
spacing: 10
|
|
|
|
Caption {
|
|
id: cap1
|
|
text: qsTr("VPN containers")
|
|
font.pixelSize: 20
|
|
|
|
}
|
|
|
|
ListView {
|
|
id: tb
|
|
x: 10
|
|
width: parent.width - 40
|
|
height: contentItem.height
|
|
|
|
spacing: 1
|
|
clip: true
|
|
interactive: false
|
|
model: UiLogic.containersModel
|
|
|
|
delegate: Item {
|
|
required property int index
|
|
|
|
required property string name_role
|
|
required property string desc_role
|
|
required property bool is_vpn_role
|
|
required property bool is_other_role
|
|
required property bool is_installed_role
|
|
|
|
visible: filter(this)
|
|
implicitWidth: 170 * 2
|
|
implicitHeight: 30
|
|
Item {
|
|
width: parent.width
|
|
height: 30
|
|
anchors.left: parent.left
|
|
id: c1
|
|
Rectangle {
|
|
anchors.top: parent.top
|
|
width: parent.width
|
|
height: 1
|
|
color: "lightgray"
|
|
visible: index !== tb.currentIndex
|
|
}
|
|
Rectangle {
|
|
anchors.fill: parent
|
|
color: "#63B4FB"
|
|
visible: index === tb.currentIndex
|
|
|
|
}
|
|
Text {
|
|
id: text_name
|
|
text: name_role
|
|
font.pixelSize: 16
|
|
anchors.fill: parent
|
|
leftPadding: 10
|
|
verticalAlignment: Text.AlignVCenter
|
|
wrapMode: Text.WordWrap
|
|
}
|
|
}
|
|
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
onClicked: {
|
|
tb.currentIndex = index
|
|
containerSelected(index)
|
|
root.close()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// Caption {
|
|
// id: cap2
|
|
// text: qsTr("Other containers")
|
|
// }
|
|
|
|
// ListView {
|
|
// id: tb_other
|
|
// x: 10
|
|
// //y: 20
|
|
// width: parent.width - 40
|
|
// height: contentItem.height
|
|
|
|
// spacing: 1
|
|
// clip: true
|
|
// interactive: false
|
|
// property int currentRow: -1
|
|
// model: UiLogic.containersModel
|
|
|
|
// delegate: Item {
|
|
// implicitWidth: 170 * 2
|
|
// implicitHeight: 30
|
|
// Item {
|
|
// width: parent.width
|
|
// height: 30
|
|
// anchors.left: parent.left
|
|
// id: c1_other
|
|
// Rectangle {
|
|
// anchors.top: parent.top
|
|
// width: parent.width
|
|
// height: 1
|
|
// color: "lightgray"
|
|
// visible: index !== tb_other.currentRow
|
|
// }
|
|
// Rectangle {
|
|
// anchors.fill: parent
|
|
// color: "#63B4FB"
|
|
// visible: index === tb_other.currentRow
|
|
|
|
// }
|
|
// Text {
|
|
// id: text_name_other
|
|
// text: name
|
|
// font.pixelSize: 16
|
|
// anchors.fill: parent
|
|
// leftPadding: 10
|
|
// verticalAlignment: Text.AlignVCenter
|
|
// wrapMode: Text.WordWrap
|
|
// }
|
|
// }
|
|
|
|
// MouseArea {
|
|
// anchors.fill: parent
|
|
// onClicked: {
|
|
// tb_other.currentRow = index
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|