mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
"Restore Defaults" in properties and preferences
This commit is contained in:
parent
2e2d1f833e
commit
ede43fdd0a
4 changed files with 218 additions and 86 deletions
|
@ -259,8 +259,10 @@ public class LanguageSettingsExtensionManager {
|
|||
*
|
||||
* @param className - class name to instantiate.
|
||||
* @return new instance of language settings provider.
|
||||
*
|
||||
* @throws CoreException if not able to create a new instance.
|
||||
*/
|
||||
/*package*/ static ILanguageSettingsProvider instantiateProviderClass(String className) {
|
||||
/*package*/ static ILanguageSettingsProvider instantiateProviderClass(String className) throws CoreException {
|
||||
if (className==null || className.equals(LanguageSettingsSerializableProvider.class.getName())) {
|
||||
return new LanguageSettingsSerializableProvider();
|
||||
}
|
||||
|
@ -272,7 +274,7 @@ public class LanguageSettingsExtensionManager {
|
|||
ILanguageSettingsProvider provider = loadProviderFromRegistry(ATTR_CLASS, className, Platform.getExtensionRegistry(), false);
|
||||
if (provider == null) {
|
||||
String msg = "Not able to load provider class=" + className; //$NON-NLS-1$
|
||||
CCorePlugin.log(new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, msg, new Exception(msg)));
|
||||
throw new CoreException(new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, msg));
|
||||
}
|
||||
return provider;
|
||||
}
|
||||
|
|
|
@ -844,7 +844,14 @@ public class LanguageSettingsProvidersSerializer {
|
|||
provider = LanguageSettingsManager.getWorkspaceProvider(providerId);
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
provider = loadProvider(providerNode);
|
||||
} catch (CoreException e) {
|
||||
@SuppressWarnings("nls")
|
||||
String msg = "Error loading provider class=[" + providerClass + "] "
|
||||
+ "in project=" + prjDescription.getProject().getName() + ", cfg=[" + cfgId + "]";
|
||||
CCorePlugin.log(msg, e);
|
||||
}
|
||||
if (provider instanceof LanguageSettingsSerializableProvider) {
|
||||
LanguageSettingsSerializableProvider lss = (LanguageSettingsSerializableProvider) provider;
|
||||
if (!isStoringEntriesInProjectArea(lss) && projectElementWsp != null) {
|
||||
|
@ -941,7 +948,7 @@ public class LanguageSettingsProvidersSerializer {
|
|||
/**
|
||||
* Load provider from provider node.
|
||||
*/
|
||||
private static ILanguageSettingsProvider loadProvider(Node providerNode) {
|
||||
private static ILanguageSettingsProvider loadProvider(Node providerNode) throws CoreException {
|
||||
String attrClass = XmlUtil.determineAttributeValue(providerNode, ATTR_CLASS);
|
||||
ILanguageSettingsProvider provider = LanguageSettingsExtensionManager.instantiateProviderClass(attrClass);
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
package org.eclipse.cdt.internal.ui.language.settings.providers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
|
@ -117,7 +118,7 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
private Button enableProvidersCheckBox;
|
||||
private StatusMessageLine fStatusLine;
|
||||
|
||||
private Button globalProviderCheckBox = null;
|
||||
private Button sharedProviderCheckBox = null;
|
||||
private Link linkWorkspacePreferences = null;
|
||||
private Button projectStorageCheckBox = null;
|
||||
|
||||
|
@ -158,10 +159,49 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
return newProvider;
|
||||
}
|
||||
|
||||
private static boolean isReconfigured(ILanguageSettingsProvider provider) {
|
||||
if (provider instanceof ILanguageSettingsEditableProvider) {
|
||||
return (LanguageSettingsManager.getExtensionProviderIds().contains(provider.getId()) &&
|
||||
! LanguageSettingsManager.isEqualExtensionProvider(provider, false));
|
||||
private boolean isReconfiguredForProject(ILanguageSettingsProvider provider) {
|
||||
String id = provider.getId();
|
||||
|
||||
// check for the provider mismatch in configuration list vs. default list from the tool-chain
|
||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||
String[] defaultIds = ((ILanguageSettingsProvidersKeeper) cfgDescription).getDefaultLanguageSettingsProvidersIds();
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
if (Arrays.asList(defaultIds).contains(id) != providers.contains(provider)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// check if "shared" flag matches default shared preference from extension point definition
|
||||
if (providers.contains(provider) && LanguageSettingsManager.isPreferShared(id) != LanguageSettingsManager.isWorkspaceProvider(provider)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// check if configuration provider equals to the default one from extension point
|
||||
if (!LanguageSettingsManager.isWorkspaceProvider(provider) && !LanguageSettingsManager.isEqualExtensionProvider(provider, false)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isEditedForProject(ILanguageSettingsProvider provider) {
|
||||
String id = provider.getId();
|
||||
|
||||
// check for the provider mismatch in configuration list vs. initial list
|
||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||
List<ILanguageSettingsProvider> initialProviders = initialProvidersByCfg.get(cfgDescription.getId());
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
ILanguageSettingsProvider initialProvider = findProvider(id, initialProviders);
|
||||
if ((initialProvider != null) != providers.contains(provider)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// check if "shared" flag matches that of initial provider
|
||||
if (providers.contains(provider) && LanguageSettingsManager.isWorkspaceProvider(initialProvider) != LanguageSettingsManager.isWorkspaceProvider(provider)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// check if configuration provider equals to the initial one
|
||||
if (!LanguageSettingsManager.isWorkspaceProvider(provider) && !provider.equals(initialProvider)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -171,16 +211,48 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
protected String[] getOverlayKeys(ILanguageSettingsProvider provider) {
|
||||
String[] overlayKeys = super.getOverlayKeys(provider);
|
||||
|
||||
ILanguageSettingsProvider rawProvider = page.isForPrefs() ? LanguageSettingsManager.getRawProvider(provider) : provider;
|
||||
if (isReconfigured(rawProvider)) {
|
||||
if (page.isForProject()) {
|
||||
if (isReconfiguredForProject(provider)) {
|
||||
overlayKeys[IDecoration.TOP_RIGHT] = CDTSharedImages.IMG_OVR_SETTING;
|
||||
}
|
||||
|
||||
if (isWorkingCopy(provider)) {
|
||||
if (isEditedForProject(provider)) {
|
||||
overlayKeys[IDecoration.TOP_RIGHT] = CDTSharedImages.IMG_OVR_EDITED;
|
||||
}
|
||||
} else if (page.isForPrefs()) {
|
||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider);
|
||||
if (rawProvider instanceof ILanguageSettingsEditableProvider && !LanguageSettingsManager.isEqualExtensionProvider(rawProvider, false)) {
|
||||
overlayKeys[IDecoration.TOP_RIGHT] = CDTSharedImages.IMG_OVR_SETTING;
|
||||
}
|
||||
if (isWorkingCopy(provider)) {
|
||||
ILanguageSettingsProvider rawInitialProvider = LanguageSettingsManager.getRawProvider(LanguageSettingsManager.getWorkspaceProvider(provider.getId()));
|
||||
if (!provider.equals(rawInitialProvider)) {
|
||||
overlayKeys[IDecoration.TOP_RIGHT] = CDTSharedImages.IMG_OVR_EDITED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return overlayKeys;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText(Object element) {
|
||||
// AG TODO - address duplication with super.getText()
|
||||
if (element instanceof ILanguageSettingsProvider) {
|
||||
ILanguageSettingsProvider provider = (ILanguageSettingsProvider) element;
|
||||
String name = provider.getName();
|
||||
if (name != null) {
|
||||
if (page.isForPrefs() || isPresentedAsShared(provider)) {
|
||||
name = name + " [ Shared ]";
|
||||
}
|
||||
return name;
|
||||
}
|
||||
String id = provider.getId();
|
||||
return "[ Not accessible id="+id+" ]";
|
||||
}
|
||||
return super.getText(element);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -314,7 +386,8 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
int pos = presentedProviders.indexOf(provider);
|
||||
tableProviders.setSelection(pos);
|
||||
|
||||
if (event.getChecked() && LanguageSettingsManager.isWorkspaceProvider(provider)) {
|
||||
if (event.getChecked()) {
|
||||
if (LanguageSettingsManager.isWorkspaceProvider(provider)) {
|
||||
if (!LanguageSettingsManager.isPreferShared(provider.getId())) {
|
||||
// Switch to non-shared provider instance
|
||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider);
|
||||
|
@ -325,13 +398,22 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
replaceSelectedProvider(provider);
|
||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||
initializeOptionsPage(provider, cfgDescription);
|
||||
displaySelectedOptionPage();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!LanguageSettingsManager.isWorkspaceProvider(provider)) {
|
||||
provider = LanguageSettingsManager.getWorkspaceProvider(provider.getId());
|
||||
replaceSelectedProvider(provider);
|
||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||
initializeOptionsPage(provider, cfgDescription);
|
||||
}
|
||||
}
|
||||
|
||||
displaySelectedOptionPage();
|
||||
tableProvidersViewer.update(provider, null);
|
||||
updateButtons();
|
||||
}});
|
||||
|
||||
createOptionsControl();
|
||||
|
@ -401,11 +483,13 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
if (cfgDescription instanceof ILanguageSettingsProvidersKeeper) {
|
||||
List<ILanguageSettingsProvider> cfgProviders = new ArrayList<ILanguageSettingsProvider>(((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders());
|
||||
pos = getProviderIndex(newProvider.getId(), cfgProviders);
|
||||
if (pos >= 0) {
|
||||
cfgProviders.set(pos, newProvider);
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(cfgProviders);
|
||||
tableProvidersViewer.setCheckedElements(cfgProviders.toArray(new ILanguageSettingsProvider[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
refreshItem(newProvider);
|
||||
}
|
||||
|
||||
|
@ -420,13 +504,13 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
groupOptionsPage.setLayout(new GridLayout(2, false));
|
||||
|
||||
if (!page.isForPrefs()) {
|
||||
if (globalProviderCheckBox==null) {
|
||||
globalProviderCheckBox = new Button(groupOptionsPage, SWT.CHECK);
|
||||
globalProviderCheckBox.setText("Share setting entries between projects (global provider)");
|
||||
globalProviderCheckBox.addSelectionListener(new SelectionAdapter() {
|
||||
if (sharedProviderCheckBox==null) {
|
||||
sharedProviderCheckBox = new Button(groupOptionsPage, SWT.CHECK);
|
||||
sharedProviderCheckBox.setText("Share setting entries between projects (global provider)");
|
||||
sharedProviderCheckBox.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
boolean isGlobal = globalProviderCheckBox.getSelection();
|
||||
boolean isGlobal = sharedProviderCheckBox.getSelection();
|
||||
ILanguageSettingsProvider provider = getSelectedProvider();
|
||||
if (isGlobal != LanguageSettingsManager.isWorkspaceProvider(provider)) {
|
||||
provider = toggleGlobalProvider(provider, isGlobal);
|
||||
|
@ -632,9 +716,10 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
boolean isChecked = tableProvidersViewer.getChecked(provider);
|
||||
if (!page.isForPrefs()) {
|
||||
boolean isRawProviderEditable = rawProvider instanceof ILanguageSettingsEditableProvider;
|
||||
globalProviderCheckBox.setSelection(isGlobal);
|
||||
globalProviderCheckBox.setEnabled(isChecked && isRawProviderEditable);
|
||||
globalProviderCheckBox.setVisible(provider!=null);
|
||||
|
||||
sharedProviderCheckBox.setSelection(isPresentedAsShared(provider));
|
||||
sharedProviderCheckBox.setEnabled(isChecked && isRawProviderEditable);
|
||||
sharedProviderCheckBox.setVisible(provider!=null);
|
||||
|
||||
projectStorageCheckBox.setEnabled(!isGlobal);
|
||||
projectStorageCheckBox.setVisible(rawProvider instanceof LanguageSettingsSerializableProvider);
|
||||
|
@ -661,6 +746,18 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the provider should be presented as shared. Unchecked providers are shown as non-shared
|
||||
* if they are defined as non-shared in extension point even if in fact shared instance is used to display
|
||||
* the options page.
|
||||
*/
|
||||
private boolean isPresentedAsShared(ILanguageSettingsProvider provider) {
|
||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
return LanguageSettingsManager.isWorkspaceProvider(provider) &&
|
||||
( providers.contains(provider) || LanguageSettingsManager.isPreferShared(provider.getId()) );
|
||||
}
|
||||
|
||||
|
||||
private void saveCheckedProviders(Object selectedElement) {
|
||||
if (page.isForProject()) {
|
||||
|
@ -702,9 +799,9 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
@Override
|
||||
protected void updateButtons() {
|
||||
ILanguageSettingsProvider provider = getSelectedProvider();
|
||||
boolean isProviderSelected =provider!=null;
|
||||
boolean isProviderSelected = provider != null;
|
||||
boolean canForWorkspace = isProviderSelected && page.isForPrefs();
|
||||
boolean canForProject = isProviderSelected && page.isForProject() && !LanguageSettingsManager.isWorkspaceProvider(provider);
|
||||
boolean canForProject = isProviderSelected && page.isForProject();
|
||||
|
||||
int pos = tableProviders.getSelectionIndex();
|
||||
int count = tableProviders.getItemCount();
|
||||
|
@ -715,15 +812,13 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
boolean isAllowedClearing = rawProvider instanceof ILanguageSettingsEditableProvider
|
||||
&& LanguageSettingsProviderAssociationManager.isToClear(rawProvider);
|
||||
|
||||
boolean canClear = isAllowedClearing && (canForWorkspace || canForProject);
|
||||
boolean canClear = isAllowedClearing && (canForWorkspace || (canForProject && !LanguageSettingsManager.isWorkspaceProvider(provider)));
|
||||
|
||||
boolean canReset = false;
|
||||
if (rawProvider!=null && (canForWorkspace || canForProject)) {
|
||||
canReset = ! LanguageSettingsManager.isEqualExtensionProvider(rawProvider, true);
|
||||
}
|
||||
boolean canReset = (canForProject && isReconfiguredForProject(provider)) ||
|
||||
(canForWorkspace && (rawProvider instanceof ILanguageSettingsEditableProvider && !LanguageSettingsManager.isEqualExtensionProvider(rawProvider, false)));
|
||||
|
||||
boolean canMoveUp = page.isForProject() && isProviderSelected && isRangeOk && pos!=0;
|
||||
boolean canMoveDown = page.isForProject() && isProviderSelected && isRangeOk && pos!=last;
|
||||
boolean canMoveUp = canForProject && isRangeOk && pos!=0;
|
||||
boolean canMoveDown = canForProject && isRangeOk && pos!=last;
|
||||
|
||||
// buttonSetEnabled(BUTTON_RENAME, false);
|
||||
// buttonSetEnabled(BUTTON_RUN, false);
|
||||
|
@ -795,13 +890,51 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
|
||||
private void performReset(ILanguageSettingsProvider selectedProvider) {
|
||||
String id = selectedProvider.getId();
|
||||
ILanguageSettingsProvider newProvider = LanguageSettingsManager.getExtensionProviderCopy(id, true);
|
||||
ILanguageSettingsProvider newProvider = null;
|
||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||
|
||||
if (page.isForPrefs()) {
|
||||
newProvider = LanguageSettingsManager.getExtensionProviderCopy(id, true);
|
||||
if (newProvider == null) {
|
||||
newProvider = LanguageSettingsManager.getWorkspaceProvider(id);
|
||||
}
|
||||
replaceSelectedProvider(newProvider);
|
||||
} else {
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
String[] defaultIds = ((ILanguageSettingsProvidersKeeper) cfgDescription).getDefaultLanguageSettingsProvidersIds();
|
||||
boolean isDefault = Arrays.asList(defaultIds).contains(id);
|
||||
|
||||
if (isDefault) {
|
||||
if (!LanguageSettingsManager.isPreferShared(id)) {
|
||||
newProvider = LanguageSettingsManager.getExtensionProviderCopy(id, true);
|
||||
}
|
||||
if (newProvider == null) {
|
||||
newProvider = LanguageSettingsManager.getWorkspaceProvider(id);
|
||||
}
|
||||
if (providers.contains(selectedProvider)) {
|
||||
// replace provider in the cfg list
|
||||
replaceSelectedProvider(newProvider);
|
||||
} else {
|
||||
// add provider to the cfg list
|
||||
replaceSelectedProvider(newProvider);
|
||||
tableProvidersViewer.setChecked(newProvider, true);
|
||||
saveCheckedProviders(newProvider);
|
||||
updateProvidersTable();
|
||||
refreshItem(newProvider);
|
||||
}
|
||||
} else {
|
||||
if (providers.contains(selectedProvider)) {
|
||||
// remove provider from the cfg list
|
||||
newProvider = LanguageSettingsManager.getWorkspaceProvider(id);
|
||||
replaceSelectedProvider(newProvider);
|
||||
tableProvidersViewer.setChecked(newProvider, false);
|
||||
saveCheckedProviders(newProvider);
|
||||
updateProvidersTable();
|
||||
refreshItem(newProvider);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||
initializeOptionsPage(newProvider, cfgDescription);
|
||||
displaySelectedOptionPage();
|
||||
updateButtons();
|
||||
|
@ -881,7 +1014,7 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
|
||||
@Override
|
||||
protected void performDefaults() {
|
||||
if (enableProvidersCheckBox==null || enableProvidersCheckBox.getSelection()==false)
|
||||
if (page.isForProject() && (enableProvidersCheckBox==null || enableProvidersCheckBox.getSelection() == false))
|
||||
return;
|
||||
|
||||
if (page.isForPrefs() || page.isForProject()) {
|
||||
|
@ -893,49 +1026,39 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||
if (cfgDescription instanceof ILanguageSettingsProvidersKeeper) {
|
||||
List<ILanguageSettingsProvider> cfgProviders = new ArrayList<ILanguageSettingsProvider>(((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders());
|
||||
boolean atLeastOneChanged = false;
|
||||
for (int i=0;i<cfgProviders.size();i++) {
|
||||
ILanguageSettingsProvider provider = cfgProviders.get(i);
|
||||
if (!LanguageSettingsManager.isWorkspaceProvider(provider) && !LanguageSettingsManager.isEqualExtensionProvider(provider, true)) {
|
||||
ILanguageSettingsProvider extProvider = LanguageSettingsManager.getExtensionProviderCopy(provider.getId(), true);
|
||||
if (extProvider == null) {
|
||||
extProvider = LanguageSettingsManager.getWorkspaceProvider(provider.getId());
|
||||
String[] defaultIds = ((ILanguageSettingsProvidersKeeper) cfgDescription).getDefaultLanguageSettingsProvidersIds();
|
||||
|
||||
List<ILanguageSettingsProvider> newProviders = new ArrayList<ILanguageSettingsProvider>(defaultIds.length);
|
||||
for (String id : defaultIds) {
|
||||
boolean preferShared = LanguageSettingsManager.isPreferShared(id);
|
||||
ILanguageSettingsProvider newProvider = null;
|
||||
if (!preferShared) {
|
||||
newProvider = LanguageSettingsManager.getExtensionProviderCopy(id, true);
|
||||
}
|
||||
cfgProviders.set(i, extProvider);
|
||||
atLeastOneChanged = true;
|
||||
if (newProvider == null) {
|
||||
newProvider = LanguageSettingsManager.getWorkspaceProvider(id);
|
||||
}
|
||||
newProviders.add(newProvider);
|
||||
}
|
||||
if (atLeastOneChanged) {
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(cfgProviders);
|
||||
|
||||
if (!cfgProviders.equals(newProviders)) {
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(newProviders);
|
||||
}
|
||||
}
|
||||
|
||||
} else if (page.isForPrefs()) {
|
||||
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>(presentedProviders);
|
||||
for (int i=0;i<providers.size();i++) {
|
||||
ILanguageSettingsProvider provider = providers.get(i);
|
||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider);
|
||||
if (!LanguageSettingsManager.isEqualExtensionProvider(rawProvider, true)) {
|
||||
String id = provider.getId();
|
||||
ILanguageSettingsProvider extProvider = LanguageSettingsManager.getExtensionProviderCopy(id, true);
|
||||
if (extProvider == null) {
|
||||
extProvider = LanguageSettingsManager.getWorkspaceProvider(id);
|
||||
try {
|
||||
LanguageSettingsManager.setWorkspaceProviders(null);
|
||||
} catch (CoreException e) {
|
||||
CUIPlugin.log("Error serializing workspace language settings providers", e);
|
||||
}
|
||||
providers.set(i, extProvider);
|
||||
}
|
||||
}
|
||||
// seems to render better when temporary is used
|
||||
presentedProviders = providers;
|
||||
|
||||
int pos = tableProviders.getSelectionIndex();
|
||||
tableProvidersViewer.setInput(presentedProviders);
|
||||
tableProviders.setSelection(pos);
|
||||
|
||||
updateButtons();
|
||||
presentedProviders = null;
|
||||
}
|
||||
}
|
||||
|
||||
updateData(getResDesc());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -169,7 +169,7 @@ IncludeDialog_3=Add to all languages
|
|||
LanguageSettingsImages_FileDoesNotExist=The selected file does not exist or not accessible.
|
||||
LanguageSettingsImages_FolderDoesNotExist=The selected folder does not exist or not accessible.
|
||||
LanguageSettingsImages_UsingRelativePathsNotRecommended=Using relative paths is ambiguous and not recommended. It can cause unexpected effects.
|
||||
LanguageSettingsProviderTab_AreYouSureToResetProviders=Are you sure you want to reset all customized language settings providers?
|
||||
LanguageSettingsProviderTab_AreYouSureToResetProviders=Are you sure you want to reset all customized language settings providers?\nPlease note that providers may regain entries on their own schedule.
|
||||
LanguageSettingsProviderTab_Clear=Clear Entries
|
||||
LanguageSettingsProviderTab_Configure=Configure
|
||||
LanguageSettingsProviderTab_ErrorPerformingDefaults=Error restoring defaults for language settings providers
|
||||
|
|
Loading…
Add table
Reference in a new issue