bug 137058 - disabling project-specific settings wasn't deleting generated files.
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptConfigurationBlock.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptConfigurationBlock.java
index 4cf7a2f..d902e24 100644
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptConfigurationBlock.java
+++ b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptConfigurationBlock.java
@@ -320,7 +320,8 @@
@Override
protected void saveSettings() {
List<ProcessorOption> elements;
- if ((fJProj != null) && !fBlockControl.isEnabled()) {
+ boolean isProjSpecificDisabled = (fJProj != null) && !fBlockControl.isEnabled();
+ if (isProjSpecificDisabled) {
// We're in a project properties pane but the entire configuration
// block control is disabled. That means the per-project settings checkbox
// is unchecked. To save that state, we'll clear the proc options map.
@@ -332,10 +333,20 @@
saveProcessorOptions(elements);
super.saveSettings();
if (null != fAptProject) {
- if (!fOriginalGenSrcDir.equals(fGenSrcDirField.getText()))
- fAptProject.preferenceChanged(AptPreferenceConstants.APT_GENSRCDIR);
- if (fOriginalAptEnabled != fAptEnabledField.isSelected())
- fAptProject.preferenceChanged(AptPreferenceConstants.APT_ENABLED);
+ if (isProjSpecificDisabled) { // compare against workspace defaults
+ if (!fOriginalGenSrcDir.equals(AptConfig.getGenSrcDir(null))) {
+ fAptProject.preferenceChanged(AptPreferenceConstants.APT_GENSRCDIR);
+ }
+ if (fOriginalAptEnabled != AptConfig.isEnabled(null)) {
+ fAptProject.preferenceChanged(AptPreferenceConstants.APT_ENABLED);
+ }
+ }
+ else { // compare against current settings
+ if (!fOriginalGenSrcDir.equals(fGenSrcDirField.getText()))
+ fAptProject.preferenceChanged(AptPreferenceConstants.APT_GENSRCDIR);
+ if (fOriginalAptEnabled != fAptEnabledField.isSelected())
+ fAptProject.preferenceChanged(AptPreferenceConstants.APT_ENABLED);
+ }
}
}