# HG changeset patch # User Alexander Simon # Date 1352474549 -14400 # Node ID c25ece3b86b864fc696481663275b5e161e31485 # Parent 5c998acccb85c697e91b8e3233aebb435c289e10 fixing Bug #221835 Code model can be broken by different ways on the simplest project with two configurations diff --git a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/NativeProjectProvider.java b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/NativeProjectProvider.java --- a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/NativeProjectProvider.java +++ b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/NativeProjectProvider.java @@ -456,14 +456,19 @@ return; } + boolean toolColectionChanged = false; // Check compiler collection. Fire if different (IZ 131825) if (!oldMConf.getCompilerSet().getName().equals(newMConf.getCompilerSet().getName()) || !oldMConf.getDevelopmentHost().getExecutionEnvironment().equals(newMConf.getDevelopmentHost().getExecutionEnvironment())) { - fireFilesPropertiesChanged(); // firePropertiesChanged(getAllFiles(), true); MakeLogicalViewProvider.checkForChangedViewItemNodes(proj, null, null); if (!oldMConf.getDevelopmentHost().getExecutionEnvironment().equals(newMConf.getDevelopmentHost().getExecutionEnvironment())) { MakeLogicalViewProvider.checkForChangedName(proj); } + toolColectionChanged = true; + } + + if (toolColectionChanged && newConf.getName().equals(oldConf.getName())) { + fireFilesPropertiesChanged(); return; } @@ -490,9 +495,6 @@ added.add(items[i]); } MakeLogicalViewProvider.checkForChangedViewItemNodes(proj, null, items[i]); - } - - if (newItemConf.getExcluded().getValue()) { continue; } @@ -515,8 +517,7 @@ list.add(items[i]); continue; } - } - if (newItemConf.getTool() == PredefinedToolKind.CCCompiler) { + } else if (newItemConf.getTool() == PredefinedToolKind.CCCompiler) { if (oldItemConf.getTool() != PredefinedToolKind.CCCompiler) { list.add(items[i]); continue; @@ -540,7 +541,10 @@ fireFilesRemoved(deleted); fireFilesAdded(added); if (!list.isEmpty()) { - this.fireFilesPropertiesChanged(list); + fireFilesPropertiesChanged(list); + } + if (toolColectionChanged) { + fireFilesPropertiesChanged(); } } diff --git a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/api/MakeCustomizerProvider.java b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/api/MakeCustomizerProvider.java --- a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/api/MakeCustomizerProvider.java +++ b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/api/MakeCustomizerProvider.java @@ -312,6 +312,9 @@ List oldTestRoots = ((MakeConfigurationDescriptor) projectDescriptor).getTestRoots(); List newTestRoots = ((MakeConfigurationDescriptor) clonedProjectdescriptor).getTestRoots(); Configuration oldActive = projectDescriptor.getConfs().getActive(); + if (oldActive != null) { + oldActive = oldActive.cloneConf(); + } Configuration newActive = clonedProjectdescriptor.getConfs().getActive(); projectDescriptor.assign(clonedProjectdescriptor);