From 54fa78e7e696275ee1b30974398a7848fb88b80d Mon Sep 17 00:00:00 2001 From: Carl-Robert Linnupuu Date: Tue, 17 Dec 2024 11:06:28 +0000 Subject: [PATCH] fix: model value change for empty conversations --- .../codegpt/conversations/ConversationService.java | 2 +- .../toolwindow/chat/ChatToolWindowTabPanel.java | 1 + .../carlrobert/codegpt/ui/textarea/UserInputPanel.kt | 10 +++++++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/ee/carlrobert/codegpt/conversations/ConversationService.java b/src/main/java/ee/carlrobert/codegpt/conversations/ConversationService.java index ea4a2686..6fc01ab1 100644 --- a/src/main/java/ee/carlrobert/codegpt/conversations/ConversationService.java +++ b/src/main/java/ee/carlrobert/codegpt/conversations/ConversationService.java @@ -187,7 +187,7 @@ public final class ConversationService { return Optional.empty(); } - private static String getModelForSelectedService(ServiceType serviceType) { + public String getModelForSelectedService(ServiceType serviceType) { var application = ApplicationManager.getApplication(); return switch (serviceType) { case CODEGPT -> application.getService(CodeGPTServiceSettings.class) 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 bdedddaf..900c20fa 100644 --- a/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ChatToolWindowTabPanel.java +++ b/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ChatToolWindowTabPanel.java @@ -78,6 +78,7 @@ public class ChatToolWindowTabPanel implements Disposable { this); userInputPanel = new UserInputPanel( project, + conversation, totalTokensPanel, this::handleSubmit, this::handleCancel); diff --git a/src/main/kotlin/ee/carlrobert/codegpt/ui/textarea/UserInputPanel.kt b/src/main/kotlin/ee/carlrobert/codegpt/ui/textarea/UserInputPanel.kt index 2897bef0..aeac75b9 100644 --- a/src/main/kotlin/ee/carlrobert/codegpt/ui/textarea/UserInputPanel.kt +++ b/src/main/kotlin/ee/carlrobert/codegpt/ui/textarea/UserInputPanel.kt @@ -20,8 +20,8 @@ import com.intellij.util.ui.UIUtil import ee.carlrobert.codegpt.CodeGPTBundle import ee.carlrobert.codegpt.Icons import ee.carlrobert.codegpt.actions.AttachImageAction +import ee.carlrobert.codegpt.conversations.Conversation import ee.carlrobert.codegpt.conversations.ConversationService -import ee.carlrobert.codegpt.conversations.ConversationsState import ee.carlrobert.codegpt.settings.GeneralSettings import ee.carlrobert.codegpt.settings.service.ServiceType import ee.carlrobert.codegpt.settings.service.codegpt.CodeGPTServiceSettings @@ -41,6 +41,7 @@ import javax.swing.JPanel class UserInputPanel( private val project: Project, + private val conversation: Conversation, private val totalTokensPanel: TotalTokensPanel, private val onSubmit: (String, List?) -> Unit, private val onStop: () -> Unit @@ -158,9 +159,12 @@ class UserInputPanel( { imageActionSupported.set(isImageActionSupported()) // TODO: Implement a proper session management - if (service().state?.currentConversation?.messages?.isNotEmpty() == true) { - service().startConversation() + val conversationService = service() + if (conversation.messages.isNotEmpty()) { + conversationService.startConversation() project.service().createNewTabPanel() + } else { + conversation.model = conversationService.getModelForSelectedService(it) } }, service().state.selectedService