diff options
Diffstat (limited to 'doGui.go')
| -rw-r--r-- | doGui.go | 104 |
1 files changed, 74 insertions, 30 deletions
@@ -14,6 +14,7 @@ import ( "go.wit.com/lib/debugger" "go.wit.com/lib/gadgets" "go.wit.com/lib/gui/shell" + "go.wit.com/lib/protobuf/forgepb" "go.wit.com/lib/protobuf/gitpb" "go.wit.com/log" ) @@ -124,28 +125,14 @@ func drawWindow(win *gadgets.BasicWindow) { me.forgeMode = gadgets.NewOneLiner(grid, "Forge mode") me.forgeMode.SetText(me.forge.GetMode()) - grid.NextRow() // 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("git checkout", func() { + me.setBranchB = grid.NewButton("Switch mode (git checkout)", func() { win.Disable() defer win.Enable() - - if me.autoCreateBranches.Checked() { - argv.Force = true - } else { - argv.Force = false - } - - // do the checkout - if err := doCheckoutShared(); err != nil { - log.Info("checkout error:", err) - } else { - log.Info("checkout was ok") - } }) /* @@ -165,26 +152,41 @@ func drawWindow(win *gadgets.BasicWindow) { me.newBranch.AddText("master") me.newBranch.AddText("devel") me.newBranch.AddText(me.forge.Config.GetUsername()) - me.newBranch.SetText(me.forge.Config.GetUsername()) - me.argvCheckoutUser = true me.newBranch.Custom = func() { // toggle global values shared by the command line and the gui for doCheckout() - me.argvCheckoutUser = false - me.argvCheckoutDevel = false - me.argvCheckoutMaster = false switch me.newBranch.String() { case "master": - me.argvCheckoutMaster = true + forgeSwitchMode(forgepb.ForgeMode_MASTER) case "devel": - me.argvCheckoutDevel = true + forgeSwitchMode(forgepb.ForgeMode_DEVEL) default: - me.argvCheckoutUser = true + forgeSwitchMode(forgepb.ForgeMode_USER) } - log.Info("forged changed to default:", me.newBranch.String()) } - // checking this will automatically make the branches off of devel - me.autoCreateBranches = grid.NewCheckbox("auto create branches").SetChecked(true) + switch me.forge.Config.Mode { + case forgepb.ForgeMode_MASTER: + me.newBranch.SetText("master") + case forgepb.ForgeMode_DEVEL: + me.newBranch.SetText("devel") + case forgepb.ForgeMode_USER: + me.newBranch.SetText(me.forge.Config.GetUsername()) + default: + me.newBranch.SetText(me.forge.Config.GetUsername()) + } + + grid.NextRow() + + groupM := vbox.NewGroup("Mode Windows") + gridM := groupM.RawGrid() + me.modeReleaseW = gridM.NewButton("Release Window", func() { + log.Info("todo: move releaser here") + log.Info("for now, run guireleaser") + }) + me.modePatchW = gridM.NewButton("Patch Window", func() { + }) + me.modeUserW = gridM.NewButton("Hack Window", func() { + }) grid.NextRow() group2 := vbox.NewGroup("Repos") @@ -298,14 +300,14 @@ func drawWindow(win *gadgets.BasicWindow) { win.Disable() defer win.Enable() - mergeUserToDevel(me.autoCreateBranches.Checked()) + mergeUserToDevel(true) }) grid.NewButton("merge to master", func() { win.Disable() defer win.Enable() - mergeDevelToMaster(me.autoCreateBranches.Checked()) + mergeDevelToMaster(true) }) grid.NewButton("merge all", func() { @@ -321,7 +323,7 @@ func drawWindow(win *gadgets.BasicWindow) { log.Info("checkout was ok") } - mergeUserToDevel(me.autoCreateBranches.Checked()) + mergeUserToDevel(true) me.argvCheckoutUser = false me.argvCheckoutDevel = false @@ -332,7 +334,7 @@ func drawWindow(win *gadgets.BasicWindow) { log.Info("checkout was ok") } - mergeDevelToMaster(me.autoCreateBranches.Checked()) + mergeDevelToMaster(true) }) group3 := vbox.NewGroup("work in progress") @@ -359,6 +361,48 @@ func drawWindow(win *gadgets.BasicWindow) { }) } +// sets the text in the labels in the window +// and hides and shows the buttons +func forgeSwitchMode(newMode forgepb.ForgeMode) { + if newMode == me.forge.Config.Mode { + log.Info("you are already on", newMode.String()) + return + } + me.forge.Config.Mode = newMode + + me.forgeMode.SetText(me.forge.GetMode()) + + me.argvCheckoutUser = false + me.argvCheckoutDevel = false + me.argvCheckoutMaster = false + + me.modeReleaseW.Disable() + me.modePatchW.Disable() + me.modeUserW.Disable() + + switch newMode { + case forgepb.ForgeMode_MASTER: + me.argvCheckoutMaster = true + me.newBranch.SetText("master") + me.modeReleaseW.Enable() + case forgepb.ForgeMode_DEVEL: + me.argvCheckoutDevel = true + me.newBranch.SetText("devel") + me.modePatchW.Enable() + case forgepb.ForgeMode_USER: + me.newBranch.SetText(me.forge.Config.GetUsername()) + me.argvCheckoutUser = true + me.modeUserW.Enable() + default: + me.newBranch.SetText(me.forge.Config.GetUsername()) + me.argvCheckoutUser = true + me.modeUserW.Enable() + } + + me.forge.SetConfigSave(true) + me.forge.ConfigSave() +} + // this is the magic that generates a window directly from the protocol buffer func makeStandardReposGrid(pb *gitpb.Repos) *gitpb.ReposTable { t := pb.NewTable("testDirty") |
