diff options
| author | Grail Finder <wohilas@gmail.com> | 2025-11-21 08:23:14 +0300 |
|---|---|---|
| committer | Grail Finder <wohilas@gmail.com> | 2025-11-21 08:23:14 +0300 |
| commit | dc1d1eba0c6a7fa55e336c10c6e53046a75473ae (patch) | |
| tree | a8390b8c8f72f8d55718c6231bc3dea93a07b8df | |
| parent | e8413ce613a71b6ec0b62b928a1179738655b49b (diff) | |
Fix: show last attached img on ctrl+j
| -rw-r--r-- | llm.go | 18 | ||||
| -rw-r--r-- | tables.go | 2 | ||||
| -rw-r--r-- | tui.go | 32 |
3 files changed, 20 insertions, 32 deletions
@@ -9,29 +9,17 @@ import ( ) var imageAttachmentPath string // Global variable to track image attachment for next message +var lastImg string // for ctrl+j -// SetImageAttachment sets an image to be attached to the next message sent to the LLM and updates UI +// SetImageAttachment sets an image to be attached to the next message sent to the LLM func SetImageAttachment(imagePath string) { imageAttachmentPath = imagePath - // Update the UI to show image is attached (call function from tui.go) - // UpdateImageAttachmentStatus(imagePath) -} - -// SetImageAttachmentWithoutUI sets an image to be attached without UI updates (for internal use where UI updates might cause hangs) -func SetImageAttachmentWithoutUI(imagePath string) { - imageAttachmentPath = imagePath + lastImg = imagePath } // ClearImageAttachment clears any pending image attachment and updates UI func ClearImageAttachment() { imageAttachmentPath = "" - // Update the UI to clear image attachment status (call function from tui.go) - // UpdateImageAttachmentStatus("") -} - -// ClearImageAttachmentWithoutUI clears any pending image attachment without UI updates -func ClearImageAttachmentWithoutUI() { - imageAttachmentPath = "" } type ChunkParser interface { @@ -838,7 +838,7 @@ func makeFilePicker() *tview.Flex { // For image files, set it as an attachment for the next LLM message // Use the version without UI updates to avoid hangs in event handlers logger.Info("setting image", "file", itemText) - SetImageAttachmentWithoutUI(filePath) + SetImageAttachment(filePath) logger.Info("after setting image", "file", itemText) statusView.SetText("Image attached: " + filePath + " (will be sent with next message)") logger.Info("after setting text", "file", itemText) @@ -32,18 +32,18 @@ var ( indexPickWindow *tview.InputField renameWindow *tview.InputField // pages - historyPage = "historyPage" - agentPage = "agentPage" - editMsgPage = "editMsgPage" - indexPage = "indexPage" - helpPage = "helpPage" - renamePage = "renamePage" - RAGPage = "RAGPage" - propsPage = "propsPage" - codeBlockPage = "codeBlockPage" - imgPage = "imgPage" + historyPage = "historyPage" + agentPage = "agentPage" + editMsgPage = "editMsgPage" + indexPage = "indexPage" + helpPage = "helpPage" + renamePage = "renamePage" + RAGPage = "RAGPage" + propsPage = "propsPage" + codeBlockPage = "codeBlockPage" + imgPage = "imgPage" filePickerPage = "filePicker" - exportDir = "chat_exports" + exportDir = "chat_exports" // help text helpText = ` [yellow]Esc[white]: send msg @@ -434,7 +434,7 @@ func init() { }) flex = tview.NewFlex().SetDirection(tview.FlexRow). AddItem(textView, 0, 40, false). - AddItem(textArea, 0, 10, true). // Restore original height + AddItem(textArea, 0, 10, true). // Restore original height AddItem(position, 0, 2, false) editArea = tview.NewTextArea(). SetPlaceholder("Replace msg...") @@ -814,18 +814,18 @@ func init() { } if event.Key() == tcell.KeyCtrlJ { // show image - check for attached image first, then fall back to agent image - if imageAttachmentPath != "" { + if lastImg != "" { // Load the attached image - file, err := os.Open(imageAttachmentPath) + file, err := os.Open(lastImg) if err != nil { - logger.Error("failed to open attached image", "path", imageAttachmentPath, "error", err) + logger.Error("failed to open attached image", "path", lastImg, "error", err) // Fall back to showing agent image loadImage() } else { defer file.Close() img, _, err := image.Decode(file) if err != nil { - logger.Error("failed to decode attached image", "path", imageAttachmentPath, "error", err) + logger.Error("failed to decode attached image", "path", lastImg, "error", err) // Fall back to showing agent image loadImage() } else { |
