1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Fix *Dirty to account for new children

This commit is contained in:
Leo Treggiari 2005-07-04 22:51:47 +00:00
parent 7197ddb46d
commit f4ecd61137
2 changed files with 40 additions and 0 deletions

View file

@ -1105,6 +1105,19 @@ public class InputType extends BuildObject implements IInputType {
public boolean isDirty() {
// This shouldn't be called for an extension InputType
if (isExtensionInputType) return false;
// Check my children
Iterator typeIter = getInputOrderList().iterator();
while (typeIter.hasNext()) {
InputOrder current = (InputOrder)typeIter.next();
if (current.isDirty()) return true;
}
typeIter = getAdditionalInputList().iterator();
while (typeIter.hasNext()) {
AdditionalInput current = (AdditionalInput)typeIter.next();
if (current.isDirty()) return true;
}
return isDirty;
}
@ -1113,6 +1126,19 @@ public class InputType extends BuildObject implements IInputType {
*/
public void setDirty(boolean isDirty) {
this.isDirty = isDirty;
// Propagate "false" to the children
if (!isDirty) {
Iterator typeIter = getInputOrderList().iterator();
while (typeIter.hasNext()) {
InputOrder current = (InputOrder)typeIter.next();
current.setDirty(false);
}
typeIter = getAdditionalInputList().iterator();
while (typeIter.hasNext()) {
AdditionalInput current = (AdditionalInput)typeIter.next();
current.setDirty(false);
}
}
}
/* (non-Javadoc)

View file

@ -2265,6 +2265,20 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory {
// If I need saving, just say yes
if (isDirty) return true;
// Check my children
List typeElements = getInputTypeList();
Iterator iter = typeElements.listIterator();
while (iter.hasNext()) {
InputType type = (InputType) iter.next();
if (type.isDirty()) return true;
}
typeElements = getOutputTypeList();
iter = typeElements.listIterator();
while (iter.hasNext()) {
OutputType type = (OutputType) iter.next();
if (type.isDirty()) return true;
}
// Otherwise see if any options need saving
if (super.isDirty()) {
return true;