summaryrefslogtreecommitdiff
path: root/pkg/gui/stagedview.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/gui/stagedview.go')
-rw-r--r--pkg/gui/stagedview.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/pkg/gui/stagedview.go b/pkg/gui/stagedview.go
index e3684f0..bae80bd 100644
--- a/pkg/gui/stagedview.go
+++ b/pkg/gui/stagedview.go
@@ -30,6 +30,41 @@ func (gui *Gui) openStageView(g *gocui.Gui) error {
return nil
}
+func (gui *Gui) resetChanges(g *gocui.Gui, v *gocui.View) error {
+ entity := gui.getSelectedRepository()
+ files, _, err := generateFileLists(entity)
+ if err != nil {
+ return err
+ }
+ if len(files) <= 0 {
+ return nil
+ }
+ _, cy := v.Cursor()
+ _, oy := v.Origin()
+ if err := files[cy+oy].Reset(git.ResetOptions{
+
+ }); err != nil {
+ return err
+ }
+ if err := refreshAllStatusView(g, entity); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (gui *Gui) resetAllChanges(g *gocui.Gui, v *gocui.View) error {
+ entity := gui.getSelectedRepository()
+ if err := entity.ResetAll(git.ResetOptions{
+
+ }); err != nil {
+ return err
+ }
+ if err := refreshAllStatusView(g, entity); err != nil {
+ return err
+ }
+ return nil
+}
+
// refresh the main view and re-render the repository representations
func refreshStagedView(g *gocui.Gui, entity *git.RepoEntity) error {
stageView, err := g.View(stageViewFeature.Name)