move show/hide function to seperate file
This commit is contained in:
parent
2d2fc80754
commit
e825cffc8a
|
@ -1,46 +1,14 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
"go.wit.com/gui"
|
"go.wit.com/gui"
|
||||||
"go.wit.com/lib/debugger"
|
"go.wit.com/lib/debugger"
|
||||||
"go.wit.com/lib/gui/logsettings"
|
"go.wit.com/lib/gui/logsettings"
|
||||||
"go.wit.com/lib/gui/repolist"
|
|
||||||
"go.wit.com/log"
|
"go.wit.com/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func showHideRepos(repo *repolist.RepoRow) {
|
|
||||||
if repo.GoPath() == "go.wit.com/dev/alexflint/arg" {
|
|
||||||
log.Info("found autoHideReleased() =", me.autoHideReleased.Checked())
|
|
||||||
log.Info("found alexflint/arg IsReleased() =", repo.Status.IsReleased())
|
|
||||||
}
|
|
||||||
// always show dirty repos
|
|
||||||
if repo.IsDirty() {
|
|
||||||
repo.Show()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// always show repos that have not been merged ?
|
|
||||||
if repo.GoState() == "merge to devel" {
|
|
||||||
repo.Show()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// hide read-only repos. These are repos that do not
|
|
||||||
// match things in the users config file (.config/autotypist)
|
|
||||||
if me.autoHideReadOnly.Checked() {
|
|
||||||
if repo.Status.ReadOnly() {
|
|
||||||
repo.Hide()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if me.autoHideReleased.Checked() {
|
|
||||||
if repo.Status.IsReleased() {
|
|
||||||
repo.Hide()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
repo.Show()
|
|
||||||
}
|
|
||||||
|
|
||||||
func globalDisplayOptions(box *gui.Node) {
|
func globalDisplayOptions(box *gui.Node) {
|
||||||
vbox := box.NewVerticalBox("DISPLAYVBOX")
|
vbox := box.NewVerticalBox("DISPLAYVBOX")
|
||||||
|
|
||||||
|
@ -73,8 +41,15 @@ func globalDisplayOptions(box *gui.Node) {
|
||||||
|
|
||||||
me.scanEveryMinute = hidegrid.NewCheckbox("Scan every minute").SetChecked(false)
|
me.scanEveryMinute = hidegrid.NewCheckbox("Scan every minute").SetChecked(false)
|
||||||
me.scanEveryMinute.Custom = func() {
|
me.scanEveryMinute.Custom = func() {
|
||||||
me.repos.View.SetAutoScan(me.scanEveryMinute.Checked())
|
if me.scanEveryMinute.Checked() {
|
||||||
|
os.Setenv("REPO_AUTO_SCAN", "true")
|
||||||
|
log.Info("env REPO_AUTO_SCAN=", os.Getenv("REPO_AUTO_SCAN"))
|
||||||
|
} else {
|
||||||
|
os.Unsetenv("REPO_AUTO_SCAN")
|
||||||
|
log.Info("env REPO_AUTO_SCAN=", os.Getenv("REPO_AUTO_SCAN"))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
hidegrid.NewButton("scan now", func() {
|
hidegrid.NewButton("scan now", func() {
|
||||||
log.Info("re-scanning repos now")
|
log.Info("re-scanning repos now")
|
||||||
i, s := me.repos.View.ScanRepositories()
|
i, s := me.repos.View.ScanRepositories()
|
||||||
|
|
|
@ -0,0 +1,89 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"go.wit.com/lib/gui/repolist"
|
||||||
|
"go.wit.com/log"
|
||||||
|
)
|
||||||
|
|
||||||
|
// like tcl/tk, use ENV variables to set display preferences
|
||||||
|
func hideFunction(r *repolist.RepoRow) {
|
||||||
|
if r.GoPath() == "go.wit.com/dev/alexflint/arg" {
|
||||||
|
log.Info("found autoHideReleased() =", me.autoHideReleased.Checked())
|
||||||
|
log.Info("found alexflint/arg IsReleased() =", r.Status.IsReleased())
|
||||||
|
}
|
||||||
|
|
||||||
|
// always show dirty repos
|
||||||
|
if r.Status.IsDirty() {
|
||||||
|
r.Show()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// hide read-only repos
|
||||||
|
if os.Getenv("AUTOTYPIST_READONLY") == "hide" {
|
||||||
|
if r.Status.ReadOnly() {
|
||||||
|
// log.Info(r.Name(), "hiding read-only repo")
|
||||||
|
r.Hide()
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
// log.Info(r.Name(), "not hiding read-only repo")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// show repos with mismatched mode
|
||||||
|
// this means, if you are in "devel" mode, show all the repos that
|
||||||
|
// might be stuck on the wrong branch, like 'master' or '<username>'
|
||||||
|
if os.Getenv("AUTOTYPIST_MODE") != "" {
|
||||||
|
if !r.Status.IsCorrectMode(os.Getenv("AUTOTYPIST_MODE")) {
|
||||||
|
r.Show()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// hide perfectly clean repos
|
||||||
|
if os.Getenv("AUTOTYPIST_CLEAN") == "hide" {
|
||||||
|
if r.IsPerfect() {
|
||||||
|
r.Hide()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// show everything else. often this will be "unconforming" repos
|
||||||
|
// if you what those repos ignored, add these to the config file
|
||||||
|
// as read-only=true
|
||||||
|
r.Show()
|
||||||
|
}
|
||||||
|
|
||||||
|
func showHideRepos(repo *repolist.RepoRow) {
|
||||||
|
if repo.GoPath() == "go.wit.com/dev/alexflint/arg" {
|
||||||
|
log.Info("found autoHideReleased() =", me.autoHideReleased.Checked())
|
||||||
|
log.Info("found alexflint/arg IsReleased() =", repo.Status.IsReleased())
|
||||||
|
}
|
||||||
|
// always show dirty repos
|
||||||
|
if repo.IsDirty() {
|
||||||
|
repo.Show()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// always show repos that have not been merged ?
|
||||||
|
if repo.GoState() == "merge to devel" {
|
||||||
|
repo.Show()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// hide read-only repos. These are repos that do not
|
||||||
|
// match things in the users config file (.config/autotypist)
|
||||||
|
if me.autoHideReadOnly.Checked() {
|
||||||
|
if repo.Status.ReadOnly() {
|
||||||
|
repo.Hide()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if me.autoHideReleased.Checked() {
|
||||||
|
if repo.Status.IsReleased() {
|
||||||
|
repo.Hide()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
repo.Show()
|
||||||
|
}
|
2
main.go
2
main.go
|
@ -94,7 +94,7 @@ func main() {
|
||||||
setTargetVersion()
|
setTargetVersion()
|
||||||
|
|
||||||
// register a Show/Hide function for the repo list table
|
// register a Show/Hide function for the repo list table
|
||||||
me.repos.View.RegisterHideFunction(showHideRepos)
|
me.repos.View.RegisterHideFunction(hideFunction)
|
||||||
|
|
||||||
// scan in the State of all the repos
|
// scan in the State of all the repos
|
||||||
// TODO: should not really be necessary directly after init()
|
// TODO: should not really be necessary directly after init()
|
||||||
|
|
Loading…
Reference in New Issue