diff options
Diffstat (limited to 'build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePreferencePage.java')
-rw-r--r-- | build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePreferencePage.java | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePreferencePage.java b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePreferencePage.java index 7cc58fbb996..6a6275747db 100644 --- a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePreferencePage.java +++ b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePreferencePage.java @@ -100,11 +100,11 @@ public class CMakePreferencePage extends PreferencePage implements IWorkbenchPre WizardDialog dialog = new WizardDialog(getShell(), wizard); if (dialog.open() == Window.OK) { ICMakeToolChainFile file = wizard.getNewFile(); - if (filesToRemove.containsKey(file.getPath())) { - filesToRemove.remove(file.getPath()); - } else { - filesToAdd.put(file.getPath(), file); + ICMakeToolChainFile oldFile = manager.getToolChainFile(file.getPath()); + if (oldFile != null) { + filesToRemove.put(oldFile.getPath(), oldFile); } + filesToAdd.put(file.getPath(), file); updateTable(); } } @@ -162,27 +162,27 @@ public class CMakePreferencePage extends PreferencePage implements IWorkbenchPre files.put(file.getPath(), file); } - for (ICMakeToolChainFile file : filesToAdd.values()) { - files.put(file.getPath(), file); - } - for (ICMakeToolChainFile file : filesToRemove.values()) { files.remove(file.getPath()); } + for (ICMakeToolChainFile file : filesToAdd.values()) { + files.put(file.getPath(), file); + } + return files; } @Override public boolean performOk() { - for (ICMakeToolChainFile file : filesToAdd.values()) { - manager.addToolChainFile(file); - } - for (ICMakeToolChainFile file : filesToRemove.values()) { manager.removeToolChainFile(file); } + for (ICMakeToolChainFile file : filesToAdd.values()) { + manager.addToolChainFile(file); + } + filesToAdd.clear(); filesToRemove.clear(); |