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:
parent
984c5eb604
commit
262dd9a8aa
1 changed files with 9 additions and 2 deletions
|
@ -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);
|
||||||
|
if (selectedId.equals(provider.getId())) {
|
||||||
|
boolean isChecked = tableProvidersViewer.getChecked(provider);
|
||||||
|
if (isChecked || isChecked == wasChecked) {
|
||||||
tableProviders.setSelection(i);
|
tableProviders.setSelection(i);
|
||||||
|
} else {
|
||||||
|
tableProviders.setSelection(0);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue