MCPcopy Create free account
hub / github.com/capable-average/tagTonic / handleFileBrowserKeys

Method handleFileBrowserKeys

tui/handlers.go:58–146  ·  view source on GitHub ↗
(key string)

Source from the content-addressed store, hash-verified

56}
57
58func (a *App) handleFileBrowserKeys(key string) tea.Cmd {
59 switch key {
60 case "up", "k":
61 a.fileBrowser.MoveUp()
62 case "down", "j":
63 a.fileBrowser.MoveDown()
64 case "pgup":
65 a.fileBrowser.PageUp(10)
66 case "pgdn":
67 a.fileBrowser.PageDown(10)
68 case "enter":
69 // In batch mode, pressing enter should open batch tag editor (or navigate directories)
70 if a.fileBrowser.IsBatchMode() {
71 if err := a.fileBrowser.Navigate(); err != nil {
72 a.setError("Navigation failed", err.Error())
73 } else {
74 // If it's a file, treat it as a batch selection and open bulk editor
75 if file := a.fileBrowser.GetSelectedFile(); file != nil {
76 // Auto-select the file if not already selected
77 if !a.fileBrowser.IsSelected(file.Path) {
78 a.fileBrowser.ToggleSelection()
79 }
80 // Open bulk tag editor
81 a.currentMode = BatchTagEditMode
82 a.bulkTagEditor.Reset()
83 a.loadCommonTagsForBulk()
84 return a.setStatus("Batch tag editor - edit fields with Enter, save with 's'", 3)
85 }
86 }
87 } else {
88 // Normal mode - navigate or load file
89 if err := a.fileBrowser.Navigate(); err != nil {
90 a.setError("Navigation failed", err.Error())
91 } else {
92 if file := a.fileBrowser.GetSelectedFile(); file != nil {
93 return a.loadFile(file)
94 }
95 }
96 }
97 case "tab":
98 if a.currentFile != nil && !a.fileBrowser.IsBatchMode() {
99 a.currentMode = TagEditMode
100 } else if a.fileBrowser.IsBatchMode() && len(a.fileBrowser.GetSelectedFiles()) > 0 {
101 // Enter batch tag edit mode
102 a.currentMode = BatchTagEditMode
103 a.bulkTagEditor.Reset()
104 a.loadCommonTagsForBulk()
105 return a.setStatus("Batch tag editor - edit fields with Enter, save with 's'", 3)
106 }
107 case "/":
108 a.currentMode = SearchMode
109 case " ", "space":
110 if a.fileBrowser.IsBatchMode() {
111 a.fileBrowser.ToggleSelection()
112 selectedCount := len(a.fileBrowser.GetSelectedFiles())
113 return a.setStatus(fmt.Sprintf("Selected: %d file(s)", selectedCount), 1)
114 }
115 case "b":

Callers 1

handleKeyPressMethod · 0.95

Calls 15

setErrorMethod · 0.95
loadCommonTagsForBulkMethod · 0.95
setStatusMethod · 0.95
loadFileMethod · 0.95
batchFetchBothMethod · 0.95
fetchBothMethod · 0.95
batchFetchLyricsMethod · 0.95
fetchLyricsOnlyMethod · 0.95
batchFetchArtworkMethod · 0.95
fetchArtworkOnlyMethod · 0.95
MoveUpMethod · 0.80
MoveDownMethod · 0.80

Tested by

no test coverage detected