mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-09 10:46:02 +02:00
Revert "Removed "Shared provider" checkbox from UI."
This commit is contained in:
parent
00e199b8e7
commit
ae99178c47
1 changed files with 61 additions and 1 deletions
|
@ -117,6 +117,7 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
private Button enableProvidersCheckBox;
|
private Button enableProvidersCheckBox;
|
||||||
private StatusMessageLine fStatusLine;
|
private StatusMessageLine fStatusLine;
|
||||||
|
|
||||||
|
private Button globalProviderCheckBox = null;
|
||||||
private Link linkWorkspacePreferences = null;
|
private Link linkWorkspacePreferences = null;
|
||||||
private Button projectStorageCheckBox = null;
|
private Button projectStorageCheckBox = null;
|
||||||
|
|
||||||
|
@ -356,6 +357,37 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
return link;
|
return link;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Called from globalProviderCheckBox listener
|
||||||
|
private ILanguageSettingsProvider toggleGlobalProvider(ILanguageSettingsProvider oldProvider, boolean toGlobal) {
|
||||||
|
ILanguageSettingsProvider newProvider = null;
|
||||||
|
|
||||||
|
String id = oldProvider.getId();
|
||||||
|
if (toGlobal) {
|
||||||
|
newProvider = LanguageSettingsManager.getWorkspaceProvider(id);
|
||||||
|
} else {
|
||||||
|
// Local provider instance chosen
|
||||||
|
try {
|
||||||
|
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(oldProvider);
|
||||||
|
if (rawProvider instanceof ILanguageSettingsEditableProvider) {
|
||||||
|
newProvider = ((ILanguageSettingsEditableProvider) rawProvider).cloneShallow();
|
||||||
|
}
|
||||||
|
} catch (CloneNotSupportedException e) {
|
||||||
|
CUIPlugin.log("Error cloning provider " + oldProvider.getId(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (newProvider!=null) {
|
||||||
|
replaceSelectedProvider(newProvider);
|
||||||
|
|
||||||
|
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||||
|
initializeOptionsPage(newProvider, cfgDescription);
|
||||||
|
displaySelectedOptionPage();
|
||||||
|
} else {
|
||||||
|
newProvider = oldProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
return newProvider;
|
||||||
|
}
|
||||||
|
|
||||||
private void replaceSelectedProvider(ILanguageSettingsProvider newProvider) {
|
private void replaceSelectedProvider(ILanguageSettingsProvider newProvider) {
|
||||||
int pos = tableProviders.getSelectionIndex();
|
int pos = tableProviders.getSelectionIndex();
|
||||||
presentedProviders.set(pos, newProvider);
|
presentedProviders.set(pos, newProvider);
|
||||||
|
@ -388,6 +420,29 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
groupOptionsPage.setLayout(new GridLayout(2, false));
|
groupOptionsPage.setLayout(new GridLayout(2, false));
|
||||||
|
|
||||||
if (!page.isForPrefs()) {
|
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() {
|
||||||
|
@Override
|
||||||
|
public void widgetSelected(SelectionEvent e) {
|
||||||
|
boolean isGlobal = globalProviderCheckBox.getSelection();
|
||||||
|
ILanguageSettingsProvider provider = getSelectedProvider();
|
||||||
|
if (isGlobal != LanguageSettingsManager.isWorkspaceProvider(provider)) {
|
||||||
|
provider = toggleGlobalProvider(provider, isGlobal);
|
||||||
|
}
|
||||||
|
projectStorageCheckBox.setSelection(provider instanceof LanguageSettingsSerializableProvider
|
||||||
|
&& LanguageSettingsManager.isStoringEntriesInProjectArea((LanguageSettingsSerializableProvider) provider));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void widgetDefaultSelected(SelectionEvent e) {
|
||||||
|
widgetSelected(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (projectStorageCheckBox == null) {
|
if (projectStorageCheckBox == null) {
|
||||||
projectStorageCheckBox = new Button(groupOptionsPage, SWT.CHECK);
|
projectStorageCheckBox = new Button(groupOptionsPage, SWT.CHECK);
|
||||||
projectStorageCheckBox.setText("Store entries in project settings folder (easing project miration)");
|
projectStorageCheckBox.setText("Store entries in project settings folder (easing project miration)");
|
||||||
|
@ -576,6 +631,11 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
|
|
||||||
boolean isChecked = tableProvidersViewer.getChecked(provider);
|
boolean isChecked = tableProvidersViewer.getChecked(provider);
|
||||||
if (!page.isForPrefs()) {
|
if (!page.isForPrefs()) {
|
||||||
|
boolean isRawProviderEditable = rawProvider instanceof ILanguageSettingsEditableProvider;
|
||||||
|
globalProviderCheckBox.setSelection(isGlobal);
|
||||||
|
globalProviderCheckBox.setEnabled(isChecked && isRawProviderEditable);
|
||||||
|
globalProviderCheckBox.setVisible(provider!=null);
|
||||||
|
|
||||||
projectStorageCheckBox.setEnabled(!isGlobal);
|
projectStorageCheckBox.setEnabled(!isGlobal);
|
||||||
projectStorageCheckBox.setVisible(rawProvider instanceof LanguageSettingsSerializableProvider);
|
projectStorageCheckBox.setVisible(rawProvider instanceof LanguageSettingsSerializableProvider);
|
||||||
projectStorageCheckBox.setSelection(provider instanceof LanguageSettingsSerializableProvider
|
projectStorageCheckBox.setSelection(provider instanceof LanguageSettingsSerializableProvider
|
||||||
|
@ -583,7 +643,7 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
|
|
||||||
boolean needPreferencesLink=isGlobal && currentOptionsPage!=null;
|
boolean needPreferencesLink=isGlobal && currentOptionsPage!=null;
|
||||||
// TODO: message
|
// TODO: message
|
||||||
final String linkMsg = needPreferencesLink ? "Options of shared providers below can be changed in <a href=\"workspace\">Workspace Settings</a>, Discovery Tab." : "";
|
final String linkMsg = needPreferencesLink ? "Options of global providers below can be changed in <a href=\"workspace\">Workspace Settings</a>, Discovery Tab." : "";
|
||||||
linkWorkspacePreferences.setText(linkMsg);
|
linkWorkspacePreferences.setText(linkMsg);
|
||||||
linkWorkspacePreferences.pack();
|
linkWorkspacePreferences.pack();
|
||||||
linkWorkspacePreferences.setEnabled(isChecked);
|
linkWorkspacePreferences.setEnabled(isChecked);
|
||||||
|
|
Loading…
Add table
Reference in a new issue