1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-01 13:25:45 +02:00

Bug 544721 Retain rebuildState state when cloning build configs

When cloning build config, all its childrens' rebuildState and dirty
state are maintained except for the states of AdditionalInput and
InputOrder.

With this change, we also retain their rebuildState and dirty state,
if it is a clone (that is, copyId is true in the InputType).

Change-Id: I63b2d38d0065e50357887bfccb340d458d2f4441
Signed-off-by: Philip Langer <planger@eclipsesource.com>
This commit is contained in:
Philip Langer 2019-02-22 13:52:52 +01:00
parent 2272a74f38
commit 90c82078ac
4 changed files with 38 additions and 10 deletions

View file

@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2 Bundle-ManifestVersion: 2
Bundle-Name: %pluginName Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.core; singleton:=true Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.core; singleton:=true
Bundle-Version: 8.6.1.qualifier Bundle-Version: 8.6.2.qualifier
Bundle-Activator: org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin Bundle-Activator: org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin
Bundle-Vendor: %providerName Bundle-Vendor: %providerName
Bundle-Localization: plugin Bundle-Localization: plugin

View file

@ -1,5 +1,5 @@
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2005, 2016 Intel Corporation and others. * Copyright (c) 2005, 2019 Intel Corporation and others.
* *
* This program and the accompanying materials * This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0 * are made available under the terms of the Eclipse Public License 2.0
@ -12,6 +12,7 @@
* Intel Corporation - Initial API and implementation * Intel Corporation - Initial API and implementation
* IBM Corporation * IBM Corporation
* Marc-Andre Laperle * Marc-Andre Laperle
* EclipseSource
*******************************************************************************/ *******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.core; package org.eclipse.cdt.managedbuilder.internal.core;
@ -131,6 +132,10 @@ public class AdditionalInput implements IAdditionalInput {
* @param additionalInput The existing AdditionalInput to clone. * @param additionalInput The existing AdditionalInput to clone.
*/ */
public AdditionalInput(IInputType parent, AdditionalInput additionalInput) { public AdditionalInput(IInputType parent, AdditionalInput additionalInput) {
this(parent, additionalInput, false);
}
public AdditionalInput(IInputType parent, AdditionalInput additionalInput, boolean retainRebuildState) {
this.fParent = parent; this.fParent = parent;
fIsExtensionAdditionalInput = false; fIsExtensionAdditionalInput = false;
@ -143,8 +148,13 @@ public class AdditionalInput implements IAdditionalInput {
fKind = additionalInput.fKind; fKind = additionalInput.fKind;
} }
setDirty(true); if (retainRebuildState) {
setRebuildState(true); setDirty(additionalInput.fIsDirty);
setRebuildState(additionalInput.fRebuildState);
} else {
setDirty(true);
setRebuildState(true);
}
} }
/* /*

View file

@ -1,5 +1,5 @@
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2005, 2016 Intel Corporation and others. * Copyright (c) 2005, 2019 Intel Corporation and others.
* *
* This program and the accompanying materials * This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0 * are made available under the terms of the Eclipse Public License 2.0
@ -11,6 +11,7 @@
* Contributors: * Contributors:
* Intel Corporation - Initial API and implementation * Intel Corporation - Initial API and implementation
* IBM Corporation * IBM Corporation
* EclipseSource
*******************************************************************************/ *******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.core; package org.eclipse.cdt.managedbuilder.internal.core;
@ -93,6 +94,17 @@ public class InputOrder implements IInputOrder {
* @param inputOrder The existing InputOrder to clone. * @param inputOrder The existing InputOrder to clone.
*/ */
public InputOrder(IInputType parent, InputOrder inputOrder) { public InputOrder(IInputType parent, InputOrder inputOrder) {
this(parent, inputOrder, false);
}
/**
* Create an <code>InputOrder</code> based upon an existing InputOrder.
*
* @param parent The <code>IInputType</code> the InputOrder will be added to.
* @param inputOrder The existing InputOrder to clone.
* @param retainRebuildState Whether or not to retain the <code>rebuildState</code> and <code>dirty</code> state of <code>inputOrder</code>.
*/
public InputOrder(IInputType parent, InputOrder inputOrder, boolean retainRebuildState) {
this.fParent = parent; this.fParent = parent;
fIsExtensionInputOrder = false; fIsExtensionInputOrder = false;
@ -109,8 +121,13 @@ public class InputOrder implements IInputOrder {
fExcluded = inputOrder.fExcluded; fExcluded = inputOrder.fExcluded;
} }
setDirty(true); if (retainRebuildState) {
setRebuildState(true); setDirty(inputOrder.fIsDirty);
setRebuildState(inputOrder.fRebuildState);
} else {
setDirty(true);
setRebuildState(true);
}
} }
/* /*

View file

@ -1,5 +1,5 @@
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2005, 2016 Intel Corporation and others. * Copyright (c) 2005, 2019 Intel Corporation and others.
* *
* This program and the accompanying materials * This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0 * are made available under the terms of the Eclipse Public License 2.0
@ -11,6 +11,7 @@
* Contributors: * Contributors:
* Intel Corporation - Initial API and implementation * Intel Corporation - Initial API and implementation
* IBM Corporation * IBM Corporation
* EclipseSource
*******************************************************************************/ *******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.core; package org.eclipse.cdt.managedbuilder.internal.core;
@ -282,13 +283,13 @@ public class InputType extends BuildObject implements IInputType {
// Clone the children // Clone the children
if (inputType.inputOrderList != null) { if (inputType.inputOrderList != null) {
for (InputOrder inputOrder : inputType.getInputOrderList()) { for (InputOrder inputOrder : inputType.getInputOrderList()) {
InputOrder newInputOrder = new InputOrder(this, inputOrder); InputOrder newInputOrder = new InputOrder(this, inputOrder, copyIds);
getInputOrderList().add(newInputOrder); getInputOrderList().add(newInputOrder);
} }
} }
if (inputType.additionalInputList != null) { if (inputType.additionalInputList != null) {
for (AdditionalInput additionalInput : inputType.getAdditionalInputList()) { for (AdditionalInput additionalInput : inputType.getAdditionalInputList()) {
AdditionalInput newAdditionalInput = new AdditionalInput(this, additionalInput); AdditionalInput newAdditionalInput = new AdditionalInput(this, additionalInput, copyIds);
getAdditionalInputList().add(newAdditionalInput); getAdditionalInputList().add(newAdditionalInput);
} }
} }