summaryrefslogtreecommitdiff
path: root/doGui.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-03-02 04:13:10 -0600
committerJeff Carr <[email protected]>2025-03-02 04:13:10 -0600
commitc5b6539c3b3b5c2ad3ba3eb893eefdf18b68a3cb (patch)
tree10726dfb30f2fe4c15f8c27755d0996e433155ff /doGui.go
parentd953ae8db666cf4f88d330b17f85af77ba03f8b9 (diff)
clearer gui. hopefully
Diffstat (limited to 'doGui.go')
-rw-r--r--doGui.go104
1 files changed, 74 insertions, 30 deletions
diff --git a/doGui.go b/doGui.go
index ec2fe79..277c9fe 100644
--- a/doGui.go
+++ b/doGui.go
@@ -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")