From 1d226f92731b30e3894ccdf884341e58d9990508 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B6rn=20Svensson?= Date: Sun, 8 Nov 2020 18:10:18 +0100 Subject: [PATCH] Bug 568397: Hide "Build settings" if using custom command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When unchecking the "Use default build command" checkbox, hide the GUI options to configure the flags as the user should have full control. This solution was discussed in https://git.eclipse.org/r/c/cdt/org.eclipse.cdt/+/171735 Change-Id: Ifbd67b279db55f5a83f4a660b9a1248e5c021df2 Also-by: cartu38 opendev Signed-off-by: Torbjörn Svensson --- .../managedbuilder/internal/core/Builder.java | 20 ++++++++++--------- .../ui/properties/BuildBehaviourTab.java | 17 +++++++++++----- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java index 2f1cc38fa69..f658b9e67c9 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java @@ -1086,18 +1086,20 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider @Override public String getArguments() { String args = getArgumentsAttribute(); - String stopOnErrCmd = getStopOnErrCmd(isStopOnError()); - int parallelNum = getParallelizationNum(); - String parallelCmd = isParallelBuildOn() ? getParallelizationCmd(parallelNum) : EMPTY_STRING; + if (isDefaultBuildCmd()) { + String stopOnErrCmd = getStopOnErrCmd(isStopOnError()); + int parallelNum = getParallelizationNum(); + String parallelCmd = isParallelBuildOn() ? getParallelizationCmd(parallelNum) : EMPTY_STRING; - String reversedStopOnErrCmd = getStopOnErrCmd(!isStopOnError()); - String reversedParallelBuildCmd = !isParallelBuildOn() ? getParallelizationCmd(parallelNum) : EMPTY_STRING; + String reversedStopOnErrCmd = getStopOnErrCmd(!isStopOnError()); + String reversedParallelBuildCmd = !isParallelBuildOn() ? getParallelizationCmd(parallelNum) : EMPTY_STRING; - args = removeCmd(args, reversedStopOnErrCmd); - args = removeCmd(args, reversedParallelBuildCmd); + args = removeCmd(args, reversedStopOnErrCmd); + args = removeCmd(args, reversedParallelBuildCmd); - args = addCmd(args, stopOnErrCmd); - args = addCmd(args, parallelCmd); + args = addCmd(args, stopOnErrCmd); + args = addCmd(args, parallelCmd); + } return args != null ? args.trim() : null; } diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildBehaviourTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildBehaviourTab.java index af690ef55ef..77c487c99d0 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildBehaviourTab.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildBehaviourTab.java @@ -69,6 +69,8 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab { private Button b_parallelUnlimited; private Spinner s_parallelNumber; + private Group grp_buildSettings; + private Label title2; private Button b_autoBuild; //3 private Text t_autoBuild; @@ -89,13 +91,13 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab { usercomp.setLayout(new GridLayout(1, false)); // Build setting group - Group g3 = setupGroup(usercomp, Messages.BuilderSettingsTab_9, 2, GridData.FILL_HORIZONTAL); + grp_buildSettings = setupGroup(usercomp, Messages.BuilderSettingsTab_9, 2, GridData.FILL_HORIZONTAL); GridLayout gl = new GridLayout(2, true); gl.verticalSpacing = 0; gl.marginWidth = 0; - g3.setLayout(gl); + grp_buildSettings.setLayout(gl); - Composite c1 = new Composite(g3, SWT.NONE); + Composite c1 = new Composite(grp_buildSettings, SWT.NONE); setupControl(c1, 1, GridData.FILL_BOTH); GridData gd = (GridData) c1.getLayoutData(); gd.verticalSpan = 2; @@ -109,7 +111,7 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab { b_stopOnError = setupCheck(c1, Messages.BuilderSettingsTab_10, 1, GridData.BEGINNING); - Composite c2 = new Composite(g3, SWT.NONE); + Composite c2 = new Composite(grp_buildSettings, SWT.NONE); setupControl(c2, 1, GridData.FILL_BOTH); gl = new GridLayout(1, false); gl.verticalSpacing = 0; @@ -119,7 +121,7 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab { b_parallel = setupCheck(c2, Messages.BuilderSettingsTab_EnableParallelBuild, 1, GridData.BEGINNING); - Composite c3 = new Composite(g3, SWT.NONE); + Composite c3 = new Composite(grp_buildSettings, SWT.NONE); setupControl(c3, 1, GridData.FILL_BOTH); gl = new GridLayout(2, false); gl.verticalSpacing = 0; @@ -337,6 +339,11 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab { t_cmdClean.setText(bldr.getBuildAttribute(IBuilder.BUILD_TARGET_CLEAN, EMPTY_STR)); } + boolean defaultBuildCommand = bldr.isDefaultBuildCmd(); + grp_buildSettings.setVisible(defaultBuildCommand); + ((GridData) grp_buildSettings.getLayoutData()).exclude = !defaultBuildCommand; + grp_buildSettings.getParent().layout(); + boolean external = !isInternalBuilderEnabled(); title2.setVisible(external); t_autoBuild.setVisible(external);