restore defaults, all on, all off all work

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2024-01-04 15:14:37 -06:00
parent 10001c7006
commit 32876a5bfb
4 changed files with 52 additions and 24 deletions

View File

@ -21,6 +21,7 @@ type LogFlag struct {
Name string Name string
Subsystem string Subsystem string
Desc string Desc string
Default bool
b bool b bool
Custom func() Custom func()
@ -31,8 +32,15 @@ func (f *LogFlag) Get() bool {
} }
func (f *LogFlag) Set(b bool) { func (f *LogFlag) Set(b bool) {
log.Println("LogFlag.Set() =", b) log.Info("LogFlag.Set() =", b)
log.Set(f.Subsystem, f.Name, b) log.Set(f.Subsystem, f.Name, b)
f.c.Set(b)
}
func (f *LogFlag) SetDefault() {
log.Info("LogFlag.SetDefault() =", f.Default)
log.Set(f.Subsystem, f.Name, f.Default)
f.c.Set(f.Default)
} }
func NewLogFlag(n *gui.Node, lf *log.LogFlag) *LogFlag { func NewLogFlag(n *gui.Node, lf *log.LogFlag) *LogFlag {
@ -40,6 +48,7 @@ func NewLogFlag(n *gui.Node, lf *log.LogFlag) *LogFlag {
Name: lf.Name, Name: lf.Name,
Subsystem: lf.Subsystem, Subsystem: lf.Subsystem,
Desc: lf.Desc, Desc: lf.Desc,
Default: lf.Default,
p: n, p: n,
} }
@ -47,8 +56,9 @@ func NewLogFlag(n *gui.Node, lf *log.LogFlag) *LogFlag {
f.c = n.NewCheckbox(f.Name + ": " + f.Desc) f.c = n.NewCheckbox(f.Name + ": " + f.Desc)
f.c.Custom = func() { f.c.Custom = func() {
log.Set(f.Subsystem, f.Name, f.c.B) log.Set(f.Subsystem, f.Name, f.c.B)
log.Println("LogFlag.Custom() user changed value to =", log.Get(f.Subsystem, f.Name)) log.Info("LogFlag.Custom() user changed value to =", log.Get(f.Subsystem, f.Name))
} }
f.c.Set(lf.B)
return &f return &f
} }

View File

@ -25,13 +25,11 @@ func (d *LogSettings) Show() {
func (d *LogSettings) Hide() { func (d *LogSettings) Hide() {
if ! d.Ready() { if ! d.Ready() {
log.Warn("LogSettings.Show() window is not Ready()") log.Warn("LogSettings.Hide() window is not Ready()")
return return
} }
log.Warn("LogSettings.Hide() window") log.Warn("LogSettings.Hide() window")
if ! d.hidden { d.window.Hide()
d.window.Hide()
}
d.hidden = true d.hidden = true
} }
@ -39,49 +37,72 @@ func (d *LogSettings) Hide() {
// These checkboxes should be in the same order as the are printed // These checkboxes should be in the same order as the are printed
func (d *LogSettings) draw() { func (d *LogSettings) draw() {
if ! d.Ready() {return} if ! d.Ready() {return}
var newW, newB, g *gui.Node var g *gui.Node
newW = d.parent.NewWindow("Debug Flags") d.window = d.parent.NewWindow("Debug Flags")
newW.Custom = d.parent.StandardClose d.window.Custom = d.parent.StandardClose
newB = newW.NewBox("hBox", true) d.box = d.window.NewBox("hBox", true)
g = newB.NewGroup("Show").Pad() g = d.box.NewGroup("Show").Pad()
d.buttonG = g
g.NewButton("Redirect STDOUT to /tmp/", func () { g.NewButton("Redirect STDOUT to /tmp/", func () {
log.SetTmp() log.SetTmp()
}) })
g.NewButton("restore defaults", func () { g.NewButton("restore defaults", func () {
log.SetDefaults() for _, wg := range myLogGui.groups {
for _, f := range wg.flags {
f.SetDefault()
}
}
}) })
g.NewButton("all on", func () { g.NewButton("all on", func () {
log.SetAll(true) for _, wg := range myLogGui.groups {
for _, f := range wg.flags {
f.Set(true)
}
}
}) })
g.NewButton("all off", func () { g.NewButton("all off", func () {
log.SetAll(false) for _, wg := range myLogGui.groups {
for _, f := range wg.flags {
f.Set(false)
}
}
}) })
g.NewButton("Dump Flags", func () { g.NewButton("Dump Flags", func () {
// ShowDebugValues() // ShowDebugValues()
log.ShowFlags() log.ShowFlags()
for s, wg := range myLogGui.groups {
log.Log(true, "Dump Flags", s)
for _, f := range wg.flags {
log.Log(true, "Dump Flags\t", f.Name, ":", f.Desc)
}
}
}) })
flagG := newB.NewGroup("Subsystem (aka package)") d.flagG = d.box.NewGroup("Subsystem (aka package)")
g.NewButton("Add all Flags", func () { g.NewButton("Add all Flags", func () {
flags := log.ShowFlags() flags := log.ShowFlags()
for _, f := range flags { for _, f := range flags {
log.Log(true, "Get() ", "(" + f.Subsystem + ")", f.Name, "=", f.B, ":", f.Desc) log.Log(true, "Get() ", "(" + f.Subsystem + ")", f.Name, "=", f.B, ":", f.Desc)
addFlag(flagG, f) addFlag(d.flagG, f)
} }
}) })
g.NewButton("Close", func () {
d.Hide()
})
flags := log.ShowFlags() flags := log.ShowFlags()
for _, f := range flags { for _, f := range flags {
log.Log(true, "Get() ", "(" + f.Subsystem + ")", f.Name, "=", f.B, ":", f.Desc) log.Log(true, "Get() ", "(" + f.Subsystem + ")", f.Name, "=", f.B, ":", f.Desc)
addFlag(flagG, f) addFlag(d.flagG, f)
} }
} }

View File

@ -20,7 +20,6 @@ func New(p *gui.Node) *LogSettings {
func (ls *LogSettings) Set(b bool) { func (ls *LogSettings) Set(b bool) {
// log.Set(ls.name, b) // log.Set(ls.name, b)
log.Warn("log.Set() FIXME: not working here anymore") log.Warn("log.Set() FIXME: not working here anymore")
ls.checkbox.Set(b)
} }
// Returns true if the status is valid // Returns true if the status is valid

View File

@ -2,7 +2,7 @@ package logsettings
import ( import (
"go.wit.com/gui/gui" "go.wit.com/gui/gui"
"go.wit.com/gui/gadgets" // "go.wit.com/gui/gadgets"
) )
var myLogGui *LogSettings var myLogGui *LogSettings
@ -16,10 +16,8 @@ type LogSettings struct {
parent *gui.Node // where to draw our window parent *gui.Node // where to draw our window
window *gui.Node // our window for displaying the log package settings window *gui.Node // our window for displaying the log package settings
box *gui.Node // the first box in the window
// Primary Directives buttonG *gui.Node // the group of buttons
status *gadgets.OneLiner flagG *gui.Node // the group of all the flag checkbox widgets
summary *gadgets.OneLiner
checkbox *gadgets.LogFlag
} }