This commit is contained in:
2026-04-04 00:09:02 +08:00
commit 38e896363e
117 changed files with 119311 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
package main
import (
"fmt"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func createNetworkTab(server outputStruct) *container.AppTabs {
etcHostsList := widget.NewList(
func() int {
return len(server.NetworkConfig.EtcHosts)
},
func() fyne.CanvasObject {
return container.NewHBox(
widget.NewLabel("etc hosts"),
)
},
func(id widget.ListItemID, obj fyne.CanvasObject) {
hbox := obj.(*fyne.Container)
line := server.NetworkConfig.EtcHosts[id]
lineLabel := hbox.Objects[0].(*widget.Label)
lineLabel.SetText(line)
},
)
netInterfacesList := widget.NewList(
//TODO тут всё может упасть. В NetInterfaces лежит структура, в которой есть список ip адресов
// обычно их не очень много, но в крайних случаях их может быть 100500 на сетевом интерфейсе
// и гуй этому не обрадуется. Пока фигачим всё одной строкой
func() int {
return len(server.NetworkConfig.NetInterfaces)
},
func() fyne.CanvasObject {
return container.NewHBox(
widget.NewLabel("интерфейс"),
)
},
func(id widget.ListItemID, obj fyne.CanvasObject) {
hbox := obj.(*fyne.Container)
iface := server.NetworkConfig.NetInterfaces[id]
ifaceLabel := hbox.Objects[0].(*widget.Label)
ifaceLabel.SetText(fmt.Sprintf("%s, флаги: %s, мак: %s, ip: %s, index: %s, MTU: %s", iface.Device, iface.Flags, iface.HwAddr, iface.IpAddr, iface.Index, iface.MTU))
},
)
networkManagerConnList := widget.NewList(
func() int {
return len(server.NetworkConfig.NetworkManagerConn)
},
func() fyne.CanvasObject {
return container.NewHBox(
widget.NewLabel("соединение"),
)
},
func(id widget.ListItemID, obj fyne.CanvasObject) {
hbox := obj.(*fyne.Container)
conn := server.NetworkConfig.NetworkManagerConn[id]
connLabel := hbox.Objects[0].(*widget.Label)
connLabel.SetText(conn)
},
)
networkAppTabs := container.NewAppTabs()
networkAppTabs.Append(container.NewTabItem("etc/hosts", container.NewScroll(etcHostsList)))
networkAppTabs.Append(container.NewTabItem("Список сетевых интерфейсов", container.NewScroll(netInterfacesList)))
networkAppTabs.Append(container.NewTabItem("nmcli c s", container.NewScroll(networkManagerConnList)))
networkAppTabs.Append(container.NewTabItem("NetworkManager", widget.NewLabel(fmt.Sprintf("Включен: %s", server.NetworkConfig.NetworkManager))))
networkAppTabs.Append(container.NewTabItem("Networking", widget.NewLabel(fmt.Sprintf("Включен: %s", server.NetworkConfig.Networking))))
return networkAppTabs
}