Compare commits

..

2 Commits

2 changed files with 112 additions and 90 deletions

107
gtk-signin.go Normal file
View File

@@ -0,0 +1,107 @@
package main
import (
"os"
"bytes"
"github.com/diamondburned/gotk4/pkg/gio/v2"
"github.com/diamondburned/gotk4/pkg/gtk/v4"
"path/filepath"
"github.com/BurntSushi/toml"
_ "embed"
)
func dropToSignInPage(err error) {
app := gtk.NewApplication("net.sunglocto.lambda.login", gio.ApplicationFlagsNone)
app.ConnectActivate(func() {
form_box := gtk.NewBox(gtk.OrientationVertical, 0)
server_box := gtk.NewBox(gtk.OrientationHorizontal, 0)
username_box := gtk.NewBox(gtk.OrientationHorizontal, 0)
password_box := gtk.NewBox(gtk.OrientationHorizontal, 0)
nickname_box := gtk.NewBox(gtk.OrientationHorizontal, 0)
insecure_box := gtk.NewBox(gtk.OrientationHorizontal, 0)
server_label := gtk.NewLabel("Server: ")
username_label := gtk.NewLabel("Username: ")
password_label := gtk.NewLabel("Password: ")
nickname_label := gtk.NewLabel("Nickname: ")
insecure_label := gtk.NewLabel("Insecure: ")
server_entry := gtk.NewEntry()
server_entry.SetHAlign(gtk.AlignEnd)
username_entry := gtk.NewEntry()
username_entry.SetHAlign(gtk.AlignEnd)
password_entry := gtk.NewPasswordEntry()
password_entry.SetHAlign(gtk.AlignEnd)
nickname_entry := gtk.NewEntry()
nickname_entry.SetHAlign(gtk.AlignEnd)
insecure_check := gtk.NewCheckButton()
insecure_check.SetHAlign(gtk.AlignEnd)
server_box.Append(server_label)
server_box.Append(server_entry)
username_box.Append(username_label)
username_box.Append(username_entry)
password_box.Append(password_label)
password_box.Append(password_entry)
nickname_box.Append(nickname_label)
nickname_box.Append(nickname_entry)
insecure_box.Append(insecure_label)
insecure_box.Append(insecure_check)
form_box.Append(server_box)
form_box.Append(username_box)
form_box.Append(password_box)
form_box.Append(nickname_box)
form_box.Append(insecure_box)
sumbit_btn := gtk.NewButtonWithLabel("Submit")
sumbit_btn.ConnectClicked(func() {
conf := new(lambdaConfig)
conf.Server = server_entry.Text()
conf.Username = username_entry.Text()
conf.Password = password_entry.Text()
conf.Nick = nickname_entry.Text()
conf.Insecure = insecure_check.Active()
var b bytes.Buffer
e := toml.NewEncoder(&b)
e.Encode(conf)
p, err := ensureConfig()
if err != nil {
panic(err)
}
os.WriteFile(filepath.Join(p, "lambda.toml"), b.Bytes(), 0644)
window.SetVisible(false)
main()
os.Exit(0)
})
form_box.Append(sumbit_btn)
window = gtk.NewApplicationWindow(app)
window.SetChild(form_box)
window.SetResizable(false)
window.SetVisible(true)
})
if code := app.Run(os.Args); code == 0 {
os.Exit(code)
}
}

95
main.go
View File

@@ -3,7 +3,6 @@ package main
import ( import (
"os" "os"
"sync" "sync"
"bytes"
"context" "context"
"fmt" "fmt"
@@ -68,97 +67,13 @@ func init() {
}() }()
} }
func dropToSignInPage(err error) {
app := gtk.NewApplication("net.sunglocto.lambda.login", gio.ApplicationFlagsNone)
app.ConnectActivate(func() {
form_box := gtk.NewBox(gtk.OrientationVertical, 0)
server_box := gtk.NewBox(gtk.OrientationHorizontal, 0)
username_box := gtk.NewBox(gtk.OrientationHorizontal, 0)
password_box := gtk.NewBox(gtk.OrientationHorizontal, 0)
nickname_box := gtk.NewBox(gtk.OrientationHorizontal, 0)
insecure_box := gtk.NewBox(gtk.OrientationHorizontal, 0)
server_label := gtk.NewLabel("Server: ")
username_label := gtk.NewLabel("Username: ")
password_label := gtk.NewLabel("Password: ")
nickname_label := gtk.NewLabel("Nickname: ")
insecure_label := gtk.NewLabel("Insecure: ")
server_entry := gtk.NewEntry()
server_entry.SetHAlign(gtk.AlignEnd)
username_entry := gtk.NewEntry()
username_entry.SetHAlign(gtk.AlignEnd)
password_entry := gtk.NewPasswordEntry()
password_entry.SetHAlign(gtk.AlignEnd)
nickname_entry := gtk.NewEntry()
nickname_entry.SetHAlign(gtk.AlignEnd)
insecure_check := gtk.NewCheckButton()
insecure_check.SetHAlign(gtk.AlignEnd)
server_box.Append(server_label)
server_box.Append(server_entry)
username_box.Append(username_label)
username_box.Append(username_entry)
password_box.Append(password_label)
password_box.Append(password_entry)
nickname_box.Append(nickname_label)
nickname_box.Append(nickname_entry)
insecure_box.Append(insecure_label)
insecure_box.Append(insecure_check)
form_box.Append(server_box)
form_box.Append(username_box)
form_box.Append(password_box)
form_box.Append(nickname_box)
form_box.Append(insecure_box)
sumbit_btn := gtk.NewButtonWithLabel("Submit")
sumbit_btn.ConnectClicked(func() {
conf := new(lambdaConfig)
conf.Server = server_entry.Text()
conf.Username = username_entry.Text()
conf.Password = password_entry.Text()
conf.Nick = nickname_entry.Text()
conf.Insecure = insecure_check.Active()
var b bytes.Buffer
e := toml.NewEncoder(&b)
e.Encode(conf)
p, _ := ensureConfig()
os.WriteFile(filepath.Join(p, "lambda.toml"), b.Bytes(), 0644)
window.SetVisible(false)
main()
os.Exit(0)
})
form_box.Append(sumbit_btn)
window = gtk.NewApplicationWindow(app)
window.SetChild(form_box)
window.SetResizable(false)
window.SetVisible(true)
})
if code := app.Run(os.Args); code == 0 {
os.Exit(code)
}
}
func main() { func main() {
p, _ := ensureConfig() p, err := ensureConfig()
if err != nil {
panic(err)
}
b, err := os.ReadFile(filepath.Join(p, "lambda.toml")) b, err := os.ReadFile(filepath.Join(p, "lambda.toml"))
if err != nil { if err != nil {
dropToSignInPage(err) dropToSignInPage(err)