summaryrefslogtreecommitdiffstats
path: root/pkg/gui
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2020-03-28 09:57:36 +1100
committerJesse Duffield <jessedduffield@gmail.com>2020-03-28 11:59:45 +1100
commit906a49049e2c10886fbf7f97ffabddd78b975f0e (patch)
tree880ced3f910b98e206ec9aac67b1df44606a8c13 /pkg/gui
parentc1a4bd0482ab06279700fa95404131ef24a2297d (diff)
smart refreshing files
Diffstat (limited to 'pkg/gui')
-rw-r--r--pkg/gui/commit_files_panel.go2
-rw-r--r--pkg/gui/credentials_panel.go14
-rw-r--r--pkg/gui/discard_changes_menu_panel.go4
-rw-r--r--pkg/gui/file_watching.go7
-rw-r--r--pkg/gui/files_panel.go10
-rw-r--r--pkg/gui/merge_panel.go4
-rw-r--r--pkg/gui/staging_panel.go2
-rw-r--r--pkg/gui/view_helpers.go4
-rw-r--r--pkg/gui/workspace_reset_options_panel.go12
9 files changed, 22 insertions, 37 deletions
diff --git a/pkg/gui/commit_files_panel.go b/pkg/gui/commit_files_panel.go
index 4d4cdcbbb..899b3137f 100644
--- a/pkg/gui/commit_files_panel.go
+++ b/pkg/gui/commit_files_panel.go
@@ -67,7 +67,7 @@ func (gui *Gui) handleCheckoutCommitFile(g *gocui.Gui, v *gocui.View) error {
return gui.createErrorPanel(gui.g, err.Error())
}
- return gui.refreshFiles()
+ return gui.refreshSidePanels(refreshOptions{mode: ASYNC})
}
func (gui *Gui) handleDiscardOldFileChange(g *gocui.Gui, v *gocui.View) error {
diff --git a/pkg/gui/credentials_panel.go b/pkg/gui/credentials_panel.go
index 468035fd8..e1b918e56 100644
--- a/pkg/gui/credentials_panel.go
+++ b/pkg/gui/credentials_panel.go
@@ -36,19 +36,9 @@ func (gui *Gui) waitForPassUname(g *gocui.Gui, currentView *gocui.View, passOrUn
func (gui *Gui) handleSubmitCredential(g *gocui.Gui, v *gocui.View) error {
message := gui.trimmedContent(v)
gui.credentials <- message
- err := gui.refreshFiles()
- if err != nil {
- return err
- }
v.Clear()
- err = v.SetCursor(0, 0)
- if err != nil {
- return err
- }
- _, err = g.SetViewOnBottom("credentials")
- if err != nil {
- return err
- }
+ _ = v.SetCursor(0, 0)
+ _, _ = g.SetViewOnBottom("credentials")
nextView, err := gui.g.View("confirmation")
if err != nil {
nextView = gui.getFilesView()
diff --git a/pkg/gui/discard_changes_menu_panel.go b/pkg/gui/discard_changes_menu_panel.go
index 761551a6a..46722e1e5 100644
--- a/pkg/gui/discard_changes_menu_panel.go
+++ b/pkg/gui/discard_changes_menu_panel.go
@@ -20,7 +20,7 @@ func (gui *Gui) handleCreateDiscardMenu(g *gocui.Gui, v *gocui.View) error {
if err := gui.GitCommand.DiscardAllFileChanges(file); err != nil {
return err
}
- return gui.refreshFiles()
+ return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []int{FILES}})
},
},
}
@@ -33,7 +33,7 @@ func (gui *Gui) handleCreateDiscardMenu(g *gocui.Gui, v *gocui.View) error {
return err
}
- return gui.refreshFiles()
+ return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []int{FILES}})
},
})
}
diff --git a/pkg/gui/file_watching.go b/pkg/gui/file_watching.go
index 47d426c87..7e5e20a76 100644
--- a/pkg/gui/file_watching.go
+++ b/pkg/gui/file_watching.go
@@ -132,12 +132,7 @@ func (gui *Gui) watchFilesForChanges() {
}
// only refresh if we're not already
if !gui.State.IsRefreshingFiles {
- if err := gui.refreshFiles(); err != nil {
- err = gui.createErrorPanel(gui.g, err.Error())
- if err != nil {
- gui.Log.Error(err)
- }
- }
+ gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []int{FILES}})
}
// watch for errors
diff --git a/pkg/gui/files_panel.go b/pkg/gui/files_panel.go
index bee4cc6f8..21195957e 100644
--- a/pkg/gui/files_panel.go
+++ b/pkg/gui/files_panel.go
@@ -194,7 +194,7 @@ func (gui *Gui) handleFilePress(g *gocui.Gui, v *gocui.View) error {
return gui.createErrorPanel(gui.g, err.Error())
}
- if err := gui.refreshFiles(); err != nil {
+ if err := gui.refreshSidePanels(refreshOptions{scope: []int{FILES}}); err != nil {
return err
}
@@ -229,7 +229,7 @@ func (gui *Gui) handleStageAll(g *gocui.Gui, v *gocui.View) error {
_ = gui.createErrorPanel(g, err.Error())
}
- if err := gui.refreshFiles(); err != nil {
+ if err := gui.refreshSidePanels(refreshOptions{scope: []int{FILES}}); err != nil {
return err
}
@@ -252,7 +252,7 @@ func (gui *Gui) handleIgnoreFile(g *gocui.Gui, v *gocui.View) error {
if err := gui.GitCommand.RemoveTrackedFiles(file.Name); err != nil {
return err
}
- return gui.refreshFiles()
+ return gui.refreshSidePanels(refreshOptions{scope: []int{FILES}})
}, nil)
}
@@ -260,7 +260,7 @@ func (gui *Gui) handleIgnoreFile(g *gocui.Gui, v *gocui.View) error {
return gui.createErrorPanel(gui.g, err.Error())
}
- return gui.refreshFiles()
+ return gui.refreshSidePanels(refreshOptions{scope: []int{FILES}})
}
func (gui *Gui) handleWIPCommitPress(g *gocui.Gui, filesView *gocui.View) error {
@@ -362,7 +362,7 @@ func (gui *Gui) handleFileOpen(g *gocui.Gui, v *gocui.View) error {
}
func (gui *Gui) handleRefreshFiles(g *gocui.Gui, v *gocui.View) error {
- return gui.refreshFiles()
+ return gui.refreshSidePanels(refreshOptions{scope: []int{FILES}})
}
func (gui *Gui) refreshStateFiles() error {
diff --git a/pkg/gui/merge_panel.go b/pkg/gui/merge_panel.go
index e94d5541c..fa238ccb7 100644
--- a/pkg/gui/merge_panel.go
+++ b/pkg/gui/merge_panel.go
@@ -261,7 +261,7 @@ func (gui *Gui) renderMergeOptions() error {
func (gui *Gui) handleEscapeMerge(g *gocui.Gui, v *gocui.View) error {
gui.State.Panels.Merging.EditHistory = stack.New()
- if err := gui.refreshFiles(); err != nil {
+ if err := gui.refreshSidePanels(refreshOptions{scope: []int{FILES}}); err != nil {
return err
}
// it's possible this method won't be called from the merging view so we need to
@@ -276,7 +276,7 @@ func (gui *Gui) handleCompleteMerge() error {
if err := gui.stageSelectedFile(gui.g); err != nil {
return err
}
- if err := gui.refreshFiles(); err != nil {
+ if err := gui.refreshSidePanels(refreshOptions{scope: []int{FILES}}); err != nil {
return err
}
// if we got conflicts after unstashing, we don't want to call any git
diff --git a/pkg/gui/staging_panel.go b/pkg/gui/staging_panel.go
index 08a39cb90..77afcda86 100644
--- a/pkg/gui/staging_panel.go
+++ b/pkg/gui/staging_panel.go
@@ -151,7 +151,7 @@ func (gui *Gui) applySelection(reverse bool) error {
state.SelectMode = LINE
}
- if err := gui.refreshFiles(); err != nil {
+ if err := gui.refreshSidePanels(refreshOptions{scope: []int{FILES}}); err != nil {
return err
}
if err := gui.refreshStagingPanel(false, -1); err != nil {
diff --git a/pkg/gui/view_helpers.go b/pkg/gui/view_helpers.go
index fbf8ad847..60d548bcb 100644
--- a/pkg/gui/view_helpers.go
+++ b/pkg/gui/view_helpers.go
@@ -22,6 +22,7 @@ const (
REFLOG
TAGS
REMOTES
+ STATUS
)
const (
@@ -55,7 +56,7 @@ func (gui *Gui) refreshSidePanels(options refreshOptions) error {
f := func() {
var scopeMap map[int]bool
if len(options.scope) == 0 {
- scopeMap = intArrToMap([]int{COMMITS, BRANCHES, FILES, STASH, REFLOG, TAGS, REMOTES})
+ scopeMap = intArrToMap([]int{COMMITS, BRANCHES, FILES, STASH, REFLOG, TAGS, REMOTES, STATUS})
} else {
scopeMap = intArrToMap(options.scope)
}
@@ -82,7 +83,6 @@ func (gui *Gui) refreshSidePanels(options refreshOptions) error {
}
wg.Done()
}()
-
}
if scopeMap[STASH] {
diff --git a/pkg/gui/workspace_reset_options_panel.go b/pkg/gui/workspace_reset_options_panel.go
index f4ceb633c..37928c0aa 100644
--- a/pkg/gui/workspace_reset_options_panel.go
+++ b/pkg/gui/workspace_reset_options_panel.go
@@ -19,7 +19,7 @@ func (gui *Gui) handleCreateResetMenu(g *gocui.Gui, v *gocui.View) error {
return gui.createErrorPanel(gui.g, err.Error())
}
- return gui.refreshFiles()
+ return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []int{FILES}})
},
},
{
@@ -32,7 +32,7 @@ func (gui *Gui) handleCreateResetMenu(g *gocui.Gui, v *gocui.View) error {
return gui.createErrorPanel(gui.g, err.Error())
}
- return gui.refreshFiles()
+ return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []int{FILES}})
},
},
{
@@ -45,7 +45,7 @@ func (gui *Gui) handleCreateResetMenu(g *gocui.Gui, v *gocui.View) error {
return gui.createErrorPanel(gui.g, err.Error())
}
- return gui.refreshFiles()
+ return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []int{FILES}})
},
},
{
@@ -58,7 +58,7 @@ func (gui *Gui) handleCreateResetMenu(g *gocui.Gui, v *gocui.View) error {
return gui.createErrorPanel(gui.g, err.Error())
}
- return gui.refreshFiles()
+ return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []int{FILES}})
},
},
{
@@ -71,7 +71,7 @@ func (gui *Gui) handleCreateResetMenu(g *gocui.Gui, v *gocui.View) error {
return gui.createErrorPanel(gui.g, err.Error())
}
- return gui.refreshFiles()
+ return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []int{FILES}})
},
},
{
@@ -84,7 +84,7 @@ func (gui *Gui) handleCreateResetMenu(g *gocui.Gui, v *gocui.View) error {
return gui.createErrorPanel(gui.g, err.Error())
}
- return gui.refreshFiles()
+ return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []int{FILES}})
},
},
}