From e72e820aa8d7308c9bae1f6e6acfbb3000708669 Mon Sep 17 00:00:00 2001 From: David Inglis Date: Tue, 23 Sep 2003 14:04:58 +0000 Subject: [PATCH] fixed build location added build location browser dialog added help ids. --- .../eclipse/cdt/make/core/MakeBuilder.java | 11 ++++++++-- .../cdt/make/ui/IMakeHelpContextIds.java | 20 +++++++++++++++++++ .../make/ui/dialogs/BuildPathInfoBlock.java | 6 +++++- .../cdt/make/ui/dialogs/SettingsBlock.java | 13 +++++++++++- 4 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/IMakeHelpContextIds.java diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java index 0c7964c688b..d0ad3cb3775 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java @@ -24,6 +24,7 @@ import org.eclipse.cdt.core.ErrorParserManager; import org.eclipse.cdt.core.model.ICModelMarker; import org.eclipse.cdt.core.resources.ACBuilder; import org.eclipse.cdt.core.resources.IConsole; +import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; @@ -110,8 +111,14 @@ public class MakeBuilder extends ACBuilder { // remove all markers for this project removeAllMarkers(currProject); - IPath workingDirectory = info.getBuildLocation(); - if (workingDirectory.isEmpty()) { + IPath workingDirectory = null; + if (!info.getBuildLocation().isEmpty()) { + IResource res = currProject.getParent().findMember(info.getBuildLocation()); + if ( res instanceof IContainer && res.exists()) { + workingDirectory = res.getLocation(); + } + } + if ( workingDirectory == null) { workingDirectory = currProject.getLocation(); } String[] targets = getTargets(kind, info); diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/IMakeHelpContextIds.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/IMakeHelpContextIds.java new file mode 100644 index 00000000000..c8f17f4ca20 --- /dev/null +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/IMakeHelpContextIds.java @@ -0,0 +1,20 @@ +/******************************************************************************* + * Copyright (c) 2000, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.make.ui; + +import org.eclipse.cdt.make.internal.ui.MakeUIPlugin; + +public interface IMakeHelpContextIds { + public static final String PREFIX = MakeUIPlugin.getUniqueIdentifier() + "."; + + public static final String MAKE_PATH_SYMBOL_SETTINGS = PREFIX + "cdt_paths_symbols_page"; + public static final String MAKE_BUILDER_SETTINGS = PREFIX + "cdt_make_builder_page"; +} diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java index 8dc9750d1d8..4f936e3c0cd 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java @@ -18,6 +18,7 @@ import org.eclipse.cdt.internal.ui.util.SWTUtil; import org.eclipse.cdt.make.core.MakeCorePlugin; import org.eclipse.cdt.make.core.MakeScannerInfo; import org.eclipse.cdt.make.core.MakeScannerProvider; +import org.eclipse.cdt.make.ui.IMakeHelpContextIds; import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.ui.dialogs.AbstractCOptionPage; import org.eclipse.cdt.utils.ui.controls.ControlFactory; @@ -38,6 +39,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.help.WorkbenchHelp; public class BuildPathInfoBlock extends AbstractCOptionPage { @@ -386,6 +388,9 @@ public class BuildPathInfoBlock extends AbstractCOptionPage { Composite composite = ControlFactory.createComposite(parent, tabColumns); composite.setFont(font); GridData gd; + setControl(composite); + + WorkbenchHelp.setHelp(getControl(), IMakeHelpContextIds.MAKE_PATH_SYMBOL_SETTINGS); // Create a label for the include paths control Label paths = ControlFactory.createLabel(composite, CUIPlugin.getResourceString(PATHS)); @@ -416,7 +421,6 @@ public class BuildPathInfoBlock extends AbstractCOptionPage { enablePathButtons(); symbolList.select(0); enableSymbolButtons(); - setControl(composite); } private String[] getPathListContents() { diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/SettingsBlock.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/SettingsBlock.java index b4c130d5c22..1ce6c07a4b2 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/SettingsBlock.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/SettingsBlock.java @@ -8,6 +8,7 @@ package org.eclipse.cdt.make.ui.dialogs; import org.eclipse.cdt.make.core.IMakeBuilderInfo; import org.eclipse.cdt.make.core.MakeCorePlugin; import org.eclipse.cdt.make.internal.ui.MakeUIPlugin; +import org.eclipse.cdt.make.ui.IMakeHelpContextIds; import org.eclipse.cdt.ui.dialogs.AbstractCOptionPage; import org.eclipse.cdt.ui.dialogs.ICOptionContainer; import org.eclipse.cdt.utils.ui.controls.ControlFactory; @@ -30,6 +31,8 @@ import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.dialogs.ContainerSelectionDialog; +import org.eclipse.ui.help.WorkbenchHelp; public class SettingsBlock extends AbstractCOptionPage { @@ -220,9 +223,15 @@ public class SettingsBlock extends AbstractCOptionPage { browse.setText(MakeUIPlugin.getResourceString(MAKE_BUILD_DIR_BROWSE)); browse.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { + ContainerSelectionDialog dialog = new ContainerSelectionDialog(getShell(), getContainer().getProject(), true, "Selection Locations to build from."); + if ( dialog.open() == ContainerSelectionDialog.OK ) { + Object[] selection = dialog.getResult(); + if (selection.length > 0) { + buildLocation.setText(((IPath)selection[0]).toOSString()); + } + } } }); - browse.setEnabled(false); buildLocation.setText(fBuildInfo.getBuildLocation().toOSString()); } @@ -230,6 +239,8 @@ public class SettingsBlock extends AbstractCOptionPage { Composite composite = ControlFactory.createComposite(parent, 1); setControl(composite); + WorkbenchHelp.setHelp(getControl(), IMakeHelpContextIds.MAKE_BUILDER_SETTINGS); + if (fBuildInfo == null) { ControlFactory.createEmptySpace(composite); ControlFactory.createLabel(composite, "Missing builder information on project.");