diff --git a/windowRepos.go b/windowRepos.go index 97e5ade..bc84893 100644 --- a/windowRepos.go +++ b/windowRepos.go @@ -65,6 +65,35 @@ func makeRepoView() *repoWindow { return r } +func (r *repoWindow) reInitForge() { + // re-read everything + me.forge = forgepb.Init() + me.found = new(gitpb.Repos) + me.repos = makeRepoView() + me.repos.Show() + + // update the protobuf pointers + loop := me.forge.Repos.All() + for loop.Scan() { + repo := loop.Next() + vrepo := me.repos.View.FindByPath(repo.GetGoPath()) + if vrepo != nil { + vrepo.UpdatePb(repo) + } + } + + // now update the gui + vloop := me.repos.View.ReposSortByName() + for vloop.Scan() { + var repo *repolist.RepoRow + repo = vloop.Repo() + repo.NewScan() + } + + i, s := me.repos.View.ScanRepositories() + log.Info("re-scanning done", i, "repos in", s) +} + func (r *repoWindow) repoMenu() *gui.Node { // reposbox.SetExpand(false) group1 := r.box.NewGroup("Filter:") @@ -98,29 +127,7 @@ func (r *repoWindow) repoMenu() *gui.Node { box2.NewButton("test master merge", func() { r.Disable() r.mergeAllDevelToMain() - // re-read everything - me.forge = forgepb.Init() - me.found = new(gitpb.Repos) - me.repos = makeRepoView() - me.repos.Show() - - // update the protobuf pointers - loop := me.forge.Repos.All() - for loop.Scan() { - repo := loop.Next() - vrepo := me.repos.View.FindByPath(repo.GetGoPath()) - if vrepo != nil { - vrepo.UpdatePb(repo) - } - } - - // now update the gui - vloop := me.repos.View.ReposSortByName() - for vloop.Scan() { - var repo *repolist.RepoRow - repo = vloop.Repo() - repo.NewScan() - } + r.reInitForge() r.Enable() }) @@ -138,10 +145,9 @@ func (r *repoWindow) repoMenu() *gui.Node { } } }) - box2.NewButton("scan now", func() { + box2.NewButton("re-init forge", func() { log.Info("re-scanning now") - i, s := me.repos.View.ScanRepositories() - log.Info("re-scanning done", i, "repos in", s) + r.reInitForge() }) return box2