diff options
Diffstat (limited to 'pkg/gui/unstagedview.go')
| -rw-r--r-- | pkg/gui/unstagedview.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/pkg/gui/unstagedview.go b/pkg/gui/unstagedview.go new file mode 100644 index 0000000..5ee25a7 --- /dev/null +++ b/pkg/gui/unstagedview.go @@ -0,0 +1,50 @@ +package gui + +import ( + "fmt" + + "github.com/isacikgoz/gitbatch/pkg/git" + "github.com/jroimartin/gocui" +) + +// not staged view +func (gui *Gui) openUnStagedView(g *gocui.Gui) error { + maxX, maxY := g.Size() + + v, err := g.SetView(unstageViewFeature.Name, maxX/2+1, 5, maxX-6, int(0.75*float32(maxY))-1) + if err != nil { + if err != gocui.ErrUnknownView { + return err + } + v.Title = unstageViewFeature.Title + v.Wrap = true + } + entity := gui.getSelectedRepository() + if err := refreshUnstagedView(g, entity); err != nil { + return err + } + return nil +} + +// refresh the main view and re-render the repository representations +func refreshUnstagedView(g *gocui.Gui, entity *git.RepoEntity) error { + stageView, err := g.View(unstageViewFeature.Name) + if err != nil { + return err + } + stageView.Clear() + _, cy := stageView.Cursor() + _, oy := stageView.Origin() + _, files, err := generateFileLists(entity) + if err != nil { + return err + } + for i, file := range files { + var prefix string + if i == cy+oy { + prefix = prefix + selectionIndicator + } + fmt.Fprintf(stageView, "%s%s%s %s\n", prefix, green.Sprint(string(file.X)), red.Sprint(string(file.Y)), file.Name) + } + return nil +}
\ No newline at end of file |
