multi servers part 3: switch servers menu action + some refactoring

This commit is contained in:
Drew Weymouth
2023-05-17 17:46:26 -07:00
parent 4d4b14e4de
commit 2bc7680361
5 changed files with 94 additions and 41 deletions
+5 -6
View File
@@ -39,27 +39,26 @@ func NewLoginDialog(servers []*backend.ServerConfig, pwFetch PasswordFetchFunc)
l.ExtendBaseWidget(l)
titleLabel := widget.NewLabel("Login to Server")
titleLabel.TextStyle.Bold = true
l.passField = widget.NewPasswordEntry()
l.passField.OnSubmitted = func(_ string) { l.onSubmit() }
serverNames := sharedutil.MapSlice(servers, func(s *backend.ServerConfig) string { return s.Nickname })
l.serverSelect = widget.NewSelect(serverNames, func(_ string) {
if l.passField == nil {
return
}
if pwFetch != nil {
if pw, err := pwFetch(servers[l.serverSelect.SelectedIndex()].ID); err == nil {
l.passField.SetText(pw)
return
}
}
l.passField.SetText("")
})
l.serverSelect.SetSelectedIndex(0)
editBtn := widget.NewButtonWithIcon("", theme.DocumentCreateIcon(), l.onEditServer)
newBtn := widget.NewButtonWithIcon("", theme.ContentAddIcon(), l.onNewServer)
deleteBtn := widget.NewButtonWithIcon("", theme.DeleteIcon(), func() { l.onDeleteServer(l.serverSelect.SelectedIndex()) })
l.passField = widget.NewPasswordEntry()
l.passField.OnSubmitted = func(_ string) { l.onSubmit() }
l.submitBtn = widget.NewButton("OK", l.onSubmit)
l.submitBtn.Importance = widget.HighImportance
l.promptText = widget.NewRichTextWithText("")
l.promptText.Segments[0].(*widget.TextSegment).Style.ColorName = theme.ColorNameError
l.promptText.Hidden = true