summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doGui.go89
-rw-r--r--structs.go2
-rw-r--r--windowMain.go89
-rw-r--r--windowNew.go63
4 files changed, 107 insertions, 136 deletions
diff --git a/doGui.go b/doGui.go
index 6d0dcc9..d80e53c 100644
--- a/doGui.go
+++ b/doGui.go
@@ -4,6 +4,8 @@ package main
import (
"os"
+ "os/user"
+ "path/filepath"
"go.wit.com/gui"
"go.wit.com/lib/debugger"
@@ -51,13 +53,13 @@ func doGui() {
vbox2 := me.mainbox.NewVerticalBox("BOX2")
globalBuildOptions(vbox2)
- me.summary = submitPatchesBox(vbox2)
+ // me.summary = submitPatchesBox(vbox2)
me.repos = makeRepoView()
// processing is done. update the repo summary box
- me.summary.Update()
- me.summary.submitB.Disable()
+ // me.summary.Update()
+ // me.summary.submitB.Disable()
me.Enable()
@@ -65,6 +67,85 @@ func doGui() {
me.repos.View.Watchdog(func() {
log.Info("Watchdog in doGui()")
// processing is done. update the repo summary box
- me.summary.Update()
+ // me.summary.Update()
+ })
+}
+
+func globalBuildOptions(vbox *gui.Node) {
+ group1 := vbox.NewGroup("Forge Settings")
+ grid := group1.NewGrid("buildOptions", 0, 0)
+
+ // me.autoWorkingPwd = gadgets.NewOneLiner(grid, "working directory (pwd)")
+ me.userHomePwd = gadgets.NewOneLiner(grid, "user home")
+ grid.NextRow()
+ me.goSrcPwd = gadgets.NewOneLiner(grid, "go src home")
+ grid.NextRow()
+
+ usr, _ := user.Current()
+ homeDir, err := os.UserHomeDir()
+ if err != nil {
+ log.Warn("Error getting home directory:", err)
+ homeDir = "/home/autotypist"
+ }
+ me.userHomePwd.SetText(homeDir)
+ srcDir := filepath.Join(homeDir, "go/src")
+ me.goSrcPwd.SetText(srcDir)
+
+ // use ENV GIT_AUTHOR
+ me.gitAuthor = gadgets.NewOneLiner(grid, "Git Author")
+ grid.NextRow()
+
+ if os.Getenv("GIT_AUTHOR_NAME") == "" {
+ me.gitAuthor.SetText("ENV GIT_AUTHOR_NAME is unset")
+ } else {
+ author := os.Getenv("GIT_AUTHOR_NAME")
+ author += " <" + os.Getenv("GIT_AUTHOR_EMAIL") + ">"
+ me.gitAuthor.SetText(author)
+ }
+
+ // select the branch you want to test, build and develop against
+ // this lets you select your user branch, but, when you are happy
+ // you can merge everything into the devel branch and make sure it actually
+ // works. Then, when that is good, merge and version everything in master
+ me.setBranchB = grid.NewButton("set current branch to:", func() {
+ targetName := me.newBranch.String()
+ log.Warn("setting all branches to", targetName)
+ if targetName == "devel" {
+ if err := doAllCheckoutDevel(); err != nil {
+ log.Info("switching to devel branches failed")
+ }
+ return
+ }
+ if targetName == "master" {
+ if err := doAllCheckoutMaster(); err != nil {
+ log.Info("switching to master branches failed")
+ }
+ return
+ }
+ // just assume user
+ if err := doAllCheckoutUser(); err != nil {
+ log.Info("switching to user branches failed")
+ }
+ })
+ me.newBranch = grid.NewCombobox()
+ me.newBranch.AddText("master")
+ me.newBranch.AddText("devel")
+ me.newBranch.AddText(usr.Username)
+ me.newBranch.SetText(usr.Username)
+
+ // checking this will automatically make the branches off of devel
+ me.autoCreateBranches = grid.NewCheckbox("create if missing").SetChecked(true)
+ grid.NextRow()
+
+ grid.NewButton("Repo Window", func() {
+ if me.repos.Hidden() {
+ me.repos.Show()
+ } else {
+ me.repos.Hide()
+ }
+ })
+ grid.NewButton("Patches Window", func() {
+ me.patchWin.once.Do(me.patchWin.initWindow)
+ me.patchWin.Toggle()
})
}
diff --git a/structs.go b/structs.go
index 871f70e..d8e7833 100644
--- a/structs.go
+++ b/structs.go
@@ -63,7 +63,7 @@ type mainType struct {
// displays a summary of all the repos
// has total dirty, total read-only
// total patches, etc
- summary *patchSummary
+ // summary *patchSummary
// when switch to user or devel branches, autocreate them
autoCreateBranches *gui.Node
diff --git a/windowMain.go b/windowMain.go
index 7d6441a..0d46dc6 100644
--- a/windowMain.go
+++ b/windowMain.go
@@ -2,11 +2,7 @@ package main
import (
"os"
- "os/user"
- "path/filepath"
- "go.wit.com/gui"
- "go.wit.com/lib/gadgets"
"go.wit.com/lib/gui/shell"
"go.wit.com/log"
)
@@ -44,88 +40,3 @@ func quickCmd(fullpath string, cmd []string) bool {
log.Warn("quickCmd() output = ", result.Stdout)
return true
}
-
-func globalBuildOptions(vbox *gui.Node) {
- group1 := vbox.NewGroup("Forge Settings")
- grid := group1.NewGrid("buildOptions", 0, 0)
-
- // me.autoWorkingPwd = gadgets.NewOneLiner(grid, "working directory (pwd)")
- me.userHomePwd = gadgets.NewOneLiner(grid, "user home")
- grid.NextRow()
- me.goSrcPwd = gadgets.NewOneLiner(grid, "go src home")
- grid.NextRow()
-
- usr, _ := user.Current()
- homeDir, err := os.UserHomeDir()
- if err != nil {
- log.Warn("Error getting home directory:", err)
- homeDir = "/home/autotypist"
- }
- me.userHomePwd.SetText(homeDir)
- srcDir := filepath.Join(homeDir, "go/src")
- me.goSrcPwd.SetText(srcDir)
-
- // use ENV GIT_AUTHOR
- me.gitAuthor = gadgets.NewOneLiner(grid, "Git Author")
- grid.NextRow()
-
- if os.Getenv("GIT_AUTHOR_NAME") == "" {
- me.gitAuthor.SetText("ENV GIT_AUTHOR_NAME is unset")
- } else {
- author := os.Getenv("GIT_AUTHOR_NAME")
- author += " <" + os.Getenv("GIT_AUTHOR_EMAIL") + ">"
- me.gitAuthor.SetText(author)
- }
-
- // select the branch you want to test, build and develop against
- // this lets you select your user branch, but, when you are happy
- // you can merge everything into the devel branch and make sure it actually
- // works. Then, when that is good, merge and version everything in master
- me.setBranchB = grid.NewButton("set current branch to:", func() {
- targetName := me.newBranch.String()
- log.Warn("setting all branches to", targetName)
- if targetName == "devel" {
- if err := doAllCheckoutDevel(); err != nil {
- log.Info("switching to devel branches failed")
- }
- return
- }
- if targetName == "master" {
- if err := doAllCheckoutMaster(); err != nil {
- log.Info("switching to master branches failed")
- }
- return
- }
- // just assume user
- if err := doAllCheckoutUser(); err != nil {
- log.Info("switching to user branches failed")
- }
- })
- me.newBranch = grid.NewCombobox()
- me.newBranch.AddText("master")
- me.newBranch.AddText("devel")
- me.newBranch.AddText(usr.Username)
- me.newBranch.SetText(usr.Username)
-
- // checking this will automatically make the branches off of devel
- me.autoCreateBranches = grid.NewCheckbox("create if missing").SetChecked(true)
- grid.NextRow()
-
- grid.NewButton("Show Repos", func() {
- if me.repos.Hidden() {
- me.repos.Show()
- } else {
- me.repos.Hide()
- }
- })
- grid.NewButton("patches window", func() {
- me.patchWin.once.Do(me.patchWin.initWindow)
- me.patchWin.Toggle()
- })
- grid.NewButton("update patch summary", func() {
- me.summary.Update()
- })
- grid.NewButton("test add", func() {
- me.patchWin.initGroup()
- })
-}
diff --git a/windowNew.go b/windowNew.go
index 7e6d342..cab0323 100644
--- a/windowNew.go
+++ b/windowNew.go
@@ -4,19 +4,20 @@ import (
"sync"
"go.wit.com/lib/gadgets"
- "go.wit.com/lib/protobuf/gitpb"
"go.wit.com/log"
"go.wit.com/gui"
)
type patchesWindow struct {
- once sync.Once
- win *gadgets.BasicWindow
- stackBox *gui.Node
+ once sync.Once
+ win *gadgets.BasicWindow
+ stack *gui.Node
// the top box of the repolist window
shelf *gui.Node
+
+ summary *patchSummary
}
func (r *patchesWindow) Hidden() bool {
@@ -40,76 +41,54 @@ func (r *patchesWindow) Hide() {
}
func (r *patchesWindow) Disable() {
- r.stackBox.Disable()
+ r.stack.Disable()
}
func (r *patchesWindow) Enable() {
- r.stackBox.Enable()
+ r.stack.Enable()
}
// you can only have one of these
func (r *patchesWindow) initWindow() {
// sync.Once()
- r.win = gadgets.RawBasicWindow("All git repositories in ~/go/src/")
+ r.win = gadgets.RawBasicWindow("Forge Patchesets")
r.win.Make()
- r.stackBox = r.win.Box().NewBox("bw vbox", false)
+ r.stack = r.win.Box().NewBox("bw vbox", false)
// me.reposwin.Draw()
r.win.Custom = func() {
- log.Warn("Repo Window close. Do something here?")
+ log.Warn("Patchset Window close. setting hidden=true")
// sets the hidden flag to false so Toggle() works
r.win.Hide()
}
r.shelf = r.initGroup()
- submitPatchesBox(r.shelf)
+ r.summary = submitPatchesBox(r.stack)
}
func (r *patchesWindow) initGroup() *gui.Node {
// reposbox.SetExpand(false)
- group1 := r.stackBox.NewGroup("Filter:")
+ group1 := r.stack.NewGroup("stuff")
- hbox := group1.Box()
+ vbox := group1.Box()
// hbox.Horizontal()
- hbox.Vertical()
+ vbox.Vertical()
- box2 := hbox.Box().Horizontal()
+ hbox := vbox.Box().Horizontal()
/*
*/
- dirty := box2.NewCheckbox("dirty")
+ dirty := hbox.NewCheckbox("dirty")
dirty.Custom = func() {
log.Info("filter dirty =", dirty.Checked())
}
- box2.NewButton("merge user to devel", func() {
- r.Disable()
- defer r.Enable()
- })
-
- box2.NewButton("test master merge", func() {
- r.Disable()
- r.Enable()
- })
-
- box2.NewButton("show apps", func() {
- })
- box2.NewButton("re-init forge", func() {
- log.Info("re-scanning now")
- })
- box2.NewButton("ConfigSave()", func() {
- })
- box2.NewButton("Table()", func() {
- me.found = new(gitpb.Repos)
- loop := me.forge.Repos.All()
- for loop.Scan() {
- repo := loop.Next()
- me.found.AppendByGoPath(repo)
- }
- me.forge.PrintHumanTable(me.found)
+ hbox.NewButton("update patch summary", func() {
+ r.summary.Update()
})
- box2.NewButton("Prep for release()", func() {
+ hbox.NewButton("test add", func() {
+ me.patchWin.initGroup()
})
- return box2
+ return vbox
}