1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

bug 395304: Selection of language settings provider not always accurate for the current configuration

This commit is contained in:
Andrew Gvozdev 2012-12-05 17:50:59 -05:00
parent 984c5eb604
commit 262dd9a8aa

View file

@ -1035,6 +1035,7 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
private void updateProvidersTable() { private void updateProvidersTable() {
ILanguageSettingsProvider selectedProvider = getSelectedProvider(); ILanguageSettingsProvider selectedProvider = getSelectedProvider();
String selectedId = selectedProvider != null ? selectedProvider.getId() : null; String selectedId = selectedProvider != null ? selectedProvider.getId() : null;
boolean wasChecked = selectedProvider != null && tableProvidersViewer.getChecked(selectedProvider);
// update viewer if the list of providers changed // update viewer if the list of providers changed
int pos = tableProviders.getSelectionIndex(); int pos = tableProviders.getSelectionIndex();
@ -1049,8 +1050,14 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
if (selectedId != null) { if (selectedId != null) {
for (int i = 0; i < presentedProviders.size(); i++) { for (int i = 0; i < presentedProviders.size(); i++) {
if (selectedId.equals(presentedProviders.get(i).getId())) { ILanguageSettingsProvider provider = presentedProviders.get(i);
tableProviders.setSelection(i); if (selectedId.equals(provider.getId())) {
boolean isChecked = tableProvidersViewer.getChecked(provider);
if (isChecked || isChecked == wasChecked) {
tableProviders.setSelection(i);
} else {
tableProviders.setSelection(0);
}
break; break;
} }
} }