// 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() { }