mirror of
https://github.com/fiatjaf/nak.git
synced 2025-12-08 16:48:51 +00:00
74 lines
1.5 KiB
Go
74 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
|
|
"fiatjaf.com/nostr"
|
|
"github.com/therecipe/qt/widgets"
|
|
)
|
|
|
|
var (
|
|
currentSec nostr.SecretKey
|
|
currentKeyer nostr.Keyer
|
|
statusLabel *widgets.QLabel
|
|
)
|
|
|
|
func main() {
|
|
app := widgets.NewQApplication(len(os.Args), os.Args)
|
|
|
|
window := widgets.NewQMainWindow(nil, 0)
|
|
window.SetMinimumSize2(800, 600)
|
|
window.SetWindowTitle("nakv")
|
|
|
|
centralWidget := widgets.NewQWidget(nil, 0)
|
|
window.SetCentralWidget(centralWidget)
|
|
|
|
mainLayout := widgets.NewQVBoxLayout()
|
|
centralWidget.SetLayout(mainLayout)
|
|
|
|
// private key input
|
|
secLabel := widgets.NewQLabel2("private key (hex or nsec):", nil, 0)
|
|
mainLayout.AddWidget(secLabel, 0, 0)
|
|
secEdit := widgets.NewQLineEdit(nil)
|
|
mainLayout.AddWidget(secEdit, 0, 0)
|
|
|
|
secEdit.ConnectTextChanged(func(text string) {
|
|
if text == "" {
|
|
currentSec = nostr.SecretKey{}
|
|
currentKeyer = nil
|
|
statusLabel.SetText("")
|
|
return
|
|
}
|
|
sk, bunker, err := handleSecretKeyOrBunker(text)
|
|
if err != nil {
|
|
statusLabel.SetText(err.Error())
|
|
currentSec = nostr.SecretKey{}
|
|
currentKeyer = nil
|
|
return
|
|
}
|
|
currentSec = sk
|
|
currentKeyer = bunker
|
|
statusLabel.SetText("")
|
|
updateEvent()
|
|
})
|
|
|
|
tabWidget := widgets.NewQTabWidget(nil)
|
|
|
|
eventTab := setupEventTab()
|
|
reqTab := widgets.NewQWidget(nil, 0)
|
|
|
|
tabWidget.AddTab(eventTab, "event")
|
|
tabWidget.AddTab(reqTab, "req")
|
|
|
|
mainLayout.AddWidget(tabWidget, 0, 0)
|
|
|
|
statusLabel = widgets.NewQLabel2("", nil, 0)
|
|
mainLayout.AddWidget(statusLabel, 0, 0)
|
|
|
|
// initial render
|
|
updateEvent()
|
|
|
|
window.Show()
|
|
app.Exec()
|
|
}
|