1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-29 20:05:35 +02:00

Additional fix to the progress monitor support basis for the CProjectDescription operation

This commit is contained in:
Mikhail Sennikovsky 2007-03-16 22:06:13 +00:00
parent 968559df5c
commit ff9b1c4616

View file

@ -704,43 +704,46 @@ public class CProjectDescriptionManager {
} }
public void updateProjectDescriptions(IProgressMonitor monitor) throws CoreException{ public void updateProjectDescriptions(IProgressMonitor monitor) throws CoreException{
IWorkspace wsp = ResourcesPlugin.getWorkspace(); try {
final IProject projects[] = wsp.getRoot().getProjects(); IWorkspace wsp = ResourcesPlugin.getWorkspace();
final ICProjectDescription dess[] = new ICProjectDescription[projects.length]; final IProject projects[] = wsp.getRoot().getProjects();
int num = 0; final ICProjectDescription dess[] = new ICProjectDescription[projects.length];
for(int i = 0; i < projects.length; i++){ int num = 0;
ICProjectDescription des = getProjectDescription(projects[i], false, true); for(int i = 0; i < projects.length; i++){
if(des != null) ICProjectDescription des = getProjectDescription(projects[i], false, true);
dess[num++] = des; if(des != null)
} dess[num++] = des;
}
if(num != 0){ if(num != 0){
final int[] fi = new int[num]; final int[] fi = new int[1];
runWspModification(new IWorkspaceRunnable(){ fi[0] = num;
runWspModification(new IWorkspaceRunnable(){
public void run(IProgressMonitor monitor) throws CoreException { public void run(IProgressMonitor monitor) throws CoreException {
monitor.beginTask("Refreshing the project settings", fi[0]); monitor.beginTask("Refreshing the project settings", fi[0]);
for(int i = 0; i < dess.length; i++){ for(int i = 0; i < dess.length; i++){
ICProjectDescription des = dess[i]; ICProjectDescription des = dess[i];
if(des == null) if(des == null)
break; break;
IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1); IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1);
try { try {
setProjectDescription(des.getProject(), des, true, subMonitor); setProjectDescription(des.getProject(), des, true, subMonitor);
} catch (CoreException e){ } catch (CoreException e){
CCorePlugin.log(e); CCorePlugin.log(e);
} finally { } finally {
subMonitor.done(); subMonitor.done();
}
} }
} }
} }, monitor);
}, new NullProgressMonitor());
}
} finally {
monitor.done();
} }
monitor.done();
} }
private ICProjectConverter getConverter(IProject project, String oldOwnerId, ICProjectDescription des){ private ICProjectConverter getConverter(IProject project, String oldOwnerId, ICProjectDescription des){