AntiClipSettings/qml/NetworkSettingPopup.qml

148 lines
4.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
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
Label {
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenterOffset: -10
text: "设备IP"
width: 100
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
Label {
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenterOffset: -10
width: 100
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
}
}
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: "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
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: {
if (dhcpMode.checked || (staticMode.checked && ipInput.valid
&& netmaskInput.valid
&& gatewayInput.valid
&& dnsInput.valid)) {
App.updateNetworkInfomation(dhcpMode.checked,
ipInput.text,
netmaskInput.text,
2024-08-22 10:48:28 +08:00
gatewayInput.text,dnsInput.text)
2024-08-16 16:24:15 +08:00
networkPopup.close()
2024-08-21 16:03:49 +08:00
} else {
showMessageDialog(2, "网络设置", "请输入合法参数地址!")
2024-08-16 16:24:15 +08:00
}
}
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: {
ipInput.reset()
netmaskInput.reset()
gatewayInput.reset()
dnsInput.reset()
}
2024-08-16 16:24:15 +08:00
}