summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2025-11-21 08:23:14 +0300
committerGrail Finder <wohilas@gmail.com>2025-11-21 08:23:14 +0300
commitdc1d1eba0c6a7fa55e336c10c6e53046a75473ae (patch)
treea8390b8c8f72f8d55718c6231bc3dea93a07b8df
parente8413ce613a71b6ec0b62b928a1179738655b49b (diff)
Fix: show last attached img on ctrl+j
-rw-r--r--llm.go18
-rw-r--r--tables.go2
-rw-r--r--tui.go32
3 files changed, 20 insertions, 32 deletions
diff --git a/llm.go b/llm.go
index f5cc4d5..90e63de 100644
--- a/llm.go
+++ b/llm.go
@@ -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 {
diff --git a/tables.go b/tables.go
index 3e58e72..46faec3 100644
--- a/tables.go
+++ b/tables.go
@@ -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)
diff --git a/tui.go b/tui.go
index 3345968..32cc550 100644
--- a/tui.go
+++ b/tui.go
@@ -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 {