mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-11 02:55:23 +02:00
Fix NPE on last descriptor delete. Refactor supportsTarget code.
Change-Id: I51ed0640a187428416e6d10785b0efc22af764be
This commit is contained in:
parent
4bada0e6ab
commit
303bd3aaa7
1 changed files with 24 additions and 27 deletions
|
@ -97,21 +97,13 @@ public class LaunchBarControl implements ILaunchBarListener {
|
||||||
configSelector.setInput(manager);
|
configSelector.setInput(manager);
|
||||||
|
|
||||||
boolean supportsTargets;
|
boolean supportsTargets;
|
||||||
if (store.getBoolean(Activator.PREF_ALWAYS_TARGETSELECTOR)) {
|
|
||||||
supportsTargets = true;
|
|
||||||
} else {
|
|
||||||
try {
|
try {
|
||||||
ILaunchDescriptor desc = manager.getActiveLaunchDescriptor();
|
supportsTargets = supportsTargets(manager.getActiveLaunchDescriptor());
|
||||||
if (desc != null) {
|
|
||||||
supportsTargets = desc.getType().supportsTargets();
|
|
||||||
} else {
|
|
||||||
supportsTargets = true;
|
|
||||||
}
|
|
||||||
} catch (CoreException e) {
|
} catch (CoreException e) {
|
||||||
Activator.log(e);
|
Activator.log(e);
|
||||||
supportsTargets = true;
|
supportsTargets = true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (supportsTargets) {
|
if (supportsTargets) {
|
||||||
createTargetSelector();
|
createTargetSelector();
|
||||||
}
|
}
|
||||||
|
@ -191,20 +183,7 @@ public class LaunchBarControl implements ILaunchBarListener {
|
||||||
configSelector.setDelayedSelection(descriptor, SELECTION_DELAY);
|
configSelector.setDelayedSelection(descriptor, SELECTION_DELAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
IPreferenceStore store = Activator.getDefault().getPreferenceStore();
|
if (supportsTargets(descriptor)) {
|
||||||
boolean supportsTargets;
|
|
||||||
if (store.getBoolean(Activator.PREF_ALWAYS_TARGETSELECTOR)) {
|
|
||||||
supportsTargets = true;
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
supportsTargets = descriptor.getType().supportsTargets();
|
|
||||||
} catch (CoreException e) {
|
|
||||||
supportsTargets = true;
|
|
||||||
Activator.log(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (supportsTargets) {
|
|
||||||
if (targetSelector == null || targetSelector.isDisposed()) {
|
if (targetSelector == null || targetSelector.isDisposed()) {
|
||||||
createTargetSelector();
|
createTargetSelector();
|
||||||
syncSelectors();
|
syncSelectors();
|
||||||
|
@ -220,6 +199,24 @@ public class LaunchBarControl implements ILaunchBarListener {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean supportsTargets(ILaunchDescriptor descriptor) {
|
||||||
|
if (descriptor == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
IPreferenceStore store = Activator.getDefault().getPreferenceStore();
|
||||||
|
if (store.getBoolean(Activator.PREF_ALWAYS_TARGETSELECTOR)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
return descriptor.getType().supportsTargets();
|
||||||
|
} catch (CoreException e) {
|
||||||
|
Activator.log(e);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void activeLaunchModeChanged(ILaunchMode mode) {
|
public void activeLaunchModeChanged(ILaunchMode mode) {
|
||||||
if (modeSelector != null) {
|
if (modeSelector != null) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue