diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2020-08-22 09:01:14 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2020-08-23 14:29:18 +1000 |
commit | 0ac402792bd184965441b6ac60d054ae7d0afd7b (patch) | |
tree | 6f41ef089c81ed2aeaab7e5824c11cc2f5defbbb /pkg/gui/list_context.go | |
parent | 974c6510b8fbda23b79f365efb18f2091cd757a6 (diff) |
allow getting the current item generically
Diffstat (limited to 'pkg/gui/list_context.go')
-rw-r--r-- | pkg/gui/list_context.go | 50 |
1 files changed, 21 insertions, 29 deletions
diff --git a/pkg/gui/list_context.go b/pkg/gui/list_context.go index e152affd1..344cee86b 100644 --- a/pkg/gui/list_context.go +++ b/pkg/gui/list_context.go @@ -21,7 +21,7 @@ type ListContext struct { OnFocus func() error OnFocusLost func() error OnClickSelectedItem func() error - GetItems func() []ListItem + GetSelectedItem func() ListItem GetPanelState func() IListPanelState Gui *Gui @@ -63,24 +63,6 @@ func (lc *ListContext) GetParentContext() Context { return lc.ParentContext } -func (lc *ListContext) GetSelectedItem() ListItem { - items := lc.GetItems() - - if len(items) == 0 { - return nil - } - - selectedLineIdx := lc.GetPanelState().GetSelectedLineIdx() - - if selectedLineIdx > len(items)-1 { - return nil - } - - item := items[selectedLineIdx] - - return item -} - func (lc *ListContext) GetSelectedItemId() string { item := lc.GetSelectedItem() @@ -287,7 +269,8 @@ func (gui *Gui) filesListContext() *ListContext { GetDisplayStrings: func() [][]string { return presentation.GetFileListDisplayStrings(gui.State.Files, gui.State.Diff.Ref) }, - Contains: CONTAINS_NOTHING, + Contains: CONTAINS_NOTHING, + GetSelectedItem: func() ListItem { return gui.getSelectedFile() }, } } @@ -304,7 +287,8 @@ func (gui *Gui) branchesListContext() *ListContext { GetDisplayStrings: func() [][]string { return presentation.GetBranchListDisplayStrings(gui.State.Branches, gui.State.ScreenMode != SCREEN_NORMAL, gui.State.Diff.Ref) }, - Contains: CONTAINS_COMMITS, + Contains: CONTAINS_COMMITS, + GetSelectedItem: func() ListItem { return gui.getSelectedBranch() }, } } @@ -322,7 +306,8 @@ func (gui *Gui) remotesListContext() *ListContext { GetDisplayStrings: func() [][]string { return presentation.GetRemoteListDisplayStrings(gui.State.Remotes, gui.State.Diff.Ref) }, - Contains: CONTAINS_BRANCHES, + Contains: CONTAINS_BRANCHES, + GetSelectedItem: func() ListItem { return gui.getSelectedRemote() }, } } @@ -339,7 +324,8 @@ func (gui *Gui) remoteBranchesListContext() *ListContext { GetDisplayStrings: func() [][]string { return presentation.GetRemoteBranchListDisplayStrings(gui.State.RemoteBranches, gui.State.Diff.Ref) }, - Contains: CONTAINS_COMMITS, + Contains: CONTAINS_COMMITS, + GetSelectedItem: func() ListItem { return gui.getSelectedRemoteBranch() }, } } @@ -356,7 +342,8 @@ func (gui *Gui) tagsListContext() *ListContext { GetDisplayStrings: func() [][]string { return presentation.GetTagListDisplayStrings(gui.State.Tags, gui.State.Diff.Ref) }, - Contains: CONTAINS_COMMITS, + Contains: CONTAINS_COMMITS, + GetSelectedItem: func() ListItem { return gui.getSelectedTag() }, } } @@ -374,7 +361,8 @@ func (gui *Gui) branchCommitsListContext() *ListContext { GetDisplayStrings: func() [][]string { return presentation.GetCommitListDisplayStrings(gui.State.Commits, gui.State.ScreenMode != SCREEN_NORMAL, gui.cherryPickedCommitShaMap(), gui.State.Diff.Ref) }, - Contains: CONTAINS_FILES, + Contains: CONTAINS_FILES, + GetSelectedItem: func() ListItem { return gui.getSelectedCommit() }, } } @@ -391,7 +379,8 @@ func (gui *Gui) reflogCommitsListContext() *ListContext { GetDisplayStrings: func() [][]string { return presentation.GetReflogCommitListDisplayStrings(gui.State.FilteredReflogCommits, gui.State.ScreenMode != SCREEN_NORMAL, gui.State.Diff.Ref) }, - Contains: CONTAINS_FILES, + Contains: CONTAINS_FILES, + GetSelectedItem: func() ListItem { return gui.getSelectedReflogCommit() }, } } @@ -408,7 +397,8 @@ func (gui *Gui) subCommitsListContext() *ListContext { GetDisplayStrings: func() [][]string { return presentation.GetCommitListDisplayStrings(gui.State.SubCommits, gui.State.ScreenMode != SCREEN_NORMAL, gui.cherryPickedCommitShaMap(), gui.State.Diff.Ref) }, - Contains: CONTAINS_COMMITS, + Contains: CONTAINS_COMMITS, + GetSelectedItem: func() ListItem { return gui.getSelectedSubCommit() }, } } @@ -425,7 +415,8 @@ func (gui *Gui) stashListContext() *ListContext { GetDisplayStrings: func() [][]string { return presentation.GetStashEntryListDisplayStrings(gui.State.StashEntries, gui.State.Diff.Ref) }, - Contains: CONTAINS_FILES, + Contains: CONTAINS_FILES, + GetSelectedItem: func() ListItem { return gui.getSelectedStashEntry() }, } } @@ -443,7 +434,8 @@ func (gui *Gui) commitFilesListContext() *ListContext { GetDisplayStrings: func() [][]string { return presentation.GetCommitFileListDisplayStrings(gui.State.CommitFiles, gui.State.Diff.Ref) }, - Contains: CONTAINS_NOTHING, + Contains: CONTAINS_NOTHING, + GetSelectedItem: func() ListItem { return gui.getSelectedCommitFile() }, } } |