mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-08 10:16:03 +02:00
Fix for not persisting the configuration removal
This commit is contained in:
parent
627efcaeb6
commit
edd4b98198
3 changed files with 24 additions and 0 deletions
|
@ -402,6 +402,11 @@ public class CConfigurationDescription extends CDataProxyContainer implements IC
|
|||
// } catch (CoreException e) {
|
||||
// }
|
||||
|
||||
try {
|
||||
getSpecSettings().removeConfiguration();
|
||||
} catch (CoreException e) {
|
||||
CCorePlugin.log(e);
|
||||
}
|
||||
((CProjectDescription)getProjectDescription()).configurationRemoved(this);
|
||||
remove();
|
||||
}
|
||||
|
|
|
@ -262,6 +262,9 @@ public class CConfigurationSpecSettings implements ICSettingsStorage{
|
|||
return fRootStorageElement;
|
||||
}
|
||||
|
||||
void removeConfiguration() throws CoreException{
|
||||
CProjectDescriptionManager.getInstance().removeStorage(fCfg.getProjectDescription(), fCfg.getId());
|
||||
}
|
||||
private CStorage getStorageBase() throws CoreException{
|
||||
if(fStorage == null){
|
||||
fStorage = new CStorage((InternalXmlStorageElement)getRootStorageElement());
|
||||
|
|
|
@ -1477,6 +1477,22 @@ public class CProjectDescriptionManager {
|
|||
return element;
|
||||
}
|
||||
|
||||
void removeStorage(ICSettingsStorage storage, String cfgId) throws CoreException{
|
||||
ICStorageElement rootElement = storage.getStorage(MODULE_ID, false);
|
||||
if(rootElement != null){
|
||||
ICStorageElement children[] = rootElement.getChildren();
|
||||
|
||||
for(int i = 0; i < children.length; i++){
|
||||
if(CONFIGURATION.equals(children[i].getName())
|
||||
&& cfgId.equals(children[i].getAttribute(CConfigurationSpecSettings.ID))){
|
||||
rootElement.removeChild(children[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
CConfigurationData loadData(ICConfigurationDescription des, IProgressMonitor monitor) throws CoreException{
|
||||
if(monitor == null)
|
||||
monitor = new NullProgressMonitor();
|
||||
|
|
Loading…
Add table
Reference in a new issue