1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-30 03:23:08 +03:00
start moving to new interface

WIP

WIP

WIP

WIP

WIP
This commit is contained in:
Jesse Duffield
2020-11-15 10:45:55 +11:00
parent 049849264e
commit 45939171ea
10 changed files with 411 additions and 34 deletions

View File

@ -21,13 +21,26 @@ import (
// list panel functions
// func (gui *Gui) getSelectedStatusNode() *models.StatusLineNode {
// selectedLine := gui.State.Panels.Files.SelectedLineIdx
// if selectedLine == -1 {
// return nil
// }
// return gui.State.StatusLineManager.GetItemAtIndex(selectedLine)
// }
func (gui *Gui) getSelectedFile() *models.File {
selectedLine := gui.State.Panels.Files.SelectedLineIdx
if selectedLine == -1 {
return nil
}
return gui.State.Files[selectedLine]
node := gui.State.StatusLineManager.GetItemAtIndex(selectedLine)
if node == nil {
return nil
}
return node.File
}
func (gui *Gui) selectFile(alreadySelected bool) error {
@ -131,7 +144,7 @@ func (gui *Gui) refreshFilesAndSubmodules() error {
// specific functions
func (gui *Gui) stagedFiles() []*models.File {
files := gui.State.Files
files := gui.State.StatusLineManager.GetAllFiles()
result := make([]*models.File, 0)
for _, file := range files {
if file.HasStagedChanges {
@ -142,7 +155,7 @@ func (gui *Gui) stagedFiles() []*models.File {
}
func (gui *Gui) trackedFiles() []*models.File {
files := gui.State.Files
files := gui.State.StatusLineManager.GetAllFiles()
result := make([]*models.File, 0, len(files))
for _, file := range files {
if file.Tracked {
@ -216,7 +229,7 @@ func (gui *Gui) handleFilePress() error {
}
func (gui *Gui) allFilesStaged() bool {
for _, file := range gui.State.Files {
for _, file := range gui.State.StatusLineManager.GetAllFiles() {
if file.HasUnstagedChanges {
return false
}
@ -450,8 +463,11 @@ func (gui *Gui) refreshStateFiles() error {
prevSelectedLineIdx := gui.State.Panels.Files.SelectedLineIdx
// get files to stage
files := gui.GitCommand.GetStatusFiles(commands.GetStatusFileOptions{})
gui.State.Files = gui.GitCommand.MergeStatusFiles(gui.State.Files, files, selectedFile)
noRenames := gui.State.StatusLineManager.TreeMode
files := gui.GitCommand.GetStatusFiles(commands.GetStatusFileOptions{NoRenames: noRenames})
gui.State.StatusLineManager.SetFiles(
gui.GitCommand.MergeStatusFiles(gui.State.StatusLineManager.GetAllFiles(), files, selectedFile),
)
if err := gui.fileWatcher.addFilesToFileWatcher(files); err != nil {
return err
@ -459,8 +475,9 @@ func (gui *Gui) refreshStateFiles() error {
// let's try to find our file again and move the cursor to that
if selectedFile != nil {
for idx, f := range gui.State.Files {
selectedFileHasMoved := f.Matches(selectedFile) && idx != prevSelectedLineIdx
for idx, node := range gui.State.StatusLineManager.GetAllItems() {
// TODO: check that this works
selectedFileHasMoved := node.File != nil && node.File.Matches(selectedFile) && idx != prevSelectedLineIdx
if selectedFileHasMoved {
gui.State.Panels.Files.SelectedLineIdx = idx
break
@ -468,7 +485,7 @@ func (gui *Gui) refreshStateFiles() error {
}
}
gui.refreshSelectedLine(gui.State.Panels.Files, len(gui.State.Files))
gui.refreshSelectedLine(gui.State.Panels.Files, gui.State.StatusLineManager.GetItemsLength())
return nil
}
@ -661,7 +678,7 @@ func (gui *Gui) openFile(filename string) error {
}
func (gui *Gui) anyFilesWithMergeConflicts() bool {
for _, file := range gui.State.Files {
for _, file := range gui.State.StatusLineManager.GetAllFiles() {
if file.HasMergeConflicts {
return true
}