summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorİbrahim Serdar Açıkgöz <serdaracikgoz86@gmail.com>2018-12-07 18:29:44 +0300
committerİbrahim Serdar Açıkgöz <serdaracikgoz86@gmail.com>2018-12-07 18:29:44 +0300
commit9f7dbcb8c15a98176c640237b860c7a9fe9b2cd9 (patch)
tree22faf24f437536a12f53aa19f5bf095e8b9e2b1e
parenttie stashes to repoistories (diff)
parentadded initial status layout (diff)
downloadgitbatch-9f7dbcb8c15a98176c640237b860c7a9fe9b2cd9.tar.gz
Merge remote-tracking branch 'origin/feature_status' into develop
-rw-r--r--pkg/gui/statusview.go137
1 files changed, 137 insertions, 0 deletions
diff --git a/pkg/gui/statusview.go b/pkg/gui/statusview.go
new file mode 100644
index 0000000..e33e4c5
--- /dev/null
+++ b/pkg/gui/statusview.go
@@ -0,0 +1,137 @@
+package gui
+
+import (
+ "fmt"
+
+ "github.com/jroimartin/gocui"
+)
+
+var (
+ statusHeaderViewFeature = viewFeature{Name: "status-header", Title: " Status Header "}
+ statusViewFeature = viewFeature{Name: "status", Title: " Status "}
+ stageViewFeature = viewFeature{Name: "staged", Title: " Staged "}
+ unstageViewFeature = viewFeature{Name: "unstaged", Title: " Unstaged "}
+ stashViewFeature = viewFeature{Name: "stash", Title: " Stash "}
+)
+
+// open the status layout
+func (gui *Gui) openStatusView(g *gocui.Gui, v *gocui.View) error {
+ gui.openStatusHeaderView(g)
+ gui.openStageView(g)
+ gui.openUnStagedView(g)
+ gui.openStashView(g)
+ return nil
+}
+
+// iteration handler for the status layout
+func (gui *Gui) nextStatusView(g *gocui.Gui, v *gocui.View) error {
+ var err error
+ return err
+}
+
+// header og the status layout
+func (gui *Gui) openStatusHeaderView(g *gocui.Gui) error {
+ maxX, _ := g.Size()
+ entity := gui.getSelectedRepository()
+ v, err := g.SetView(statusHeaderViewFeature.Name, 6, 2, maxX-6, 4)
+ if err != nil {
+ if err != gocui.ErrUnknownView {
+ return err
+ }
+ fmt.Fprintln(v, entity.AbsPath)
+ // v.Frame = false
+ v.Wrap = true
+ }
+ gui.updateKeyBindingsView(g, statusHeaderViewFeature.Name)
+ if _, err := g.SetCurrentView(statusHeaderViewFeature.Name); err != nil {
+ return err
+ }
+ return nil
+}
+
+// staged view
+func (gui *Gui) openStageView(g *gocui.Gui) error {
+ maxX, maxY := g.Size()
+
+ v, err := g.SetView(stageViewFeature.Name, 6, 5, maxX/2-1, int(0.75*float32(maxY))-1)
+ if err != nil {
+ if err != gocui.ErrUnknownView {
+ return err
+ }
+ v.Title = stageViewFeature.Title
+ v.Wrap = true
+ }
+ return nil
+}
+
+// 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
+ }
+ return nil
+}
+
+
+// stash view
+func (gui *Gui) openStashView(g *gocui.Gui) error {
+ maxX, maxY := g.Size()
+
+ v, err := g.SetView(stashViewFeature.Name, 6, int(0.75*float32(maxY)), maxX-6, maxY-3)
+ if err != nil {
+ if err != gocui.ErrUnknownView {
+ return err
+ }
+ v.Title = stashViewFeature.Title
+ v.Wrap = true
+ }
+ return nil
+}
+
+// close the opened stat views
+func (gui *Gui) closeStatusView(g *gocui.Gui, v *gocui.View) error {
+ if err := g.DeleteView(stashViewFeature.Name); err != nil {
+ return err
+ }
+ if err := g.DeleteView(unstageViewFeature.Name); err != nil {
+ return err
+ }
+ if err := g.DeleteView(stageViewFeature.Name); err != nil {
+ return err
+ }
+ if err := g.DeleteView(statusHeaderViewFeature.Name); err != nil {
+ return err
+ }
+ if _, err := g.SetCurrentView(mainViewFeature.Name); err != nil {
+ return err
+ }
+ gui.updateKeyBindingsView(g, mainViewFeature.Name)
+ return nil
+}
+
+ // {
+ // View: statusHeaderViewFeature.Name,
+ // Key: 'c',
+ // Modifier: gocui.ModNone,
+ // Handler: gui.closeStatusView,
+ // Display: "c",
+ // Description: "close/cancel",
+ // Vital: true,
+ // },
+
+ // {
+ // View: mainViewFeature.Name,
+ // Key: 't',
+ // Modifier: gocui.ModNone,
+ // Handler: gui.openStatusView,
+ // Display: "t",
+ // Description: "Open Status",
+ // Vital: true,
+ // }, \ No newline at end of file