fix: refresh Ollama models only when service is changed to Ollama (#536)

This commit is contained in:
Phil 2024-05-08 15:07:00 +02:00 committed by GitHub
parent dcd0a3fc51
commit 5d2bc13f8c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 17 additions and 13 deletions

View file

@ -74,8 +74,13 @@ public class GeneralSettingsComponent {
serviceComboBox = new ComboBox<>(serviceComboBoxModel);
serviceComboBox.setSelectedItem(OPENAI);
serviceComboBox.setPreferredSize(displayNameField.getPreferredSize());
serviceComboBox.addItemListener(e ->
cardLayout.show(cards, ((ServiceType) e.getItem()).getCode()));
serviceComboBox.addItemListener(e -> {
ServiceType selectedService = (ServiceType) e.getItem();
cardLayout.show(cards, selectedService.getCode());
if (selectedService == OLLAMA) {
ollamaSettingsForm.refreshModels();
}
});
mainPanel = FormBuilder.createFormBuilder()
.addLabeledComponent(
CodeGPTBundle.get("settingsConfigurable.displayName.label"),

View file

@ -55,7 +55,6 @@ class OllamaSettingsForm {
}
}
refreshModelsButton.addActionListener { refreshModels() }
refreshModels()
}
fun getForm(): JPanel = FormBuilder.createFormBuilder()
@ -116,16 +115,7 @@ class OllamaSettingsForm {
|| codeCompletionConfigurationForm.fimTemplate != fimTemplate
}
private fun disableModelComboBoxWithPlaceholder(placeholderModel: ComboBoxModel<String>) {
invokeLater {
modelComboBox.apply {
model = placeholderModel
isEnabled = false
}
}
}
private fun refreshModels() {
fun refreshModels() {
disableModelComboBoxWithPlaceholder(DefaultComboBoxModel(arrayOf("Loading")))
try {
val models = runBlocking(Dispatchers.IO) {
@ -160,4 +150,13 @@ class OllamaSettingsForm {
disableModelComboBoxWithPlaceholder(DefaultComboBoxModel(arrayOf("Unable to load models")))
}
}
private fun disableModelComboBoxWithPlaceholder(placeholderModel: ComboBoxModel<String>) {
invokeLater {
modelComboBox.apply {
model = placeholderModel
isEnabled = false
}
}
}
}