merge commit
authortimkelly
Mon, 30 Aug 2010 10:33:21 -0500
changeset 1908 8b428a8a3473
parent 1907 8eeb96baf835 (current diff)
parent 1906 6f11f5393a5c (diff)
child 1909 d88d351ae694
merge commit
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/ProjectPropertiesTest.java	Mon Aug 30 10:31:52 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/ProjectPropertiesTest.java	Mon Aug 30 10:33:21 2010 -0500
@@ -188,7 +188,17 @@
 		assertEquals(3, cpi.getBuildConfigurations().size());
 		
 		ICarbideBuildConfiguration defConfig = cpi.getDefaultConfiguration();
-		assertEquals(stockBuildConfigs.get(1).getDisplayString(), defConfig.getDisplayString());
+		
+		boolean foundConfigFromStock = false;
+		for (ISymbianBuildContext context : stockBuildConfigs){
+			if (defConfig.getDisplayString().equals(context.getDisplayString())){
+				foundConfigFromStock = true;
+				break;
+			}
+		}
+		
+		assertTrue(foundConfigFromStock);
+		
 	}
 	
 	// Test the reading and writing of the default configuration
@@ -197,10 +207,15 @@
 		assertEquals(3, cpm.getBuildConfigurations().size());
 		
 		ICarbideBuildConfiguration defConfig = cpm.getDefaultConfiguration();
-		assertEquals(stockBuildConfigs.get(1).getDisplayString(), defConfig.getDisplayString());
 		
 		// make another configuration the default one...
-		ICarbideBuildConfiguration newDefaultConfig = cpm.getNamedConfiguration(stockBuildConfigs.get(2).getDisplayString());
+		ICarbideBuildConfiguration newDefaultConfig = null;
+		for (ISymbianBuildContext context : stockBuildConfigs){
+			if (context.getTargetString().equalsIgnoreCase("udeb") && context.getPlatformString().equalsIgnoreCase("armv5")){
+				newDefaultConfig = cpm.getNamedConfiguration(context.getDisplayString());
+				break;
+			}
+		}
 		assertNotNull(newDefaultConfig);
 		cpm.setDefaultConfiguration(newDefaultConfig);
 		cpm.saveChanges();
@@ -210,7 +225,17 @@
 
 		// Check to see that we got the new default config
 		defConfig = cpi.getDefaultConfiguration();
-		assertEquals(stockBuildConfigs.get(2).getDisplayString(), defConfig.getDisplayString());
+
+		boolean foundConfigFromStock = false;
+		for (ISymbianBuildContext context : stockBuildConfigs){
+			if (defConfig.getDisplayString().equals(context.getDisplayString())){
+				foundConfigFromStock = true;
+				break;
+			}
+		}
+		
+		assertTrue(foundConfigFromStock);
+		
 	}
 	
 	public void testWritePKGData(){
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/SBSv2QueryTests.java	Mon Aug 30 10:31:52 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/SBSv2QueryTests.java	Mon Aug 30 10:33:21 2010 -0500
@@ -36,7 +36,7 @@
 	
 	private long startTime;
 	
-	//private final String SDK_ID1 = "Nokia_Symbian3_SDK_v0.9"; // SDK with additional aliases and products
+	//private final String SDK_ID1 = "s3"; // SDK with additional aliases and products
 	private final String SDK_ID1 = "K_92_WK12";
 	
 	@Override
@@ -85,7 +85,13 @@
 				System.out.println("Config " + sbsv2Context.getSBSv2Alias() + " had error, cannot fully test: " + sbsv2Context.getConfigQueryData().getConfigurationErrorMessage());
 			}
 			
-			assertTrue(sbsv2Context.getConfigQueryData().getTargettypes().size() > 0);
+			if (sbsv2Context.getConfigQueryData().getConfigurationErrorMessage() == null || 
+				sbsv2Context.getConfigQueryData().getConfigurationErrorMessage().length() == 0 ){
+				// If there is an error in a configuration we know there won't be any target types
+				assertTrue(sbsv2Context.getConfigQueryData().getTargettypes().size() > 0);
+			} else {
+				assertFalse(sbsv2Context.getConfigQueryData().getTargettypes() == null);
+			}
 		}
 	}
 		
--- a/core/carbide_releases/configuration/server.properties	Mon Aug 30 10:31:52 2010 -0500
+++ b/core/carbide_releases/configuration/server.properties	Mon Aug 30 10:33:21 2010 -0500
@@ -15,3 +15,4 @@
 com.nokia.carbide.internal.discovery.ui.view.WrenchSciencePage=http://blogs.in.nokia.com/wrenchscience/rss.xml
 com.nokia.carbide.internal.discovery.ui.view.CreatingCarbidePage=http://creatingcarbide.blogspot.com/feeds/posts/default?alt=rss
 com.nokia.carbide.internal.discovery.ui.view.PulsarPageLayer=http://tools.ext.nokia.com/pulsar/directory.xml
+com.nokia.carbide.internal.discovery.ui.view.SupportPage=http://www.yahoo.com
--- a/core/com.nokia.carbide.cpp.featureTracker/src/com/nokia/carbide/cpp/internal/api/featureTracker/IFeatureUseTracker.java	Mon Aug 30 10:31:52 2010 -0500
+++ b/core/com.nokia.carbide.cpp.featureTracker/src/com/nokia/carbide/cpp/internal/api/featureTracker/IFeatureUseTracker.java	Mon Aug 30 10:33:21 2010 -0500
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv2.java	Mon Aug 30 10:31:52 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv2.java	Mon Aug 30 10:33:21 2010 -0500
@@ -142,6 +142,9 @@
 		if (sbsv2Alias.toUpperCase().contains(TOOLCHAIN_GCCE) ||
 			sbsv2Alias.toUpperCase().contains(TOOLCHAIN_ARM)) {
 			if (configQueryData != null) {
+				if (configQueryData.getBuildPrefix() != null && !(new File(configQueryData.getBuildPrefix()).exists())){
+					this.configQueryData = setConfigQueryData(sdk, getSBSv2Alias());
+				}
 				return new Path(configQueryData.getBuildPrefix());
 			}
 		} 
@@ -160,7 +163,7 @@
 
 	public List<IDefine> getCompilerPreincludeDefines() {
 		IPath prefixFile = getCompilerPrefixFile();
-		if (prefixFile == null || !prefixFile.toFile().exists()) {
+		if (prefixFile == null) {
 			return getCachedData().getCompilerMacros(null);
 		}
 		
@@ -391,11 +394,15 @@
 	 */
 	public IPath getPrefixFromVariantCfg(){
 		ISBSv2BuildInfo sbsv2BldInfo = ((ISBSv2BuildInfo)getSDK().getBuildInfo(ISymbianBuilderID.SBSV2_BUILDER));
+		if (sbsv2BldInfo.getPrefixFromVariantCfg().toOSString().length() == 0){
+			return null;
+		}
 		return sbsv2BldInfo.getPrefixFromVariantCfg();
 	}
 
 	public List<IDefine> getBuildMacros() {
 		ISBSv2BuildInfo sbsv2BldInfo = ((ISBSv2BuildInfo)getSDK().getBuildInfo(ISymbianBuilderID.SBSV2_BUILDER));
+		
 		Map<String, String> buildMacroMap = sbsv2BldInfo.getBuildMacros(getSBSv2Alias());
 		List<IDefine> defines = new ArrayList<IDefine>();
 		for (String macroName : buildMacroMap.keySet()){
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianBuildContextDataCache.java	Mon Aug 30 10:31:52 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianBuildContextDataCache.java	Mon Aug 30 10:33:21 2010 -0500
@@ -159,7 +159,7 @@
 		
 		boolean buildCache = false;
 		
-		if (hrhFileInfo == null) {
+		if (hrhFileInfo == null || hrhFileInfo.getFiles().length == 0) {
 			// hasn't been built yet, or was flushed
 			buildCache = true;
 		} else {
@@ -311,7 +311,7 @@
 		
 		compilerPrefixFile = prefixFile;
 
-		if (compilerPrefixFileInfo == null ||
+		if (compilerPrefixFileInfo == null || compilerPrefixFile == null ||
 				compilerPrefixFileInfo.anyChanged()) {
 
 			changed = true;
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/SBSv2ConfigQueryData.java	Mon Aug 30 10:31:52 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/SBSv2ConfigQueryData.java	Mon Aug 30 10:33:21 2010 -0500
@@ -1,5 +1,6 @@
 package com.nokia.carbide.cpp.internal.api.sdk.sbsv2;
 
+import java.io.File;
 import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -181,6 +182,11 @@
 										if (valueNode != null) {
 											value = valueNode.getNodeValue();
 										}
+										if (name.equals("__PRODUCT_INCLUDE__")){
+											File f = new File(value.replaceAll("\"", ""));
+											if (!f.exists())
+												continue; // Don't add a product include for non-existent HRH
+										}
 										buildMacros.put(name, value);
 									} else if (buildChild.getNodeName().equals("preinclude")){
 										buildPrefix = attribs.getNamedItem("file").getNodeValue();
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBSv2BuildInfo.java	Mon Aug 30 10:31:52 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBSv2BuildInfo.java	Mon Aug 30 10:33:21 2010 -0500
@@ -248,7 +248,8 @@
 	
 	public Map<String, String> getBuildMacros(String buildAlias) {
 		Map<String, String> buildMacros = cachedBuildMacros.get(buildAlias);
-		if (buildMacros == null) {
+		
+		if (buildMacros == null || buildMacros.size() == 0) {
 			buildMacros = new HashMap<String, String>();
 			synchronized (cachedBuildMacros) {
 				if (sbsv2FilteredContexts == null || sbsv2FilteredContexts.size() == 0) {
@@ -272,7 +273,7 @@
 	 * @return A path object, or null if the variant.cfg does not exist. This routine does not check to see if the returned path exists.
 	 */
 	public IPath getPrefixFromVariantCfg(){
-		if (cachedVariantHRHFile == null) {
+		if (cachedVariantHRHFile == null || cachedVariantHRHFile.toOSString().length() == 0) {
 			if (sbsv2FilteredContexts == null || sbsv2FilteredContexts.size() == 0) {
 				getFilteredBuildConfigurations();
 			}
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManager.java	Mon Aug 30 10:31:52 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManager.java	Mon Aug 30 10:33:21 2010 -0500
@@ -54,7 +54,10 @@
 
 	private static final String EMPTY_DEVICES_XML_CONTENT = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><devices version=\"1.0\"></devices>";
 
+	/** Older kits put qmake under the tools/qt folder. */
 	private static final String QMAKE_FILE = "epoc32/tools/qt/qmake" + HostOS.EXE_EXT; //$NON-NLS-1$
+	/** Newer kits put qmake under the tools folder */
+	private static final String QMAKE_FILE_LOCATION2 = "epoc32/tools/qmake" + HostOS.EXE_EXT; //$NON-NLS-1$
 	private static final String MIFCONV_FILE = "epoc32/tools/mifconv" + HostOS.EXE_EXT; //$NON-NLS-1$
 	private static final String ABLD_FILE = "epoc32/tools/abld.pl"; //$NON-NLS-1$
 	private static final long VALID_ABLD_SIZE = 1024;
@@ -440,10 +443,17 @@
 	}
 
 	private boolean hasQmake(ISymbianSDK sdk) {
-		File qmake = new File(sdk.getEPOCROOT(), QMAKE_FILE);
+		File qmake = new File(sdk.getEPOCROOT(), QMAKE_FILE_LOCATION2);
 		if (qmake.exists()) {
 			return true;
 		}
+		
+		// try alternate (old) location
+		qmake = new File(sdk.getEPOCROOT(), QMAKE_FILE);
+		if (qmake.exists()) {
+			return true;
+		}
+		
 		return false;
 	}
 
--- a/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/api/sdk/ui/BuildPlatformFilterPage.java	Mon Aug 30 10:31:52 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/api/sdk/ui/BuildPlatformFilterPage.java	Mon Aug 30 10:33:21 2010 -0500
@@ -92,6 +92,14 @@
 		return super.performOk();
 	}
 
+	public boolean performCancel() {
+		if (sbsv2Tab != null) {
+			sbsv2Tab.performCancel();
+		}
+
+		return super.performCancel();
+	}
+
 	@Override
 	protected void performApply() {
 		performOk();
--- a/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/api/sdk/ui/SBSv2PlatformFilterComposite.java	Mon Aug 30 10:31:52 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/api/sdk/ui/SBSv2PlatformFilterComposite.java	Mon Aug 30 10:33:21 2010 -0500
@@ -38,6 +38,7 @@
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.TableItem;
 
@@ -71,8 +72,12 @@
 
 	private ICarbideInstalledSDKChangeListener sdkListener = new ICarbideInstalledSDKChangeListener() {
 		public void installedSdkChanged(SDKChangeEventType eventType) {
-			// refresh locally cached SBSv2 data whenever there is any change to SDK list
-			refreshLocalSBSCacheData();			
+			Display.getDefault().asyncExec(new Runnable() {
+				public void run() {
+					// refresh locally cached SBSv2 data whenever there is any change to SDK list
+					refreshLocalSBSCacheData();			
+				}
+			});
 		}
 	};
 
@@ -217,12 +222,11 @@
 		});
 		
 		initTable();
-		SDKCorePlugin.getSDKManager().addInstalledSdkChangeListener(sdkListener);
+		addListeners();
 	}
 
 	@Override
 	public void dispose() {
-		SDKCorePlugin.getSDKManager().removeInstalledSdkChangeListener(sdkListener);
 		super.dispose();
 	}
 
@@ -240,6 +244,19 @@
 		}
 		
 		SBSv2Utils.setSBSv2FilteredConfigs(checkedConfigs.toArray(new String[checkedConfigs.size()]));
+		removeListeners();
+	}
+	
+	public void performCancel() {
+		removeListeners();
+	}
+	
+	private void addListeners() {
+		SDKCorePlugin.getSDKManager().addInstalledSdkChangeListener(sdkListener);
+	}
+	
+	private void removeListeners() {
+		SDKCorePlugin.getSDKManager().removeInstalledSdkChangeListener(sdkListener);
 	}
 	
 	private void initTable() {
@@ -284,20 +301,25 @@
 		}
 		
 		Collections.sort(sbsAliases);
-		buildAliasTableViewer.setInput(sbsAliases);
-		customVariantListViewer.setInput(savedVariants);
 		
-		// uncheck all configs to init
-		buildAliasTableViewer.setAllChecked(false);
-		
-		for (String config : checkedConfigsFromStore) {
-			for (TableItem item : buildAliasTableViewer.getTable().getItems()) {
-				if (item.getText().equals(config) && !item.getText().contains(".")) {
-					buildAliasTableViewer.setChecked(item.getData(), true);
-					break;
+		if (buildAliasTableViewer != null) {
+			buildAliasTableViewer.setInput(sbsAliases);
+			// uncheck all configs to init
+			buildAliasTableViewer.setAllChecked(false);
+			
+			for (String config : checkedConfigsFromStore) {
+				for (TableItem item : buildAliasTableViewer.getTable().getItems()) {
+					if (item.getText().equals(config) && !item.getText().contains(".")) {
+						buildAliasTableViewer.setChecked(item.getData(), true);
+						break;
+					}
 				}
 			}
 		}
+		
+		if (customVariantListViewer != null) {
+			customVariantListViewer.setInput(savedVariants);
+		}
 	}
 
 	private void refreshLocalSBSCacheData() {
--- a/core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/view/SupportPage.java	Mon Aug 30 10:31:52 2010 -0500
+++ b/core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/view/SupportPage.java	Mon Aug 30 10:33:21 2010 -0500
@@ -16,37 +16,7 @@
 */
 package com.nokia.carbide.internal.discovery.ui.view;
 
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IEditorPart;
-
-import com.nokia.carbide.internal.discovery.ui.extension.IActionBar;
-import com.nokia.carbide.internal.discovery.ui.extension.IActionUIUpdater;
-import com.nokia.carbide.internal.discovery.ui.extension.IPortalPageLayer;
-
-public class SupportPage implements IPortalPageLayer {
+import com.nokia.carbide.internal.discovery.ui.extension.AbstractBrowserPortalPageLayer;
 
-	@Override
-	public Control createControl(Composite parent, IEditorPart part) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		composite.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-		composite.setLayout(new FillLayout());
-
-		return composite;
-	}
-
-	@Override
-	public void init() {
-	}
-
-	@Override
-	public IActionBar[] createCommandBars(IEditorPart part, IActionUIUpdater updater) {
-		return null;
-	}
-
-	@Override
-	public void dispose() {
-	}
+public class SupportPage extends AbstractBrowserPortalPageLayer {
 }
--- a/core/com.nokia.carbide.templatewizard/META-INF/MANIFEST.MF	Mon Aug 30 10:31:52 2010 -0500
+++ b/core/com.nokia.carbide.templatewizard/META-INF/MANIFEST.MF	Mon Aug 30 10:33:21 2010 -0500
@@ -11,7 +11,8 @@
  org.eclipse.emf.ecore.xmi,
  org.eclipse.ui.ide,
  com.nokia.cpp.utils.core,
- com.nokia.cpp.utils.ui
+ com.nokia.cpp.utils.ui,
+ com.nokia.carbide.cpp.featureTracker;bundle-version="3.0.0"
 Bundle-ActivationPolicy: lazy
 Export-Package: com.nokia.carbide.internal.api.template.engine,
  com.nokia.carbide.internal.api.templatewizard.ui,
--- a/core/com.nokia.carbide.templatewizard/src/com/nokia/carbide/internal/api/templatewizard/ui/TemplateWizard.java	Mon Aug 30 10:31:52 2010 -0500
+++ b/core/com.nokia.carbide.templatewizard/src/com/nokia/carbide/internal/api/templatewizard/ui/TemplateWizard.java	Mon Aug 30 10:33:21 2010 -0500
@@ -18,13 +18,15 @@
 
 package com.nokia.carbide.internal.api.templatewizard.ui;
 
-import com.nokia.carbide.internal.api.template.engine.TemplateEngine;
-import com.nokia.carbide.template.engine.*;
-import com.nokia.carbide.templatewizard.TemplateWizardPlugin;
-import com.nokia.cpp.internal.api.utils.core.Check;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
 
 import org.eclipse.core.resources.WorkspaceJob;
-import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.jobs.ISchedulingRule;
 import org.eclipse.jface.viewers.IFilter;
 import org.eclipse.jface.viewers.IStructuredSelection;
@@ -33,7 +35,15 @@
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
 
-import java.util.*;
+import com.nokia.carbide.cpp.internal.featureTracker.FeatureUseTrackerPlugin;
+import com.nokia.carbide.internal.api.template.engine.TemplateEngine;
+import com.nokia.carbide.template.engine.DialogSettingsPersistedStorage;
+import com.nokia.carbide.template.engine.ILoadedTemplate;
+import com.nokia.carbide.template.engine.ILoadedTemplateUI;
+import com.nokia.carbide.template.engine.IPersistedSettingStorage;
+import com.nokia.carbide.template.engine.ITemplate;
+import com.nokia.carbide.templatewizard.TemplateWizardPlugin;
+import com.nokia.cpp.internal.api.utils.core.Check;
 
 public abstract class TemplateWizard extends BasicNewResourceWizard {
 
@@ -43,6 +53,8 @@
 	private boolean hideFilterCheckbox;
 	private ChooseTemplatePage chooseTemplatePage;
 
+	private static final String CARBIDE_INF_PROJECT_WIZ_FEATURE = "CARBIDE_INF_PROJECT_WIZARD"; //$NON-NLS-1$
+	
 	@Override
 	public void init(IWorkbench workbench, IStructuredSelection currentSelection) {
 		super.init(workbench, currentSelection);
@@ -100,6 +112,8 @@
 		job.setRule(getJobSchedulingRule());
 		job.schedule();
 		
+		FeatureUseTrackerPlugin.getFeatureUseProxy().useFeature(CARBIDE_INF_PROJECT_WIZ_FEATURE);
+		
 	    return true;
 	}
 
--- a/project/com.nokia.carbide.cpp.project.ui/META-INF/MANIFEST.MF	Mon Aug 30 10:31:52 2010 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/META-INF/MANIFEST.MF	Mon Aug 30 10:33:21 2010 -0500
@@ -30,7 +30,8 @@
  com.nokia.carbide.cpp.ui,
  org.eclipse.ui.navigator,
  org.eclipse.ui.navigator.resources,
- org.eclipse.core.filesystem;bundle-version="1.2.0"
+ org.eclipse.core.filesystem;bundle-version="1.2.0",
+ com.nokia.carbide.cpp.featureTracker;bundle-version="3.0.0"
 Bundle-ActivationPolicy: lazy
 Export-Package: com.nokia.carbide.cpp.internal.project.ui,
  com.nokia.carbide.cpp.internal.project.ui.actions,
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/importWizards/BldInfImportWizard.java	Mon Aug 30 10:31:52 2010 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/importWizards/BldInfImportWizard.java	Mon Aug 30 10:33:21 2010 -0500
@@ -39,6 +39,7 @@
 import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin;
 import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo;
 import com.nokia.carbide.cpp.internal.api.sdk.ISDKManagerInternal;
+import com.nokia.carbide.cpp.internal.featureTracker.FeatureUseTrackerPlugin;
 import com.nokia.carbide.cpp.internal.project.ui.ProjectUIPlugin;
 import com.nokia.carbide.cpp.internal.sdk.core.model.SDKManager;
 import com.nokia.carbide.cpp.project.core.ProjectCorePlugin;
@@ -56,6 +57,7 @@
 	private MMPSelectionPage mmpSelectionPage;
 	private ProjectPropertiesPage projectPropertiesPage;
 
+	private static final String CARBIDE_BLDINF_IMFPORTER_FEATURE = "CARBIDE_BLDINF_IMPORTER"; //$NON-NLS-1$
 
 	public BldInfImportWizard() {
 		super();
@@ -161,6 +163,8 @@
 		job.setRule(ResourcesPlugin.getWorkspace().getRoot());
 		job.schedule();
 
+		FeatureUseTrackerPlugin.getFeatureUseProxy().useFeature(CARBIDE_BLDINF_IMFPORTER_FEATURE);
+		
 		return true;
 	}
 	 
--- a/qt/com.nokia.carbide.cpp.qt.ui/META-INF/MANIFEST.MF	Mon Aug 30 10:31:52 2010 -0500
+++ b/qt/com.nokia.carbide.cpp.qt.ui/META-INF/MANIFEST.MF	Mon Aug 30 10:33:21 2010 -0500
@@ -24,6 +24,7 @@
  org.eclipse.ui.ide,
  com.trolltech.qtcppproject;bundle-version="1.6.0";resolution:=optional,
  com.nokia.cpp.utils.ui,
- com.nokia.cpp.utils.core;bundle-version="1.0.0"
+ com.nokia.cpp.utils.core;bundle-version="1.0.0",
+ com.nokia.carbide.cpp.featureTracker;bundle-version="3.0.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
--- a/qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/wizard/QtProFileImportWizard.java	Mon Aug 30 10:31:52 2010 -0500
+++ b/qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/wizard/QtProFileImportWizard.java	Mon Aug 30 10:33:21 2010 -0500
@@ -38,6 +38,7 @@
 
 import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin;
 import com.nokia.carbide.cpp.internal.api.sdk.ISDKManagerInternal;
+import com.nokia.carbide.cpp.internal.featureTracker.FeatureUseTrackerPlugin;
 import com.nokia.carbide.cpp.internal.project.ui.ProjectUIPlugin;
 import com.nokia.carbide.cpp.internal.qt.core.QtCorePlugin;
 import com.nokia.carbide.cpp.internal.qt.core.QtSDKUtils;
@@ -57,6 +58,7 @@
 	private QtProFileSelectionPage proFileSelectionPage;
 	private QtImporterBuildTargetsPage buildTargetsPage;
 
+	private static final String CARBIDE_QTPRO_IMFPORTER_FEATURE = "CARBIDE_QTPRO_IMPORTER"; //$NON-NLS-1$
 
 	public QtProFileImportWizard() {
 		super();
@@ -156,6 +158,8 @@
 		job.setRule(ResourcesPlugin.getWorkspace().getRoot());
 		job.schedule();
 
+		FeatureUseTrackerPlugin.getFeatureUseProxy().useFeature(CARBIDE_QTPRO_IMFPORTER_FEATURE);
+		
 		return true;
 	}