From 10cee8f46ef72718db19828d9895300f12550f5a Mon Sep 17 00:00:00 2001 From: Maycon Santos Date: Mon, 24 Jun 2024 16:18:00 +0200 Subject: [PATCH] Use selector to display dns routes in GUI (#2185) Use select widget for dns routes on GUI --- client/ui/route.go | 44 +++++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/client/ui/route.go b/client/ui/route.go index 70f72cf9b6..e7fc6712d6 100644 --- a/client/ui/route.go +++ b/client/ui/route.go @@ -80,25 +80,39 @@ func (s *serviceClient) updateRoutes(grid *fyne.Container) { grid.Add(checkBox) network := r.GetNetwork() domains := r.GetDomains() - if len(domains) > 0 { - network = strings.Join(domains, ", ") + + if len(domains) == 0 { + grid.Add(widget.NewLabel(network)) + grid.Add(widget.NewLabel("")) + continue } - grid.Add(widget.NewLabel(network)) - - if len(domains) > 0 { - var resolvedIPsList []string - for _, domain := range r.GetDomains() { - if ipList, exists := r.GetResolvedIPs()[domain]; exists { - resolvedIPsList = append(resolvedIPsList, fmt.Sprintf("%s: %s", domain, strings.Join(ipList.GetIps(), ", "))) - } + + // our selectors are only for display + noopFunc := func(_ string) { + // do nothing + } + + domainsSelector := widget.NewSelect(domains, noopFunc) + domainsSelector.Selected = domains[0] + grid.Add(domainsSelector) + + var resolvedIPsList []string + for _, domain := range domains { + if ipList, exists := r.GetResolvedIPs()[domain]; exists { + resolvedIPsList = append(resolvedIPsList, fmt.Sprintf("%s: %s", domain, strings.Join(ipList.GetIps(), ", "))) } - // TODO: limit width - resolvedIPsLabel := widget.NewLabel(strings.Join(resolvedIPsList, ", ")) - grid.Add(resolvedIPsLabel) - } else { - grid.Add(widget.NewLabel("")) + } + if len(resolvedIPsList) == 0 { + grid.Add(widget.NewLabel("")) + continue } + + // TODO: limit width within the selector display + resolvedIPsSelector := widget.NewSelect(resolvedIPsList, noopFunc) + resolvedIPsSelector.Selected = resolvedIPsList[0] + resolvedIPsSelector.Resize(fyne.NewSize(100, 100)) + grid.Add(resolvedIPsSelector) } s.wRoutes.Content().Refresh()