121 lines
3.5 KiB
QML
121 lines
3.5 KiB
QML
|
import QtQuick 2.14
|
||
|
import QtQuick.Controls 2.14
|
||
|
import QtQuick.Layouts 1.14
|
||
|
|
||
|
Item {
|
||
|
id: root
|
||
|
|
||
|
property alias model: listView.model
|
||
|
|
||
|
implicitWidth: layout.implicitWidth
|
||
|
implicitHeight: layout.implicitHeight
|
||
|
|
||
|
signal removeClicked(int index)
|
||
|
signal removeAllClicked
|
||
|
signal addClicked
|
||
|
|
||
|
ColumnLayout {
|
||
|
id: layout
|
||
|
|
||
|
anchors.fill: parent
|
||
|
|
||
|
ListView {
|
||
|
id: listView
|
||
|
|
||
|
Layout.fillWidth: true
|
||
|
Layout.fillHeight: true
|
||
|
|
||
|
clip: true
|
||
|
spacing: 32
|
||
|
|
||
|
delegate: ColumnLayout {
|
||
|
id: delegate
|
||
|
|
||
|
spacing: 0
|
||
|
width: ListView.view.width
|
||
|
|
||
|
Row {
|
||
|
Label {
|
||
|
width: delegate.width / 2
|
||
|
anchors.verticalCenter: parent.verticalCenter
|
||
|
text: "displayName:\t"
|
||
|
}
|
||
|
TextField {
|
||
|
width: delegate.width / 2
|
||
|
text: model.displayName
|
||
|
onTextChanged: model.displayName = text
|
||
|
}
|
||
|
}
|
||
|
Row {
|
||
|
Label {
|
||
|
width: delegate.width / 2
|
||
|
anchors.verticalCenter: parent.verticalCenter
|
||
|
text: "localNickname:\t"
|
||
|
}
|
||
|
TextField {
|
||
|
width: delegate.width / 2
|
||
|
text: model.localNickname
|
||
|
onTextChanged: model.localNickname = text
|
||
|
}
|
||
|
}
|
||
|
Row {
|
||
|
Label {
|
||
|
width: delegate.width / 2
|
||
|
anchors.verticalCenter: parent.verticalCenter
|
||
|
text: "isVerified:\t"
|
||
|
}
|
||
|
Switch {
|
||
|
width: delegate.width / 2
|
||
|
checked: model.isVerified
|
||
|
onCheckedChanged: model.isVerified = checked
|
||
|
}
|
||
|
}
|
||
|
Row {
|
||
|
Label {
|
||
|
width: delegate.width / 2
|
||
|
anchors.verticalCenter: parent.verticalCenter
|
||
|
text: "isUntrustworthy:\t"
|
||
|
}
|
||
|
Switch {
|
||
|
width: delegate.width / 2
|
||
|
checked: model.isUntrustworthy
|
||
|
onCheckedChanged: model.isUntrustworthy = checked
|
||
|
}
|
||
|
}
|
||
|
Row {
|
||
|
Label {
|
||
|
width: delegate.width / 2
|
||
|
anchors.verticalCenter: parent.verticalCenter
|
||
|
text: "onlineStatus:\t"
|
||
|
}
|
||
|
SpinBox {
|
||
|
width: delegate.width / 2
|
||
|
from: 0
|
||
|
to: 1
|
||
|
value: model.onlineStatus
|
||
|
onValueChanged: model.onlineStatus = value
|
||
|
}
|
||
|
}
|
||
|
Button {
|
||
|
text: "remove"
|
||
|
onClicked: root.removeClicked(index)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ScrollBar.vertical: ScrollBar {}
|
||
|
}
|
||
|
|
||
|
Button {
|
||
|
Layout.fillWidth: true
|
||
|
text: "remove all"
|
||
|
onClicked: root.removeAllClicked()
|
||
|
}
|
||
|
|
||
|
Button {
|
||
|
Layout.fillWidth: true
|
||
|
text: "add"
|
||
|
onClicked: root.addClicked()
|
||
|
}
|
||
|
}
|
||
|
}
|