mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-01 14:15:23 +02:00
Disallow clearing and editing entries for specific providers in UI
This commit is contained in:
parent
c9b2608713
commit
54b1cda61e
5 changed files with 29 additions and 19 deletions
|
@ -546,13 +546,17 @@
|
|||
class="org.eclipse.cdt.make.core.scannerconfig.AbstractBuildCommandParser"
|
||||
icon="icons/obj16/log_obj.gif"
|
||||
page="org.eclipse.cdt.make.internal.ui.preferences.GCCBuildCommandParserOptionPage"
|
||||
shared="false">
|
||||
shared="false"
|
||||
ui-clear-entries="true"
|
||||
ui-edit-entries="false">
|
||||
</class-association>
|
||||
<class-association
|
||||
class="org.eclipse.cdt.make.core.scannerconfig.AbstractBuiltinSpecsDetector"
|
||||
icon="icons/obj16/inspect_system.gif"
|
||||
page="org.eclipse.cdt.make.internal.ui.scannerconfig.BuiltinSpecsDetectorOptionPage"
|
||||
shared="true">
|
||||
shared="true"
|
||||
ui-clear-entries="true"
|
||||
ui-edit-entries="false">
|
||||
</class-association>
|
||||
</extension>
|
||||
<extension
|
||||
|
|
|
@ -653,7 +653,9 @@
|
|||
<id-association
|
||||
id="org.eclipse.cdt.managedbuilder.core.LanguageSettingsProvider"
|
||||
icon="icons/obj16/mbs.gif"
|
||||
shared="true">
|
||||
shared="true"
|
||||
ui-clear-entries="false"
|
||||
ui-edit-entries="false">
|
||||
</id-association>
|
||||
</extension>
|
||||
|
||||
|
|
|
@ -3806,7 +3806,9 @@
|
|||
<id-association
|
||||
id="org.eclipse.cdt.ui.user.LanguageSettingsProvider"
|
||||
icon="icons/obj16/person-me.gif"
|
||||
shared="false">
|
||||
shared="false"
|
||||
ui-clear-entries="true"
|
||||
ui-edit-entries="true">
|
||||
</id-association>
|
||||
</extension>
|
||||
<extension point="org.eclipse.cdt.ui.cPropertyTab">
|
||||
|
|
|
@ -511,17 +511,20 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
|||
boolean isEntrySelected = entry!=null;
|
||||
boolean isProviderSelected = !isEntrySelected && (provider!=null);
|
||||
|
||||
boolean isProviderEditable = provider instanceof ILanguageSettingsEditableProvider;
|
||||
// boolean isUserProvider = provider instanceof UserLanguageSettingsProvider;
|
||||
boolean isAllowedEditing = provider instanceof ILanguageSettingsEditableProvider
|
||||
&& LanguageSettingsProviderAssociationManager.isToEditEntries(provider);
|
||||
|
||||
boolean canAdd = isProviderEditable;
|
||||
boolean canEdit = isProviderEditable && isEntrySelected;
|
||||
boolean canDelete = isProviderEditable && isEntrySelected;
|
||||
boolean canClear = isProviderEditable && isProviderSelected && entries!=null && entries.size()>0;
|
||||
boolean isAllowedClearing = provider instanceof ILanguageSettingsEditableProvider
|
||||
&& LanguageSettingsProviderAssociationManager.isToClear(provider);
|
||||
|
||||
boolean canAdd = isAllowedEditing;
|
||||
boolean canEdit = isAllowedEditing && isEntrySelected;
|
||||
boolean canDelete = isAllowedEditing && isEntrySelected;
|
||||
boolean canClear = isAllowedClearing && isProviderSelected && entries!=null && entries.size()>0;
|
||||
|
||||
boolean canMoveUp = false;
|
||||
boolean canMoveDown = false;
|
||||
if (isProviderEditable && isEntrySelected && entries!=null) {
|
||||
if (isAllowedEditing && isEntrySelected && entries!=null) {
|
||||
int last = entries.size()-1;
|
||||
int pos = getExactIndex(entries, entry);
|
||||
|
||||
|
@ -552,7 +555,9 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
|||
}
|
||||
if (status==null || status==Status.OK_STATUS) {
|
||||
ILanguageSettingsProvider provider = getSelectedProvider();
|
||||
if (provider!=null && !(provider instanceof ILanguageSettingsBroadcastingProvider)) {
|
||||
boolean isAllowedEditing = provider instanceof ILanguageSettingsEditableProvider
|
||||
&& LanguageSettingsProviderAssociationManager.isToEditEntries(provider);
|
||||
if (!isAllowedEditing) {
|
||||
String msg = "Setting entries for this provider are supplied by system and are not editable.";
|
||||
status = new Status(IStatus.INFO, CUIPlugin.PLUGIN_ID, msg);
|
||||
}
|
||||
|
|
|
@ -652,13 +652,10 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
boolean isRangeOk = pos >= 0 && pos <= last;
|
||||
|
||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider);
|
||||
boolean canClear = false;
|
||||
if (rawProvider instanceof ILanguageSettingsEditableProvider) {
|
||||
// TODO - commented out because we need the means to restart failed Spec Detectors
|
||||
// if (!((ILanguageSettingsEditableProvider) rawProvider).isEmpty()) {
|
||||
canClear = canForWorkspace || canForProject;
|
||||
// }
|
||||
}
|
||||
boolean isAllowedClearing = rawProvider instanceof ILanguageSettingsEditableProvider
|
||||
&& LanguageSettingsProviderAssociationManager.isToClear(rawProvider);
|
||||
|
||||
boolean canClear = isAllowedClearing && (canForWorkspace || canForProject);
|
||||
|
||||
boolean canReset = false;
|
||||
if (rawProvider!=null && (canForWorkspace || canForProject)) {
|
||||
|
|
Loading…
Add table
Reference in a new issue