105 lines
2.3 KiB
Go
105 lines
2.3 KiB
Go
// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
|
|
// Use of this source code is governed by the GPL 3.0
|
|
|
|
package main
|
|
|
|
// shows a window of the 'found' repos
|
|
|
|
import (
|
|
"go.wit.com/lib/gadgets"
|
|
"go.wit.com/lib/protobuf/gitpb"
|
|
"go.wit.com/log"
|
|
|
|
"go.wit.com/gui"
|
|
)
|
|
|
|
type foundWindow struct {
|
|
win *gadgets.BasicWindow // the patches window
|
|
stack *gui.Node // the top box set as vertical
|
|
grid *gui.Node // the list of available patches
|
|
reason *gadgets.BasicEntry // the name of the patchset
|
|
submitB *gui.Node // the submit patchet button
|
|
psetgrid *gui.Node // the list of each patchset
|
|
totalOL *gadgets.OneLiner
|
|
dirtyOL *gadgets.OneLiner
|
|
readonlyOL *gadgets.OneLiner
|
|
rw *gadgets.OneLiner
|
|
// checkB *gui.Node
|
|
}
|
|
|
|
func (r *foundWindow) Hidden() bool {
|
|
return r.win.Hidden()
|
|
}
|
|
|
|
func (r *foundWindow) Toggle() {
|
|
if r.Hidden() {
|
|
r.Show()
|
|
} else {
|
|
r.Hide()
|
|
}
|
|
}
|
|
|
|
func (r *foundWindow) Show() {
|
|
r.win.Show()
|
|
}
|
|
|
|
func (r *foundWindow) Hide() {
|
|
r.win.Hide()
|
|
}
|
|
|
|
// you can only have one of these
|
|
func (r *foundWindow) initWindow() {
|
|
r.win = gadgets.RawBasicWindow("Found Repos")
|
|
r.win.Make()
|
|
|
|
r.stack = r.win.Box().NewBox("bw vbox", false)
|
|
// me.reposwin.Draw()
|
|
r.win.Custom = func() {
|
|
log.Warn("Found Window close. setting hidden=true")
|
|
// sets the hidden flag to false so Toggle() works
|
|
r.win.Hide()
|
|
}
|
|
group1 := r.stack.NewGroup("Repo Summary")
|
|
group1.NewButton("dirty", func() {
|
|
log.Info("find dirty here")
|
|
me.found = new(gitpb.Repos)
|
|
findDirty()
|
|
me.forge.PrintHumanTable(me.found)
|
|
})
|
|
group1.NewButton("all", func() {
|
|
log.Info("find all here")
|
|
me.found = new(gitpb.Repos)
|
|
findAll()
|
|
me.forge.PrintHumanTable(me.found)
|
|
})
|
|
|
|
r.grid = r.stack.RawGrid()
|
|
|
|
group1.NewButton("show", func() {
|
|
r.listRepos()
|
|
})
|
|
}
|
|
|
|
func (r *foundWindow) listRepos() {
|
|
all := me.found.All()
|
|
for all.Scan() {
|
|
repo := all.Next()
|
|
r.addRepo(repo)
|
|
}
|
|
}
|
|
|
|
func (r *foundWindow) addRepo(repo *gitpb.Repo) {
|
|
r.grid.NewButton("View", func() {
|
|
})
|
|
r.grid.NewLabel(repo.GetGoPath())
|
|
r.grid.NewLabel(repo.GetMasterVersion())
|
|
r.grid.NewLabel(repo.GetDevelVersion())
|
|
r.grid.NewLabel(repo.GetUserVersion())
|
|
r.grid.NewLabel(repo.GetCurrentBranchName())
|
|
r.grid.NextRow()
|
|
}
|
|
|
|
// will update this from the current state of the protobuf
|
|
func (r *foundWindow) Update() {
|
|
}
|