diff --git a/src/main/java/ee/carlrobert/codegpt/settings/GeneralSettings.java b/src/main/java/ee/carlrobert/codegpt/settings/GeneralSettings.java index 2a254230..b818c513 100644 --- a/src/main/java/ee/carlrobert/codegpt/settings/GeneralSettings.java +++ b/src/main/java/ee/carlrobert/codegpt/settings/GeneralSettings.java @@ -98,7 +98,7 @@ public class GeneralSettings implements PersistentStateComponent imageFileAttachmentNotification.show( Path.of(filePath).getFileName().toString(), "File path: " + filePath)); - messageBusConnection.subscribe(ProviderChangeNotifier.getPROVIDER_CHANGE_TOPIC(), + messageBusConnection.subscribe(ProviderChangeNotifier.getTOPIC(), (ProviderChangeNotifier) provider -> { if (provider == ServiceType.CODEGPT) { var userDetails = CodeGPTKeys.CODEGPT_USER_DETAILS.get(project); diff --git a/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/textarea/ModelComboBoxAction.java b/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/textarea/ModelComboBoxAction.java index 1181c5b6..c67a0abf 100644 --- a/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/textarea/ModelComboBoxAction.java +++ b/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/textarea/ModelComboBoxAction.java @@ -23,6 +23,7 @@ import ee.carlrobert.codegpt.CodeGPTKeys; import ee.carlrobert.codegpt.Icons; import ee.carlrobert.codegpt.completions.llama.LlamaModel; import ee.carlrobert.codegpt.settings.GeneralSettings; +import ee.carlrobert.codegpt.settings.service.ProviderChangeNotifier; import ee.carlrobert.codegpt.settings.service.ServiceType; import ee.carlrobert.codegpt.settings.service.codegpt.CodeGPTAvailableModels; import ee.carlrobert.codegpt.settings.service.codegpt.CodeGPTModel; @@ -63,6 +64,11 @@ public class ModelComboBoxAction extends ComboBoxAction { this.onModelChange = onModelChange; this.availableProviders = availableProviders; updateTemplatePresentation(selectedProvider); + ApplicationManager.getApplication().getMessageBus() + .connect() + .subscribe( + ProviderChangeNotifier.getTOPIC(), + (ProviderChangeNotifier) this::updateTemplatePresentation); } public JComponent createCustomComponent(@NotNull String place) { @@ -134,8 +140,8 @@ public class ModelComboBoxAction extends ComboBoxAction { var googleGroup = DefaultActionGroup.createPopupGroup(() -> "Google (Gemini)"); googleGroup.getTemplatePresentation().setIcon(Icons.Google); Arrays.stream(GoogleModel.values()) - .forEach(model -> - googleGroup.add(createGoogleModelAction(model, presentation))); + .forEach(model -> + googleGroup.add(createGoogleModelAction(model, presentation))); actionGroup.add(googleGroup); } if (availableProviders.contains(LLAMA_CPP)) { @@ -154,7 +160,7 @@ public class ModelComboBoxAction extends ComboBoxAction { .getState() .getAvailableModels() .forEach(model -> - ollamaGroup.add(createOllamaModelAction(model, presentation))); + ollamaGroup.add(createOllamaModelAction(model, presentation))); actionGroup.add(ollamaGroup); } @@ -240,10 +246,10 @@ public class ModelComboBoxAction extends ComboBoxAction { } private AnAction createModelAction( - ServiceType serviceType, - String label, - Icon icon, - Presentation comboBoxPresentation) { + ServiceType serviceType, + String label, + Icon icon, + Presentation comboBoxPresentation) { return createModelAction(serviceType, label, icon, comboBoxPresentation, null); } @@ -288,33 +294,33 @@ public class ModelComboBoxAction extends ComboBoxAction { private AnAction createCodeGPTModelAction(CodeGPTModel model, Presentation comboBoxPresentation) { return createModelAction(CODEGPT, model.getName(), model.getIcon(), comboBoxPresentation, - () -> ApplicationManager.getApplication() - .getService(CodeGPTServiceSettings.class) - .getState() - .getChatCompletionSettings() - .setModel(model.getCode())); + () -> ApplicationManager.getApplication() + .getService(CodeGPTServiceSettings.class) + .getState() + .getChatCompletionSettings() + .setModel(model.getCode())); } private AnAction createOllamaModelAction(String model, Presentation comboBoxPresentation) { return createModelAction(OLLAMA, model, Icons.Ollama, comboBoxPresentation, - () -> ApplicationManager.getApplication() - .getService(OllamaSettings.class) - .getState() - .setModel(model)); + () -> ApplicationManager.getApplication() + .getService(OllamaSettings.class) + .getState() + .setModel(model)); } private AnAction createOpenAIModelAction( - OpenAIChatCompletionModel model, - Presentation comboBoxPresentation) { + OpenAIChatCompletionModel model, + Presentation comboBoxPresentation) { return createModelAction(OPENAI, model.getDescription(), Icons.OpenAI, comboBoxPresentation, - () -> OpenAISettings.getCurrentState().setModel(model.getCode())); + () -> OpenAISettings.getCurrentState().setModel(model.getCode())); } private AnAction createGoogleModelAction(GoogleModel model, Presentation comboBoxPresentation) { return createModelAction(GOOGLE, model.getDescription(), Icons.Google, comboBoxPresentation, - () -> ApplicationManager.getApplication() - .getService(GoogleSettings.class) - .getState() - .setModel(model.getCode())); + () -> ApplicationManager.getApplication() + .getService(GoogleSettings.class) + .getState() + .setModel(model.getCode())); } } diff --git a/src/main/kotlin/ee/carlrobert/codegpt/settings/service/ProviderChangeNotifier.kt b/src/main/kotlin/ee/carlrobert/codegpt/settings/service/ProviderChangeNotifier.kt index 75bee599..6de5584c 100644 --- a/src/main/kotlin/ee/carlrobert/codegpt/settings/service/ProviderChangeNotifier.kt +++ b/src/main/kotlin/ee/carlrobert/codegpt/settings/service/ProviderChangeNotifier.kt @@ -8,7 +8,6 @@ interface ProviderChangeNotifier { companion object { @JvmStatic - val PROVIDER_CHANGE_TOPIC = - Topic.create("providerChange", ProviderChangeNotifier::class.java) + val TOPIC = Topic.create("providerChange", ProviderChangeNotifier::class.java) } } \ No newline at end of file