1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-23 17:05:26 +02:00

Bug 568397: Hide "Build settings" if using custom command

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 <cartu38.opendev@gmail.com>
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
This commit is contained in:
Torbjörn Svensson 2020-11-08 18:10:18 +01:00 committed by Jonah Graham
parent c0b26f9993
commit 1d226f9273
2 changed files with 23 additions and 14 deletions

View file

@ -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;
}

View file

@ -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);