Implemented info line with refresh status

pull/17/head
マリウス 2 years ago
parent 2a85ed4120
commit 0568fa3ec7
No known key found for this signature in database
GPG Key ID: 272ED814BF63261F

@ -27,6 +27,8 @@ var STATS_TEMPLATE =
[teal] %.2f[-] [grey]MB[-]
`
var INFO_TEMPLATE = "%s"
type GroupMapEntry struct {
Index int
}
@ -37,6 +39,7 @@ type Mainscreen struct {
Header *tview.TextView
Stats *tview.TextView
Info *tview.TextView
Footer *tview.TextView
Groups *tview.List
@ -95,6 +98,13 @@ func(t *TUI) NewMainscreen() (*Mainscreen) {
SetDynamicColors(true)
mainscreen.Stats.SetBorder(false)
mainscreen.Info = tview.NewTextView().
SetText("").
SetTextColor(tcell.ColorHotPink).
SetDynamicColors(true)
mainscreen.Info.SetBorder(false).
SetBorderPadding(0, 0, 1, 1)
mainscreen.Footer = tview.NewTextView().
SetText("It really whips the llama's ass").
SetTextColor(tcell.ColorHotPink).
@ -108,7 +118,8 @@ func(t *TUI) NewMainscreen() (*Mainscreen) {
SetBorders(false).
AddItem(mainscreen.Header, 0, 0, 1, 2, 0, 0, false).
AddItem(mainscreen.Stats, 0, 2, 1, 1, 0, 0, false).
AddItem(mainscreen.Footer, 2, 0, 1, 3, 0, 0, false)
AddItem(mainscreen.Info, 2, 0, 1, 1, 0, 0, false).
AddItem(mainscreen.Footer, 2, 1, 1, 2, 0, 0, false)
mainscreen.Canvas.
AddItem(mainscreen.Groups, 1, 0, 1, 1, 0, 0, false).
@ -139,6 +150,15 @@ func (mainscreen *Mainscreen) SetStats(stats map[string]int64) {
)
}
func (mainscreen *Mainscreen) SetInfo(info map[string]string) {
refresh := info["refresh"]
mainscreen.Info.SetText(
fmt.Sprintf(INFO_TEMPLATE,
refresh,
),
)
}
func (mainscreen *Mainscreen) GetCanvas() (tview.Primitive) {
return mainscreen.Canvas
}

@ -90,6 +90,7 @@ func (t *TUI) initInput() {
switch event.Key() {
case tcell.KeyCtrlR:
t.RefreshMainscreen()
t.SetInfo(true)
return nil
case tcell.KeyCtrlQ:
t.App.Stop()
@ -124,6 +125,7 @@ func (t *TUI) Launch() {
go func() {
for {
t.RefreshMainscreen()
t.SetInfo(true)
time.Sleep(time.Second * 60)
}
}()
@ -208,6 +210,21 @@ func(t *TUI) ShowErrorModal(text string) {
})
}
func (t *TUI) SetInfo(refresh bool) {
if refresh == true {
t.Views["mainscreen"].(*Mainscreen).SetInfo(map[string]string{
"refresh": "[green]◙[-]",
})
time.AfterFunc(time.Second * 3, func() {
t.SetInfo(false)
})
} else {
t.Views["mainscreen"].(*Mainscreen).SetInfo(map[string]string{
"refresh": "[grey]◙[-]",
})
}
}
func (t* TUI) SetStats(peers, rateIn, rateOut, totalIn, totalOut int64) () {
t.Stats["peers"] = peers
t.Stats["rate_in"] = rateIn

Loading…
Cancel
Save