From 728c281ad3fb6ddf88063b23690d527df64ac1b1 Mon Sep 17 00:00:00 2001 From: KemoNine Date: Sat, 5 Sep 2020 00:09:14 -0400 Subject: [PATCH] Cleanup config UI further, fix some save bugs --- ui/config.go | 53 +++++++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/ui/config.go b/ui/config.go index cb70a9e..b8e6e6a 100644 --- a/ui/config.go +++ b/ui/config.go @@ -38,6 +38,17 @@ const ( PAGE_POWEROFF = "PAGE_POWEROFF" ) +// Housekeeping +var app *tview.Application +var main *tview.Flex +var menu *tview.List + +// Function to reset the main input area that's used all over the place +func resetMain() { + main.Clear() + app.SetFocus(menu) +} + func ConfigGui(pfconfig *koanf.Koanf) { // Memory info for status panel meminfo := &procmeminfo.MemInfo{} @@ -91,7 +102,7 @@ func ConfigGui(pfconfig *koanf.Koanf) { } // Run config UI when slideshow stops - app := tview.NewApplication() + app = tview.NewApplication() // Header headerTitle := tview.NewTextView(). @@ -148,7 +159,7 @@ func ConfigGui(pfconfig *koanf.Koanf) { AddItem(rebootButton, 0, 1, false). AddItem(powerOffButton, 0, 1, false) // Setup menu - menu := tview.NewList() + menu = tview.NewList() menu.SetBorder(true). SetTitle("Menu"). SetTitleColor(tcell.ColorAqua) @@ -159,7 +170,7 @@ func ConfigGui(pfconfig *koanf.Koanf) { menu.AddItem("Advanced", "", '6', nil) // Setup base var for main column so the menu setup is easier to manage - main := tview.NewFlex(). + main = tview.NewFlex(). SetDirection(tview.FlexRow) // Setup main panel (Center column) @@ -182,11 +193,8 @@ func ConfigGui(pfconfig *koanf.Koanf) { } selectAlbumsForm.AddCheckbox(album, albumSelected, nil) } - selectAlbumsForm.AddButton("Apply", nil) - selectAlbumsForm.AddButton("Cancel", func() { - main.Clear() - app.SetFocus(menu) - }) + selectAlbumsForm.AddButton("Apply", resetMain) + selectAlbumsForm.AddButton("Cancel", resetMain) // Slide Interval Form intervalsForm := tview.NewForm() @@ -198,11 +206,8 @@ func ConfigGui(pfconfig *koanf.Koanf) { intervalsForm.AddInputField("Restart/Reshuffle", configRestartInterval, 0, nil, func(value string) { configRestartInterval = value }) - intervalsForm.AddButton("Apply", nil) - intervalsForm.AddButton("Cancel", func() { - main.Clear() - app.SetFocus(menu) - }) + intervalsForm.AddButton("Apply", resetMain) + intervalsForm.AddButton("Cancel", resetMain) // WiFi Config Form wifiConfigForm := tview.NewForm() @@ -218,11 +223,9 @@ func ConfigGui(pfconfig *koanf.Koanf) { // Cleanup old wifi configs and apply new one nmWifi := wifi.New(wifiConfigAccessPoint, wifiConfigPassword) nmWifi.ApplyConfig() + resetMain() }) - wifiConfigForm.AddButton("Cancel", func() { - main.Clear() - app.SetFocus(menu) - }) + wifiConfigForm.AddButton("Cancel", resetMain) // HDMI On/Off Form hdmiForm := tview.NewForm() @@ -234,18 +237,12 @@ func ConfigGui(pfconfig *koanf.Koanf) { hdmiForm.AddInputField("HDMI On Schedule", configHDMIOn, 0, nil, func(value string) { configHDMIOn = value }) - hdmiForm.AddButton("Apply", nil) - hdmiForm.AddButton("Cancel", func() { - main.Clear() - app.SetFocus(menu) - }) + hdmiForm.AddButton("Apply", resetMain) + hdmiForm.AddButton("Cancel", resetMain) // Advanced config form advancedForm := tview.NewForm() - advancedForm.AddButton("Go Back", func() { - main.Clear() - app.SetFocus(menu) - }) + advancedForm.AddButton("Go Back", resetMain) // Setup menu selection handler menu.SetSelectedFunc(func(index int, title string, desc string, shortcut rune) { @@ -412,8 +409,8 @@ func ConfigGui(pfconfig *koanf.Koanf) { // Apply configuration updates to main config manager prior to saving pfconfig.Load(confmap.Provider(map[string]interface{}{ - config.DEFAULT_HDMI_ON: configHDMIOn, - config.DEFAULT_HDMI_OFF: configHDMIOff, + config.CONFIG_KEY_HDMI_ON: configHDMIOn, + config.CONFIG_KEY_HDMI_OFF: configHDMIOff, }, "."), nil) // Save configuration