package main import ( "go.wit.com/gui" "go.wit.com/lib/debugger" "go.wit.com/lib/gui/gowit" "go.wit.com/lib/gui/logsettings" "go.wit.com/lib/gui/repolist" "go.wit.com/log" ) func hideFunction(r *repolist.Repo) { if r.Status.IsDirty() { r.Show() return } if me.autoHideReadOnly.Checked() { if r.Status.ReadOnly() { r.Hide() return } } if me.autoHidePerfect.Checked() { if r.IsPerfect() { r.Hide() return } } r.Show() } func hideFunction2(repo *repolist.Repo) { if me.autoHideReadOnly.Checked() { if repo.Status.ReadOnly() { return } } if me.autoHidePerfect.Checked() { if repo.IsPerfect() { return } } repo.Show() } func globalDisplayOptions(vbox *gui.Node) { group1 := vbox.NewGroup("Global Display Options") group1.NewButton("Show Repository Window", func() { // globalDisplaySetRepoState() if me.repos.Hidden() { me.repos.Show() } else { me.repos.Hide() } }) me.autoHideReadOnly = group1.NewCheckbox("Hide read-only repos").SetChecked(true) me.autoHideReadOnly.Custom = func() { me.repos.View.RegisterHideFunction(hideFunction) me.repos.View.ScanRepositories() } me.autoHidePerfect = group1.NewCheckbox("Hide Perfectly clean repos").SetChecked(true) me.autoHidePerfect.Custom = func() { me.repos.View.RegisterHideFunction(hideFunction) me.repos.View.ScanRepositories() } scanbox := group1.Box().Horizontal() me.autoScanReposCB = scanbox.NewCheckbox("auto scan").SetChecked(true) me.autoScanReposCB.Custom = func() { me.repos.View.SetAutoScan(me.autoScanReposCB.Checked()) } scanbox.NewButton("scan now", func() { log.Info("re-scanning repos now") i, s := me.repos.View.ScanRepositories() log.Info("re-scanning repos done", i, s) }) var tagsW *tagWindow group1.NewButton("git tags Window", func() { if tagsW == nil { tagsW = makeTagWindow() } else { tagsW.win.Toggle() } }) var listallB *gui.Node listallB = group1.NewButton("go.wit.com", func() { listallB.Disable() if me.lw == nil { me.lw = gowit.ListWindow(me.repos.View) } if me.lw.Hidden() { me.lw.Show() } else { me.lw.Hide() } listallB.Enable() }) } func debuggerBox(vbox *gui.Node) { group2 := vbox.NewGroup("Debugger") group2.NewButton("logging Window", func() { logsettings.LogWindow() }) group2.NewButton("Debugger Window", func() { debugger.DebugWindow() }) } func hidePerfect() { for _, repo := range repolist.AllRepos() { if repo.IsPerfect() { if repo.Hidden() { continue } repo.Hide() // return } } }