mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
clean up disablement of LSP
This commit is contained in:
parent
a650dd13d8
commit
fd19e740de
8 changed files with 128 additions and 109 deletions
|
@ -15,13 +15,10 @@ import java.util.Arrays;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport;
|
|
||||||
import org.eclipse.cdt.core.model.CModelException;
|
import org.eclipse.cdt.core.model.CModelException;
|
||||||
import org.eclipse.cdt.core.model.CoreModel;
|
import org.eclipse.cdt.core.model.CoreModel;
|
||||||
import org.eclipse.cdt.core.model.ICProject;
|
import org.eclipse.cdt.core.model.ICProject;
|
||||||
import org.eclipse.cdt.core.model.IPathEntry;
|
import org.eclipse.cdt.core.model.IPathEntry;
|
||||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
|
||||||
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
|
||||||
import org.eclipse.cdt.make.core.MakeCorePlugin;
|
import org.eclipse.cdt.make.core.MakeCorePlugin;
|
||||||
import org.eclipse.cdt.make.core.MakeProjectNature;
|
import org.eclipse.cdt.make.core.MakeProjectNature;
|
||||||
import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2;
|
import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2;
|
||||||
|
@ -183,10 +180,8 @@ public class DiscoveryOptionsBlock extends AbstractDiscoveryOptionsBlock {
|
||||||
((GridData)scEnabledButton.getLayoutData()).horizontalSpan = numColumns;
|
((GridData)scEnabledButton.getLayoutData()).horizontalSpan = numColumns;
|
||||||
((GridData)scEnabledButton.getLayoutData()).grabExcessHorizontalSpace = true;
|
((GridData)scEnabledButton.getLayoutData()).grabExcessHorizontalSpace = true;
|
||||||
// VMIR* old projects will have discovery disabled by default
|
// VMIR* old projects will have discovery disabled by default
|
||||||
boolean autodiscoveryEnabled2 = getBuildInfo().isAutoDiscoveryEnabled() &&
|
scEnabledButton.setSelection(needsSCNature ? false
|
||||||
ScannerDiscoveryLegacySupport.isLegacyScannerDiscoveryOn(getProject());
|
: (getBuildInfo().isAutoDiscoveryEnabled()
|
||||||
scEnabledButton.setSelection(needsSCNature ? false
|
|
||||||
: (autodiscoveryEnabled2
|
|
||||||
&& !getBuildInfo().getSelectedProfileId().equals(ScannerConfigProfileManager.NULL_PROFILE_ID)));
|
&& !getBuildInfo().getSelectedProfileId().equals(ScannerConfigProfileManager.NULL_PROFILE_ID)));
|
||||||
scEnabledButton.addSelectionListener(new SelectionAdapter() {
|
scEnabledButton.addSelectionListener(new SelectionAdapter() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -274,7 +274,7 @@ PropertyPageDefsTab_7=Show disc. page names if they are unique. Else show profil
|
||||||
PropertyPageDefsTab_8=Always show names + profile IDs
|
PropertyPageDefsTab_8=Always show names + profile IDs
|
||||||
PropertyPageDefsTab_9=Always show profile IDs only
|
PropertyPageDefsTab_9=Always show profile IDs only
|
||||||
PropertyPageDefsTab_showIncludeFileTab=Display "Include Files" tab
|
PropertyPageDefsTab_showIncludeFileTab=Display "Include Files" tab
|
||||||
PropertyPageDefsTab_showProvidersTab=Display new experimental Scanner Discovery Providers tabs
|
PropertyPageDefsTab_showProvidersTab=Display "Preprocessor Include Paths" tabs
|
||||||
ProjectConvert_convertersList=Converters List
|
ProjectConvert_convertersList=Converters List
|
||||||
|
|
||||||
AbstractPrefPage_0=\ Preference settings will be applied to new projects \n only when there were no toolchains selected.
|
AbstractPrefPage_0=\ Preference settings will be applied to new projects \n only when there were no toolchains selected.
|
||||||
|
|
|
@ -25,14 +25,14 @@ import org.eclipse.swt.widgets.Group;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 5.1
|
* @since 5.1
|
||||||
*
|
*
|
||||||
* @noextend This class is not intended to be subclassed by clients.
|
* @noextend This class is not intended to be subclassed by clients.
|
||||||
* @noinstantiate This class is not intended to be instantiated by clients.
|
* @noinstantiate This class is not intended to be instantiated by clients.
|
||||||
*/
|
*/
|
||||||
public class PropertyPageDefsTab extends AbstractCPropertyTab {
|
public class PropertyPageDefsTab extends AbstractCPropertyTab {
|
||||||
|
|
||||||
private static final int SPACING = 5; // for radio buttons layout
|
private static final int SPACING = 5; // for radio buttons layout
|
||||||
|
|
||||||
private Button show_tree;
|
private Button show_tree;
|
||||||
private Button show_inc_files;
|
private Button show_inc_files;
|
||||||
private Button show_mng;
|
private Button show_mng;
|
||||||
|
@ -49,75 +49,74 @@ public class PropertyPageDefsTab extends AbstractCPropertyTab {
|
||||||
private Button s_0;
|
private Button s_0;
|
||||||
private Button s_1;
|
private Button s_1;
|
||||||
private Button s_2;
|
private Button s_2;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createControls(Composite parent) {
|
public void createControls(Composite parent) {
|
||||||
super.createControls(parent);
|
super.createControls(parent);
|
||||||
usercomp.setLayout(new GridLayout(1, false));
|
usercomp.setLayout(new GridLayout(1, false));
|
||||||
|
|
||||||
show_mng = new Button(usercomp, SWT.CHECK);
|
show_mng = new Button(usercomp, SWT.CHECK);
|
||||||
show_mng.setText(Messages.PropertyPageDefsTab_0);
|
show_mng.setText(Messages.PropertyPageDefsTab_0);
|
||||||
show_mng.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
show_mng.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
|
|
||||||
show_inc_files = new Button(usercomp, SWT.CHECK);
|
show_inc_files = new Button(usercomp, SWT.CHECK);
|
||||||
show_inc_files.setText(Messages.PropertyPageDefsTab_showIncludeFileTab);
|
show_inc_files.setText(Messages.PropertyPageDefsTab_showIncludeFileTab);
|
||||||
show_inc_files.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
show_inc_files.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
|
|
||||||
show_tree = new Button(usercomp, SWT.CHECK);
|
show_tree = new Button(usercomp, SWT.CHECK);
|
||||||
show_tree.setText(Messages.PropertyPageDefsTab_1);
|
show_tree.setText(Messages.PropertyPageDefsTab_1);
|
||||||
show_tree.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
show_tree.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
|
|
||||||
show_tool = new Button(usercomp, SWT.CHECK);
|
show_tool = new Button(usercomp, SWT.CHECK);
|
||||||
show_tool.setText(Messages.PropertyPageDefsTab_4);
|
show_tool.setText(Messages.PropertyPageDefsTab_4);
|
||||||
show_tool.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
show_tool.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
|
|
||||||
show_exp = new Button(usercomp, SWT.CHECK);
|
show_exp = new Button(usercomp, SWT.CHECK);
|
||||||
show_exp.setText(Messages.PropertyPageDefsTab_10);
|
show_exp.setText(Messages.PropertyPageDefsTab_10);
|
||||||
show_exp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
show_exp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
|
|
||||||
show_providers_tab = new Button(usercomp, SWT.CHECK);
|
show_providers_tab = new Button(usercomp, SWT.CHECK);
|
||||||
show_providers_tab.setText(Messages.PropertyPageDefsTab_showProvidersTab + ", " //$NON-NLS-1$
|
show_providers_tab.setText(Messages.PropertyPageDefsTab_showProvidersTab);
|
||||||
+ org.eclipse.cdt.internal.ui.newui.Messages.CDTMainWizardPage_TrySD90);
|
|
||||||
show_providers_tab.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
show_providers_tab.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
|
|
||||||
show_tipbox = new Button(usercomp, SWT.CHECK);
|
show_tipbox = new Button(usercomp, SWT.CHECK);
|
||||||
show_tipbox.setText(Messages.PropertyPageDefsTab_16);
|
show_tipbox.setText(Messages.PropertyPageDefsTab_16);
|
||||||
show_tipbox.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
show_tipbox.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
|
|
||||||
Group saveGrp = new Group(usercomp, SWT.NONE);
|
Group saveGrp = new Group(usercomp, SWT.NONE);
|
||||||
saveGrp.setText(Messages.PropertyPageDefsTab_11);
|
saveGrp.setText(Messages.PropertyPageDefsTab_11);
|
||||||
saveGrp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
saveGrp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
FillLayout fl = new FillLayout(SWT.VERTICAL);
|
FillLayout fl = new FillLayout(SWT.VERTICAL);
|
||||||
fl.spacing = SPACING;
|
fl.spacing = SPACING;
|
||||||
fl.marginHeight = SPACING;
|
fl.marginHeight = SPACING;
|
||||||
fl.marginWidth = SPACING;
|
fl.marginWidth = SPACING;
|
||||||
saveGrp.setLayout(fl);
|
saveGrp.setLayout(fl);
|
||||||
|
|
||||||
s_0 = new Button(saveGrp, SWT.RADIO);
|
s_0 = new Button(saveGrp, SWT.RADIO);
|
||||||
s_0.setText(Messages.PropertyPageDefsTab_13);
|
s_0.setText(Messages.PropertyPageDefsTab_13);
|
||||||
s_1 = new Button(saveGrp, SWT.RADIO);
|
s_1 = new Button(saveGrp, SWT.RADIO);
|
||||||
s_1.setText(Messages.PropertyPageDefsTab_12);
|
s_1.setText(Messages.PropertyPageDefsTab_12);
|
||||||
s_2 = new Button(saveGrp, SWT.RADIO);
|
s_2 = new Button(saveGrp, SWT.RADIO);
|
||||||
s_2.setText(Messages.PropertyPageDefsTab_14);
|
s_2.setText(Messages.PropertyPageDefsTab_14);
|
||||||
|
|
||||||
Group discGrp = new Group(usercomp, SWT.NONE);
|
Group discGrp = new Group(usercomp, SWT.NONE);
|
||||||
discGrp.setText(Messages.PropertyPageDefsTab_5);
|
discGrp.setText(Messages.PropertyPageDefsTab_5);
|
||||||
discGrp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
discGrp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
fl = new FillLayout(SWT.VERTICAL);
|
fl = new FillLayout(SWT.VERTICAL);
|
||||||
fl.spacing = SPACING;
|
fl.spacing = SPACING;
|
||||||
fl.marginHeight = SPACING;
|
fl.marginHeight = SPACING;
|
||||||
fl.marginWidth = SPACING;
|
fl.marginWidth = SPACING;
|
||||||
discGrp.setLayout(fl);
|
discGrp.setLayout(fl);
|
||||||
|
|
||||||
b_0 = new Button(discGrp, SWT.RADIO);
|
b_0 = new Button(discGrp, SWT.RADIO);
|
||||||
b_0.setText(Messages.PropertyPageDefsTab_6);
|
b_0.setText(Messages.PropertyPageDefsTab_6);
|
||||||
b_1 = new Button(discGrp, SWT.RADIO);
|
b_1 = new Button(discGrp, SWT.RADIO);
|
||||||
b_1.setText(Messages.PropertyPageDefsTab_7);
|
b_1.setText(Messages.PropertyPageDefsTab_7);
|
||||||
b_2 = new Button(discGrp, SWT.RADIO);
|
b_2 = new Button(discGrp, SWT.RADIO);
|
||||||
b_2.setText(Messages.PropertyPageDefsTab_8);
|
b_2.setText(Messages.PropertyPageDefsTab_8);
|
||||||
b_3 = new Button(discGrp, SWT.RADIO);
|
b_3 = new Button(discGrp, SWT.RADIO);
|
||||||
b_3.setText(Messages.PropertyPageDefsTab_9);
|
b_3.setText(Messages.PropertyPageDefsTab_9);
|
||||||
|
|
||||||
show_inc_files.setSelection(CDTPrefUtil.getBool(CDTPrefUtil.KEY_SHOW_INC_FILES));
|
show_inc_files.setSelection(CDTPrefUtil.getBool(CDTPrefUtil.KEY_SHOW_INC_FILES));
|
||||||
show_tree.setSelection(CDTPrefUtil.getBool(CDTPrefUtil.KEY_DTREE));
|
show_tree.setSelection(CDTPrefUtil.getBool(CDTPrefUtil.KEY_DTREE));
|
||||||
show_mng.setSelection(!CDTPrefUtil.getBool(CDTPrefUtil.KEY_NOMNG));
|
show_mng.setSelection(!CDTPrefUtil.getBool(CDTPrefUtil.KEY_NOMNG));
|
||||||
|
@ -125,7 +124,7 @@ public class PropertyPageDefsTab extends AbstractCPropertyTab {
|
||||||
show_exp.setSelection(CDTPrefUtil.getBool(CDTPrefUtil.KEY_EXPORT));
|
show_exp.setSelection(CDTPrefUtil.getBool(CDTPrefUtil.KEY_EXPORT));
|
||||||
show_providers_tab.setSelection(!CDTPrefUtil.getBool(CDTPrefUtil.KEY_NO_SHOW_PROVIDERS));
|
show_providers_tab.setSelection(!CDTPrefUtil.getBool(CDTPrefUtil.KEY_NO_SHOW_PROVIDERS));
|
||||||
show_tipbox.setSelection(CDTPrefUtil.getBool(CDTPrefUtil.KEY_TIPBOX));
|
show_tipbox.setSelection(CDTPrefUtil.getBool(CDTPrefUtil.KEY_TIPBOX));
|
||||||
|
|
||||||
switch (CDTPrefUtil.getInt(CDTPrefUtil.KEY_DISC_NAMES)) {
|
switch (CDTPrefUtil.getInt(CDTPrefUtil.KEY_DISC_NAMES)) {
|
||||||
case CDTPrefUtil.DISC_NAMING_UNIQUE_OR_BOTH: b_0.setSelection(true); break;
|
case CDTPrefUtil.DISC_NAMING_UNIQUE_OR_BOTH: b_0.setSelection(true); break;
|
||||||
case CDTPrefUtil.DISC_NAMING_UNIQUE_OR_IDS: b_1.setSelection(true); break;
|
case CDTPrefUtil.DISC_NAMING_UNIQUE_OR_IDS: b_1.setSelection(true); break;
|
||||||
|
@ -160,7 +159,7 @@ public class PropertyPageDefsTab extends AbstractCPropertyTab {
|
||||||
else if (s_2.getSelection()) x = CDTPrefUtil.POSITION_SAVE_NONE;
|
else if (s_2.getSelection()) x = CDTPrefUtil.POSITION_SAVE_NONE;
|
||||||
CDTPrefUtil.setInt(CDTPrefUtil.KEY_POSSAVE, x);
|
CDTPrefUtil.setInt(CDTPrefUtil.KEY_POSSAVE, x);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void performDefaults() {
|
protected void performDefaults() {
|
||||||
show_tree.setSelection(false);
|
show_tree.setSelection(false);
|
||||||
|
|
|
@ -29,6 +29,7 @@ import org.eclipse.cdt.core.model.util.CDTListComparator;
|
||||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||||
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
|
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
|
||||||
import org.eclipse.cdt.core.settings.model.util.CDataUtil;
|
import org.eclipse.cdt.core.settings.model.util.CDataUtil;
|
||||||
|
import org.eclipse.cdt.internal.ui.language.settings.providers.LanguageSettingsProvidersPage;
|
||||||
import org.eclipse.cdt.internal.ui.newui.StatusMessageLine;
|
import org.eclipse.cdt.internal.ui.newui.StatusMessageLine;
|
||||||
import org.eclipse.cdt.make.core.MakeCorePlugin;
|
import org.eclipse.cdt.make.core.MakeCorePlugin;
|
||||||
import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2;
|
import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2;
|
||||||
|
@ -246,7 +247,7 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf
|
||||||
Label clearLabel = ControlFactory.createLabel(autoDiscoveryGroup, Messages.DiscoveryTab_ClearDisoveredEntries);
|
Label clearLabel = ControlFactory.createLabel(autoDiscoveryGroup, Messages.DiscoveryTab_ClearDisoveredEntries);
|
||||||
|
|
||||||
// "Clear" button
|
// "Clear" button
|
||||||
clearButton = ControlFactory.createPushButton(autoDiscoveryGroup, Messages.DiscoveryTab_Clear);
|
clearButton = ControlFactory.createPushButton(autoDiscoveryGroup, Messages.DiscoveryTab_Clear);
|
||||||
GridData gd = (GridData) clearButton.getLayoutData();
|
GridData gd = (GridData) clearButton.getLayoutData();
|
||||||
gd.grabExcessHorizontalSpace = true;
|
gd.grabExcessHorizontalSpace = true;
|
||||||
//Bug 331783 - NLS: "Clear" button label in Makefile Project preferences truncated
|
//Bug 331783 - NLS: "Clear" button label in Makefile Project preferences truncated
|
||||||
|
@ -344,18 +345,18 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf
|
||||||
} else {
|
} else {
|
||||||
setVisibility(Messages.DiscoveryTab_6);
|
setVisibility(Messages.DiscoveryTab_6);
|
||||||
}
|
}
|
||||||
|
|
||||||
setEnablement();
|
setEnablement();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setEnablement() {
|
private void setEnablement() {
|
||||||
IStatus status = null;
|
IStatus status = null;
|
||||||
ICConfigurationDescription cfgDescription = page.getResDesc().getConfiguration();
|
ICConfigurationDescription cfgDescription = page.getResDesc().getConfiguration();
|
||||||
boolean isEnabled = ScannerDiscoveryLegacySupport.isLegacyScannerDiscoveryOn(cfgDescription);
|
boolean isEnabled = !LanguageSettingsProvidersPage.isLanguageSettingsProvidersEnabled(getProject()) || ScannerDiscoveryLegacySupport.isMbsLanguageSettingsProviderOn(cfgDescription);
|
||||||
if (!isEnabled) {
|
if (!isEnabled) {
|
||||||
status = new Status(IStatus.INFO, CUIPlugin.PLUGIN_ID, "Managed Build language settings provider is not enabled.");
|
status = new Status(IStatus.INFO, CUIPlugin.PLUGIN_ID, "Managed Build language settings provider is not enabled.");
|
||||||
}
|
}
|
||||||
|
|
||||||
scopeComboBox.setEnabled(isEnabled);
|
scopeComboBox.setEnabled(isEnabled);
|
||||||
resTable.setEnabled(isEnabled);
|
resTable.setEnabled(isEnabled);
|
||||||
boolean isSCDEnabled = autoDiscoveryCheckBox.getSelection();
|
boolean isSCDEnabled = autoDiscoveryCheckBox.getSelection();
|
||||||
|
@ -363,7 +364,7 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf
|
||||||
autoDiscoveryCheckBox.setEnabled(isEnabled);
|
autoDiscoveryCheckBox.setEnabled(isEnabled);
|
||||||
autoDiscoveryGroup.setEnabled(isEnabled);
|
autoDiscoveryGroup.setEnabled(isEnabled);
|
||||||
clearButton.setEnabled(isEnabled);
|
clearButton.setEnabled(isEnabled);
|
||||||
|
|
||||||
fStatusLine.setErrorStatus(status);
|
fStatusLine.setErrorStatus(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -92,8 +92,10 @@ public class ScannerDiscoveryLegacySupport {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if legacy Scanner Discovery in MBS should be active.
|
* Check if legacy Scanner Discovery in MBS should be active.
|
||||||
|
* @noreference This is internal helper method to support compatibility with previous versions
|
||||||
|
* which is not intended to be referenced by clients.
|
||||||
*/
|
*/
|
||||||
private static boolean isMbsLanguageSettingsProviderOn(ICConfigurationDescription cfgDescription) {
|
public static boolean isMbsLanguageSettingsProviderOn(ICConfigurationDescription cfgDescription) {
|
||||||
if (cfgDescription instanceof ILanguageSettingsProvidersKeeper) {
|
if (cfgDescription instanceof ILanguageSettingsProvidersKeeper) {
|
||||||
List<ILanguageSettingsProvider> lsProviders = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
List<ILanguageSettingsProvider> lsProviders = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||||
for (ILanguageSettingsProvider lsp : lsProviders) {
|
for (ILanguageSettingsProvider lsp : lsProviders) {
|
||||||
|
|
|
@ -47,7 +47,6 @@ import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvide
|
||||||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper;
|
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper;
|
||||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsBaseProvider;
|
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsBaseProvider;
|
||||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
||||||
import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport;
|
|
||||||
import org.eclipse.cdt.core.model.ILanguage;
|
import org.eclipse.cdt.core.model.ILanguage;
|
||||||
import org.eclipse.cdt.core.model.LanguageManager;
|
import org.eclipse.cdt.core.model.LanguageManager;
|
||||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||||
|
@ -453,29 +452,25 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
||||||
* Create check-box to allow disable/enable language settings providers functionality.
|
* Create check-box to allow disable/enable language settings providers functionality.
|
||||||
*/
|
*/
|
||||||
private void createEnableProvidersCheckBox() {
|
private void createEnableProvidersCheckBox() {
|
||||||
enableProvidersCheckBox = setupCheck(usercomp, Messages.CDTMainWizardPage_TrySD90, 2, GridData.FILL_HORIZONTAL);
|
// take the flag from master page if available (normally for resource properties)
|
||||||
enableProvidersCheckBox.addSelectionListener(new SelectionAdapter() {
|
|
||||||
@Override
|
|
||||||
public void widgetSelected(SelectionEvent e) {
|
|
||||||
boolean enabled = enableProvidersCheckBox.getSelection();
|
|
||||||
if (masterPropertyPage != null) {
|
|
||||||
masterPropertyPage.setLanguageSettingsProvidersEnabled(enabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
enableTabControls(enabled);
|
|
||||||
updateStatusLine();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (masterPropertyPage != null) {
|
if (masterPropertyPage != null) {
|
||||||
// take the flag from master page if available (normally for resource properties)
|
enableProvidersCheckBox = setupCheck(usercomp, Messages.CDTMainWizardPage_TrySD90, 2, GridData.FILL_HORIZONTAL);
|
||||||
|
enableProvidersCheckBox.addSelectionListener(new SelectionAdapter() {
|
||||||
|
@Override
|
||||||
|
public void widgetSelected(SelectionEvent e) {
|
||||||
|
boolean enabled = enableProvidersCheckBox.getSelection();
|
||||||
|
masterPropertyPage.setLanguageSettingsProvidersEnabled(enabled);
|
||||||
|
enableTabControls(enabled);
|
||||||
|
updateStatusLine();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
enableProvidersCheckBox.setSelection(masterPropertyPage.isLanguageSettingsProvidersEnabled());
|
enableProvidersCheckBox.setSelection(masterPropertyPage.isLanguageSettingsProvidersEnabled());
|
||||||
} else {
|
|
||||||
enableProvidersCheckBox.setSelection(ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(page.getProject()));
|
// display but disable the checkbox for file/folder resource
|
||||||
|
enableProvidersCheckBox.setEnabled(page.isForProject());
|
||||||
|
enableTabControls(enableProvidersCheckBox.getSelection());
|
||||||
}
|
}
|
||||||
// display but disable the checkbox for file/folder resource
|
|
||||||
enableProvidersCheckBox.setEnabled(page.isForProject());
|
|
||||||
enableTabControls(enableProvidersCheckBox.getSelection());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1105,7 +1100,7 @@ providers: for (ILanguageSettingsProvider provider : oldProviders) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setLanguageSettingsProvidersFunctionalityEnablement();
|
performOK();
|
||||||
|
|
||||||
trackInitialSettings();
|
trackInitialSettings();
|
||||||
updateData(getResDesc());
|
updateData(getResDesc());
|
||||||
|
@ -1113,20 +1108,8 @@ providers: for (ILanguageSettingsProvider provider : oldProviders) {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void performOK() {
|
protected void performOK() {
|
||||||
setLanguageSettingsProvidersFunctionalityEnablement();
|
if (masterPropertyPage != null && enableProvidersCheckBox.getEnabled()) {
|
||||||
}
|
masterPropertyPage.applyLanguageSettingsProvidersEnabled();
|
||||||
|
|
||||||
/**
|
|
||||||
* TODO
|
|
||||||
*/
|
|
||||||
private void setLanguageSettingsProvidersFunctionalityEnablement() {
|
|
||||||
if (page.isForProject() && enableProvidersCheckBox != null) {
|
|
||||||
boolean enabled = enableProvidersCheckBox.getSelection();
|
|
||||||
if (masterPropertyPage != null) {
|
|
||||||
enabled = masterPropertyPage.isLanguageSettingsProvidersEnabled();
|
|
||||||
}
|
|
||||||
ScannerDiscoveryLegacySupport.setLanguageSettingsProvidersFunctionalityEnabled(page.getProject(), enabled);
|
|
||||||
enableProvidersCheckBox.setSelection(enabled);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,6 @@ import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvide
|
||||||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper;
|
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper;
|
||||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
||||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsSerializableProvider;
|
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsSerializableProvider;
|
||||||
import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport;
|
|
||||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||||
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
|
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
|
||||||
import org.eclipse.cdt.ui.CDTSharedImages;
|
import org.eclipse.cdt.ui.CDTSharedImages;
|
||||||
|
@ -630,27 +629,24 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
* Create check-box to allow disable/enable language settings providers functionality.
|
* Create check-box to allow disable/enable language settings providers functionality.
|
||||||
*/
|
*/
|
||||||
private void createEnableProvidersCheckBox() {
|
private void createEnableProvidersCheckBox() {
|
||||||
enableProvidersCheckBox = setupCheck(usercomp, Messages.CDTMainWizardPage_TrySD90, 2, GridData.FILL_HORIZONTAL);
|
// take the flag from master page if available (normally for resource properties)
|
||||||
enableProvidersCheckBox.addSelectionListener(new SelectionAdapter() {
|
if (masterPropertyPage != null) {
|
||||||
@Override
|
enableProvidersCheckBox = setupCheck(usercomp, Messages.CDTMainWizardPage_TrySD90, 2, GridData.FILL_HORIZONTAL);
|
||||||
public void widgetSelected(SelectionEvent e) {
|
enableProvidersCheckBox.addSelectionListener(new SelectionAdapter() {
|
||||||
boolean enabled = enableProvidersCheckBox.getSelection();
|
@Override
|
||||||
if (masterPropertyPage != null) {
|
public void widgetSelected(SelectionEvent e) {
|
||||||
|
boolean enabled = enableProvidersCheckBox.getSelection();
|
||||||
masterPropertyPage.setLanguageSettingsProvidersEnabled(enabled);
|
masterPropertyPage.setLanguageSettingsProvidersEnabled(enabled);
|
||||||
|
enableTabControls(enabled);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
enableTabControls(enabled);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (masterPropertyPage!=null) {
|
|
||||||
enableProvidersCheckBox.setSelection(masterPropertyPage.isLanguageSettingsProvidersEnabled());
|
enableProvidersCheckBox.setSelection(masterPropertyPage.isLanguageSettingsProvidersEnabled());
|
||||||
} else {
|
|
||||||
enableProvidersCheckBox.setSelection(ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(page.getProject()));
|
// display but disable the checkbox for file/folder resource
|
||||||
|
enableProvidersCheckBox.setEnabled(page.isForProject());
|
||||||
|
enableTabControls(enableProvidersCheckBox.getSelection());
|
||||||
}
|
}
|
||||||
// display but disable the checkbox for file/folder resource
|
|
||||||
enableProvidersCheckBox.setEnabled(page.isForProject());
|
|
||||||
enableTabControls(enableProvidersCheckBox.getSelection());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1037,6 +1033,7 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
tableProvidersViewer.refresh();
|
||||||
|
|
||||||
optionsPageMap.clear();
|
optionsPageMap.clear();
|
||||||
for (ILanguageSettingsProvider provider : presentedProviders) {
|
for (ILanguageSettingsProvider provider : presentedProviders) {
|
||||||
|
@ -1062,7 +1059,7 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
setAllVisible(true, null);
|
setAllVisible(true, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enableProvidersCheckBox != null && masterPropertyPage != null) {
|
if (masterPropertyPage != null) {
|
||||||
boolean enabled = masterPropertyPage.isLanguageSettingsProvidersEnabled();
|
boolean enabled = masterPropertyPage.isLanguageSettingsProvidersEnabled();
|
||||||
enableProvidersCheckBox.setSelection(enabled);
|
enableProvidersCheckBox.setSelection(enabled);
|
||||||
enableTabControls(enabled);
|
enableTabControls(enabled);
|
||||||
|
@ -1164,13 +1161,8 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
initializeProviders();
|
initializeProviders();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (page.isForProject() && enableProvidersCheckBox != null) {
|
if (masterPropertyPage != null && enableProvidersCheckBox.getEnabled()) {
|
||||||
boolean enabled = enableProvidersCheckBox.getSelection();
|
masterPropertyPage.applyLanguageSettingsProvidersEnabled();
|
||||||
if (masterPropertyPage != null) {
|
|
||||||
enabled = masterPropertyPage.isLanguageSettingsProvidersEnabled();
|
|
||||||
}
|
|
||||||
ScannerDiscoveryLegacySupport.setLanguageSettingsProvidersFunctionalityEnabled(page.getProject(), enabled);
|
|
||||||
enableProvidersCheckBox.setSelection(enabled);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Collection<ICOptionPage> optionPages = optionsPageMap.values();
|
Collection<ICOptionPage> optionPages = optionsPageMap.values();
|
||||||
|
|
|
@ -10,18 +10,22 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.internal.ui.language.settings.providers;
|
package org.eclipse.cdt.internal.ui.language.settings.providers;
|
||||||
|
|
||||||
|
import org.eclipse.core.resources.IProject;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport;
|
import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport;
|
||||||
import org.eclipse.cdt.ui.newui.AbstractPage;
|
import org.eclipse.cdt.ui.newui.AbstractPage;
|
||||||
import org.eclipse.cdt.ui.newui.ICPropertyTab;
|
import org.eclipse.cdt.ui.newui.ICPropertyTab;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Property page for language settings providers tabs.
|
* Property page for language settings providers tabs.
|
||||||
|
* The handling of isLanguageSettingsProvidersEnabled is temporary, this control is to be removed.
|
||||||
*
|
*
|
||||||
* @noextend This class is not intended to be subclassed by clients.
|
* @noextend This class is not intended to be subclassed by clients.
|
||||||
* @noinstantiate This class is not intended to be instantiated by clients.
|
* @noinstantiate This class is not intended to be instantiated by clients.
|
||||||
*/
|
*/
|
||||||
public class LanguageSettingsProvidersPage extends AbstractPage {
|
public class LanguageSettingsProvidersPage extends AbstractPage {
|
||||||
private Boolean isLanguageSettingsProvidersEnabled = null;
|
private static boolean isLanguageSettingsProvidersEnabled = false;
|
||||||
|
private static IProject project = null;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean isSingle() {
|
protected boolean isSingle() {
|
||||||
|
@ -29,24 +33,67 @@ public class LanguageSettingsProvidersPage extends AbstractPage {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if language settings providers functionality is enabled for a current project.
|
* Check if language settings providers functionality is enabled for the project.
|
||||||
|
* Need this method as another page could be inquiring before this page gets initialized.
|
||||||
|
*
|
||||||
|
* @noreference This method is temporary and not intended to be referenced by clients.
|
||||||
|
*/
|
||||||
|
public static boolean isLanguageSettingsProvidersEnabled(IProject prj) {
|
||||||
|
if (prj != null) {
|
||||||
|
if (prj.equals(project)) {
|
||||||
|
return isLanguageSettingsProvidersEnabled;
|
||||||
|
} else {
|
||||||
|
return ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(project);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if language settings providers functionality is enabled for the current project.
|
||||||
*
|
*
|
||||||
* @noreference This method is temporary and not intended to be referenced by clients.
|
* @noreference This method is temporary and not intended to be referenced by clients.
|
||||||
*/
|
*/
|
||||||
public boolean isLanguageSettingsProvidersEnabled() {
|
public boolean isLanguageSettingsProvidersEnabled() {
|
||||||
if (isLanguageSettingsProvidersEnabled == null) {
|
IProject prj = getProject();
|
||||||
isLanguageSettingsProvidersEnabled = ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(getProject());
|
if (prj != null) {
|
||||||
|
if (!prj.equals(project)) {
|
||||||
|
project = prj;
|
||||||
|
isLanguageSettingsProvidersEnabled = ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(project);
|
||||||
|
}
|
||||||
|
return isLanguageSettingsProvidersEnabled;
|
||||||
}
|
}
|
||||||
return isLanguageSettingsProvidersEnabled;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable or disable language settings providers functionality for a current project.
|
* Enable or disable language settings providers functionality for the current project.
|
||||||
|
* Triggers update of all the property pages.
|
||||||
|
*
|
||||||
|
* Note that this method only sets property for the current editing session.
|
||||||
|
* Use {@link #applyLanguageSettingsProvidersEnabled()} to apply to the project.
|
||||||
*
|
*
|
||||||
* @noreference This method is temporary and not intended to be referenced by clients.
|
* @noreference This method is temporary and not intended to be referenced by clients.
|
||||||
*/
|
*/
|
||||||
public void setLanguageSettingsProvidersEnabled(boolean enable) {
|
public void setLanguageSettingsProvidersEnabled(boolean enable) {
|
||||||
isLanguageSettingsProvidersEnabled = enable;
|
isLanguageSettingsProvidersEnabled = enable;
|
||||||
|
project = getProject();
|
||||||
forEach(ICPropertyTab.UPDATE,getResDesc());
|
forEach(ICPropertyTab.UPDATE,getResDesc());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Apply enablement of language settings providers functionality to the current project.
|
||||||
|
*
|
||||||
|
* @noreference This method is temporary and not intended to be referenced by clients.
|
||||||
|
*/
|
||||||
|
public void applyLanguageSettingsProvidersEnabled() {
|
||||||
|
ScannerDiscoveryLegacySupport.setLanguageSettingsProvidersFunctionalityEnabled(getProject(), isLanguageSettingsProvidersEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dispose() {
|
||||||
|
isLanguageSettingsProvidersEnabled = false;
|
||||||
|
project = null;
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue