mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
bug 299858: Project Explorer is not notified when FolderDescription is created for an existing folder
This commit is contained in:
parent
b4c4b327e2
commit
5f3fb60696
1 changed files with 16 additions and 10 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2007, 2009 Intel Corporation and others.
|
* Copyright (c) 2007, 2010 Intel Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -1978,9 +1978,6 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager {
|
||||||
private List<CElementDelta> generateCElementDeltasFromResourceDelta(ICProject cProject, ICDescriptionDelta delta, List<CElementDelta> list){
|
private List<CElementDelta> generateCElementDeltasFromResourceDelta(ICProject cProject, ICDescriptionDelta delta, List<CElementDelta> list){
|
||||||
int kind = delta.getDeltaKind();
|
int kind = delta.getDeltaKind();
|
||||||
ICDescriptionDelta parentDelta = delta.getParent();
|
ICDescriptionDelta parentDelta = delta.getParent();
|
||||||
ICElement el;
|
|
||||||
// IProject project = cProject.getProject();
|
|
||||||
IResource rc = null;
|
|
||||||
|
|
||||||
ICResourceDescription oldRcDes;
|
ICResourceDescription oldRcDes;
|
||||||
ICResourceDescription newRcDes;
|
ICResourceDescription newRcDes;
|
||||||
|
@ -1991,6 +1988,11 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager {
|
||||||
path = oldRcDes.getPath();
|
path = oldRcDes.getPath();
|
||||||
newRcDes = ((ICConfigurationDescription)parentDelta.getNewSetting()).getResourceDescription(path, false);
|
newRcDes = ((ICConfigurationDescription)parentDelta.getNewSetting()).getResourceDescription(path, false);
|
||||||
break;
|
break;
|
||||||
|
case ICDescriptionDelta.ADDED:
|
||||||
|
newRcDes = (ICResourceDescription)delta.getNewSetting();
|
||||||
|
path = newRcDes.getPath();
|
||||||
|
oldRcDes = null;
|
||||||
|
break;
|
||||||
case ICDescriptionDelta.CHANGED:
|
case ICDescriptionDelta.CHANGED:
|
||||||
// if((delta.getChangeFlags() & ICProjectDescriptionDelta.PATH) == 0){
|
// if((delta.getChangeFlags() & ICProjectDescriptionDelta.PATH) == 0){
|
||||||
newRcDes = (ICResourceDescription)delta.getNewSetting();
|
newRcDes = (ICResourceDescription)delta.getNewSetting();
|
||||||
|
@ -1998,8 +2000,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager {
|
||||||
oldRcDes = (ICResourceDescription)delta.getOldSetting();
|
oldRcDes = (ICResourceDescription)delta.getOldSetting();
|
||||||
break;
|
break;
|
||||||
// }
|
// }
|
||||||
//if path changed treat as added
|
// //if path changed treat as default
|
||||||
case ICDescriptionDelta.ADDED:
|
|
||||||
default:
|
default:
|
||||||
newRcDes = (ICResourceDescription)delta.getNewSetting();
|
newRcDes = (ICResourceDescription)delta.getNewSetting();
|
||||||
path = newRcDes.getPath();
|
path = newRcDes.getPath();
|
||||||
|
@ -2007,14 +2008,15 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
path = path.makeRelative();
|
path = path.makeRelative();
|
||||||
el = null;
|
|
||||||
|
ICElement el = null;
|
||||||
try {
|
try {
|
||||||
el = cProject.findElement(path);
|
el = cProject.findElement(path);
|
||||||
rc = el.getResource();
|
|
||||||
} catch (CModelException e) {
|
} catch (CModelException e) {
|
||||||
// int i = 0;
|
return list;
|
||||||
}
|
}
|
||||||
// rc = ResourcesPlugin.getWorkspace().getRoot().findMember(project.getFullPath().append(path));
|
IResource rc = el.getResource();
|
||||||
|
|
||||||
if(rc != null){
|
if(rc != null){
|
||||||
if(rc.getType() == IResource.FILE){
|
if(rc.getType() == IResource.FILE){
|
||||||
String fileName = path.lastSegment();
|
String fileName = path.lastSegment();
|
||||||
|
@ -2031,6 +2033,10 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager {
|
||||||
}
|
}
|
||||||
ICDescriptionDelta folderDelta = createDelta((ICFolderDescription)newRcDes, oldFoDes);
|
ICDescriptionDelta folderDelta = createDelta((ICFolderDescription)newRcDes, oldFoDes);
|
||||||
if(folderDelta != null){
|
if(folderDelta != null){
|
||||||
|
CElementDelta cElDelta = new CElementDelta(el.getCModel());
|
||||||
|
cElDelta.changed(el, ICElementDelta.F_MODIFIERS);
|
||||||
|
list.add(cElDelta);
|
||||||
|
|
||||||
ICDescriptionDelta children[] = folderDelta.getChildren();
|
ICDescriptionDelta children[] = folderDelta.getChildren();
|
||||||
ICDescriptionDelta child;
|
ICDescriptionDelta child;
|
||||||
for(int i = 0; i < children.length; i++){
|
for(int i = 0; i < children.length; i++){
|
||||||
|
|
Loading…
Add table
Reference in a new issue