diff --git a/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ChatToolWindowTabPanel.java b/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ChatToolWindowTabPanel.java
index 1a68b0ce..93950dae 100644
--- a/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ChatToolWindowTabPanel.java
+++ b/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ChatToolWindowTabPanel.java
@@ -455,10 +455,6 @@ public class ChatToolWindowTabPanel implements Disposable {
.build(),
userMessagePanel));
userMessagePanel.addDeleteAction(() -> removeMessage(message.getId(), conversation));
- var imageFilePath = message.getImageFilePath();
- if (imageFilePath != null && !imageFilePath.isEmpty()) {
- userMessagePanel.displayImage(imageFilePath);
- }
return userMessagePanel;
}
diff --git a/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/ImageAccordion.java b/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/ImageAccordion.java
index 250be68e..96f4d627 100644
--- a/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/ImageAccordion.java
+++ b/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/ImageAccordion.java
@@ -65,8 +65,9 @@ public class ImageAccordion extends JPanel {
accordionToggle.setSelectedIcon(General.ArrowUp);
accordionToggle.setBorder(null);
accordionToggle.setSelected(true);
- accordionToggle.setHorizontalAlignment(SwingConstants.LEADING);
- accordionToggle.setHorizontalTextPosition(SwingConstants.LEADING);
+ accordionToggle.setHorizontalAlignment(SwingConstants.LEFT);
+ accordionToggle.setHorizontalTextPosition(SwingConstants.RIGHT);
+ accordionToggle.setIconTextGap(4);
accordionToggle.addItemListener(e ->
contentPane.setVisible(e.getStateChange() == ItemEvent.SELECTED));
return accordionToggle;
diff --git a/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/SelectedFilesAccordion.java b/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/SelectedFilesAccordion.java
index fa394996..8dfd9473 100644
--- a/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/SelectedFilesAccordion.java
+++ b/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/SelectedFilesAccordion.java
@@ -41,11 +41,11 @@ public class SelectedFilesAccordion extends JPanel {
private JToggleButton createToggleButton(JPanel contentPane, int fileCount) {
var accordionToggle = new JToggleButton(
- format("Referenced files (+%d)", fileCount), General.ArrowUp);
+ format("Referenced files (+%d)", fileCount), General.ArrowDown);
accordionToggle.setFocusPainted(false);
accordionToggle.setContentAreaFilled(false);
accordionToggle.setBackground(getBackground());
- accordionToggle.setSelectedIcon(General.ArrowDown);
+ accordionToggle.setSelectedIcon(General.ArrowUp);
accordionToggle.setBorder(null);
accordionToggle.setSelected(true);
accordionToggle.setHorizontalAlignment(SwingConstants.LEFT);
diff --git a/src/main/kotlin/ee/carlrobert/codegpt/toolwindow/ui/UserMessagePanel.kt b/src/main/kotlin/ee/carlrobert/codegpt/toolwindow/ui/UserMessagePanel.kt
index 4daa73a9..0f437189 100644
--- a/src/main/kotlin/ee/carlrobert/codegpt/toolwindow/ui/UserMessagePanel.kt
+++ b/src/main/kotlin/ee/carlrobert/codegpt/toolwindow/ui/UserMessagePanel.kt
@@ -47,7 +47,6 @@ class UserMessagePanel(
background = ColorUtil.brighter(getBackground(), 2)
setupAdditionalContext()
- setupImageIfPresent()
setupResponseBody()
}
@@ -117,21 +116,6 @@ class UserMessagePanel(
)
}
- fun displayImage(imageFilePath: String) {
- try {
- val path = Paths.get(imageFilePath)
- body.addToTop(ImageAccordion(path.fileName.toString(), Files.readAllBytes(path)))
- } catch (e: IOException) {
- body.addToTop(
- JBLabel(
- "Unable to load image $imageFilePath",
- AllIcons.General.Error,
- SwingConstants.LEFT
- )
- )
- }
- }
-
private fun setupAdditionalContext() {
val additionalContextPanel = getAdditionalContextPanel(project, message)
if (additionalContextPanel != null) {
@@ -139,14 +123,6 @@ class UserMessagePanel(
}
}
- private fun setupImageIfPresent() {
- message.imageFilePath?.let { imageFilePath ->
- if (imageFilePath.isNotEmpty()) {
- displayImage(imageFilePath)
- }
- }
- }
-
private fun setupResponseBody() {
addContent(
ChatMessageResponseBody(project, true, false, false, parentDisposable)
@@ -217,6 +193,25 @@ class UserMessagePanel(
}
}
}
+
+ message.imageFilePath?.let { imageFilePath ->
+ if (imageFilePath.isNotEmpty()) {
+ try {
+ val path = Paths.get(imageFilePath)
+ additionalContextPanel.add(
+ ImageAccordion(path.fileName.toString(), Files.readAllBytes(path))
+ )
+ } catch (e: IOException) {
+ additionalContextPanel.add(
+ JBLabel(
+ "Unable to load image $imageFilePath",
+ AllIcons.General.Error,
+ SwingConstants.LEFT
+ )
+ )
+ }
+ }
+ }
}
}