AntiClipSettings/qml/NetworkSettingPopup.qml

175 lines
5.1 KiB
QML
Raw Normal View History

2024-08-16 16:24:15 +08:00
import QtQuick
import QtQuick.Controls
2024-08-21 16:03:49 +08:00
import QtQuick.Layouts
2024-08-16 16:24:15 +08:00
import AntiClipSettings
Popup {
id: root
parent: Overlay.overlay
anchors.centerIn: Overlay.overlay
2024-08-21 16:03:49 +08:00
modal: true
closePolicy: Popup.CloseOnEscap | Popup.NoAutoClose
2024-08-21 16:03:49 +08:00
property int inputHeight: 50
background: Rectangle {
radius: 8
}
contentItem: ColumnLayout {
anchors.centerIn: parent
2024-08-16 16:24:15 +08:00
2024-08-21 16:03:49 +08:00
Row {
2024-08-16 16:24:15 +08:00
spacing: 10
2024-08-21 16:03:49 +08:00
Label {
text: "模式"
width: 100
anchors.verticalCenter: parent.verticalCenter
2024-08-16 16:24:15 +08:00
}
2024-08-21 16:03:49 +08:00
RadioButton {
id: dhcpMode
text: "DHCP"
checked: App.currentNetworkInfomation.dhcp
}
2024-08-16 16:24:15 +08:00
2024-08-21 16:03:49 +08:00
RadioButton {
id: staticMode
text: "静态IP"
2024-08-22 10:48:28 +08:00
checked: !App.currentNetworkInfomation.dhcp
2024-08-21 16:03:49 +08:00
}
}
2024-08-16 16:24:15 +08:00
2024-08-21 16:03:49 +08:00
Row {
spacing: 5
visible: staticMode.checked
Row {
2024-08-21 16:03:49 +08:00
width: 100
anchors.verticalCenterOffset: -10
anchors.verticalCenter: parent.verticalCenter
Label {
text: "设备IP"
}
Label {
color: "red"
text: "*"
}
2024-08-16 16:24:15 +08:00
}
2024-08-21 16:03:49 +08:00
IpTextField {
id: ipInput
height: inputHeight
width: 350
text: App.currentNetworkInfomation.ip
}
}
2024-08-16 16:24:15 +08:00
2024-08-21 16:03:49 +08:00
Row {
spacing: 5
visible: staticMode.checked
Row {
2024-08-21 16:03:49 +08:00
width: 100
anchors.verticalCenterOffset: -10
anchors.verticalCenter: parent.verticalCenter
Label {
text: "子网掩码"
}
Label {
color: "red"
text: "*"
}
2024-08-16 16:24:15 +08:00
}
2024-08-21 16:03:49 +08:00
IpTextField {
id: netmaskInput
width: 350
height: inputHeight
text: App.currentNetworkInfomation.netmask
}
}
2024-08-16 16:24:15 +08:00
2024-08-21 16:03:49 +08:00
Row {
spacing: 5
visible: staticMode.checked
Label {
anchors.verticalCenter: parent.verticalCenter
text: "设备网关"
anchors.verticalCenterOffset: -10
width: 100
}
2024-08-16 16:24:15 +08:00
2024-08-21 16:03:49 +08:00
IpTextField {
id: gatewayInput
width: 350
height: inputHeight
text: App.currentNetworkInfomation.gateway
canEmpty: true
2024-08-21 16:03:49 +08:00
}
}
2024-08-16 16:24:15 +08:00
2024-08-21 16:03:49 +08:00
Row {
spacing: 5
visible: false // staticMode.checked 暂时不用设置
2024-08-21 16:03:49 +08:00
Label {
anchors.verticalCenter: parent.verticalCenter
text: "DNS服务器"
anchors.verticalCenterOffset: -10
width: 100
2024-08-16 16:24:15 +08:00
}
2024-08-21 16:03:49 +08:00
IpTextField {
id: dnsInput
width: 350
height: inputHeight
2024-08-22 10:48:28 +08:00
text: App.currentNetworkInfomation.dns
canEmpty: true
2024-08-21 16:03:49 +08:00
}
}
2024-08-16 16:24:15 +08:00
2024-08-21 16:03:49 +08:00
Row {
Layout.rightMargin: 20
Layout.alignment: Qt.AlignRight
spacing: 20
Button {
text: "保存"
onClicked: {
ipInput.validate()
netmaskInput.validate()
gatewayInput.validate()
dnsInput.validate()
2024-08-21 16:03:49 +08:00
if (dhcpMode.checked || (staticMode.checked && ipInput.valid
&& netmaskInput.valid
&& gatewayInput.valid
&& dnsInput.valid)) {
App.updateNetworkInfomation(dhcpMode.checked,
ipInput.text,
netmaskInput.text,
gatewayInput.text,
dnsInput.text)
2024-08-16 16:24:15 +08:00
networkPopup.close()
}
}
2024-08-21 16:03:49 +08:00
}
2024-08-16 16:24:15 +08:00
2024-08-21 16:03:49 +08:00
Button {
text: "取消"
onClicked: root.close()
2024-08-16 16:24:15 +08:00
}
}
}
2024-08-22 10:48:28 +08:00
onVisibleChanged: {
if (visible) {
ipInput.reset()
netmaskInput.reset()
gatewayInput.reset()
dnsInput.reset()
dhcpMode.checked = App.currentNetworkInfomation.dhcp
staticMode.checked = !App.currentNetworkInfomation.dhcp
ipInput.text = App.currentNetworkInfomation.ip
netmaskInput.text = App.currentNetworkInfomation.netmask
gatewayInput.text = App.currentNetworkInfomation.gateway
dnsInput.text = App.currentNetworkInfomation.dns
}
2024-08-22 10:48:28 +08:00
}
2024-08-16 16:24:15 +08:00
}