Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] make build location fix & help IDs

small fix to build location path plus ui change to add container browse dialog plus added help ids.

Index: src/org/eclipse/cdt/make/core/MakeBuilder.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java,v
retrieving revision 1.10
diff -u -r1.10 MakeBuilder.java
--- src/org/eclipse/cdt/make/core/MakeBuilder.java	22 Sep 2003 12:44:46 -0000	1.10
+++ src/org/eclipse/cdt/make/core/MakeBuilder.java	23 Sep 2003 13:56:44 -0000
@@ -24,6 +24,7 @@
 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 @@
 				// 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);
Index: src/org/eclipse/cdt/make/ui/IMakeHelpContextIds.java
===================================================================
RCS file: src/org/eclipse/cdt/make/ui/IMakeHelpContextIds.java
diff -N src/org/eclipse/cdt/make/ui/IMakeHelpContextIds.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/make/ui/IMakeHelpContextIds.java	23 Sep 2003 13:59:00 -0000
@@ -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";
+}
Index: src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java,v
retrieving revision 1.1
diff -u -r1.1 BuildPathInfoBlock.java
--- src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java	4 Sep 2003 17:42:03 -0000	1.1
+++ src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java	23 Sep 2003 13:59:00 -0000
@@ -18,6 +18,7 @@
 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.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 @@
 		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 @@
 		enablePathButtons();
 		symbolList.select(0);
 		enableSymbolButtons();
-		setControl(composite);
 	}
 
 	private String[] getPathListContents() {
Index: src/org/eclipse/cdt/make/ui/dialogs/SettingsBlock.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/SettingsBlock.java,v
retrieving revision 1.1
diff -u -r1.1 SettingsBlock.java
--- src/org/eclipse/cdt/make/ui/dialogs/SettingsBlock.java	4 Sep 2003 17:42:03 -0000	1.1
+++ src/org/eclipse/cdt/make/ui/dialogs/SettingsBlock.java	23 Sep 2003 13:59:00 -0000
@@ -8,6 +8,7 @@
 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.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,15 +223,23 @@
 		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());
 	}
 
 	public void createControl(Composite parent) {
 		Composite composite = ControlFactory.createComposite(parent, 1);
 		setControl(composite);
+
+		WorkbenchHelp.setHelp(getControl(), IMakeHelpContextIds.MAKE_BUILDER_SETTINGS);
 
 		if (fBuildInfo == null) {
 			ControlFactory.createEmptySpace(composite);

Back to the top