Move qt-sdk detection from sdk core to the nokia qt core/ui plugins. Early loading is not working for these changes.
authortimkelly
Thu, 11 Feb 2010 07:51:25 -0600
changeset 928 0e59b97dd835
parent 927 a907fec05bb3
child 929 e0580496bfa3
Move qt-sdk detection from sdk core to the nokia qt core/ui plugins. Early loading is not working for these changes.
core/com.nokia.carbide.cpp.sdk.core/META-INF/MANIFEST.MF
core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/QtSDKUtils.java
core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManager.java
project/com.nokia.carbide.cpp.project.core/src/com/nokia/carbide/cpp/internal/api/project/core/ProjectCorePluginUtility.java
qt/com.nokia.carbide.cpp.qt.core/.settings/org.eclipse.jdt.core.prefs
qt/com.nokia.carbide.cpp.qt.core/META-INF/MANIFEST.MF
qt/com.nokia.carbide.cpp.qt.core/src/com/nokia/carbide/cpp/internal/qt/core/QtCorePlugin.java
qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/QtUIPlugin.java
qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/processes/ProjectCreatedTasksQt.java
qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/wizard/QtProFileImportWizard.java
--- a/core/com.nokia.carbide.cpp.sdk.core/META-INF/MANIFEST.MF	Wed Feb 10 13:00:46 2010 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core/META-INF/MANIFEST.MF	Thu Feb 11 07:51:25 2010 -0600
@@ -14,9 +14,7 @@
  org.eclipse.update.core,
  com.nokia.carbide.templatewizard,
  org.eclipse.core.filesystem,
- com.nokia.cpp.utils.ui,
- com.trolltech.qtcppproject;bundle-version="1.6.0";resolution:=optional,
- com.trolltech.qtproject;bundle-version="1.0.1";resolution:=optional
+ com.nokia.cpp.utils.ui
 Bundle-ActivationPolicy: lazy
 Export-Package: com.nokia.carbide.cpp.internal.api.sdk,
  com.nokia.carbide.cpp.internal.sdk.core.model;x-friends:="com.nokia.carbide.cpp.sdk.core.test",
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/QtSDKUtils.java	Wed Feb 10 13:00:46 2010 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
-/*
-* Copyright (c) 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-*/
-package com.nokia.carbide.cpp.internal.sdk.core.model;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
-import com.nokia.cpp.internal.api.utils.core.HostOS;
-import com.trolltech.qtcppproject.QtProjectPlugin;
-import com.trolltech.qtcppproject.preferences.PreferenceConstants;
-
-@SuppressWarnings("restriction")
-public class QtSDKUtils {
-	
-	private static class QtSDK {
-		
-		QtSDK(String name, String incPath, String binPath){
-			this.binPath = binPath;
-			this.incPath = incPath;
-			this.name = name;
-		}
-		
-		public String name;
-		public String binPath;
-		public String incPath;
-	}
-	
-	/** Qt bin folder for internal SDK installs - epocroot relative */
-	private static final String QT_SDK_BIN_PATH = "epoc32/tools/qt";
-	/** Qt include folder for internal SDK installs - epocroot relative */
-	private static final String QT_SDK_INC_PATH = "epoc32/include/mw";
-	
-	/** qt subfolder under QT_INC_FOLDER */
-	private static final String QT_FOLDER = "qt";
-	private static final String QT_MKSPECS = "mkspecs";
-	private static final String QT_QMAKE_WIN32 = "qmake.exe";
-	private static final String QT_QMAKE_UNIX = "qmake";
-	
-	public static final String QT_DEFAULT_SDK_NAME = "<Default>";
-	
-	private static List<QtSDK> qtSDKList = new ArrayList<QtSDK>();
-	
-	// private data from QtProject.java
-	private static final String QTVERSION = "com.trolltech.qtcppproject.properties.qtversion";
-	
-	static private boolean isQtInternallyInstalled(ISymbianSDK sdk){
-		
-		String epocRoot = sdk.getEPOCROOT();
-		if (new File(epocRoot + QT_SDK_BIN_PATH).exists() && 
-			new File(epocRoot + QT_SDK_INC_PATH).exists() &&
-			new File(epocRoot + QT_SDK_INC_PATH + File.separator + QT_FOLDER).exists() &&
-			new File(epocRoot + QT_SDK_BIN_PATH + File.separator + QT_MKSPECS).exists() ) 
-		{
-			if (HostOS.IS_WIN32 && new File(epocRoot + QT_SDK_BIN_PATH + File.separator + QT_QMAKE_WIN32).exists()){
-				return true;
-			} else if (HostOS.IS_UNIX && new File(epocRoot + QT_SDK_BIN_PATH + File.separator + QT_QMAKE_UNIX).exists()){
-				return true;
-			}
-		}
-		
-		return false;
-	}
-	
-	static public String getQtSDKNameForSymbianSDK(ISymbianSDK sdk){
-		
-		String epocRoot = sdk.getEPOCROOT();
-		File qtBinPath = new File (epocRoot + QT_SDK_BIN_PATH);
-		File qtIncPath = new File (epocRoot + QT_SDK_INC_PATH);
-		
-		refreshQtStoredSDKs();
-		
-		if (qtSDKList.size() == 0){
-			return null;
-		}
-		
-		for (QtSDK qtSDK : qtSDKList){
-			File currBinPath = new File(qtSDK.binPath);
-			File currIncPath = new File(qtSDK.incPath);
-			
-			if (currBinPath.equals(qtBinPath) && currIncPath.equals(qtIncPath)){
-				return qtSDK.name;
-			}
-		}
-		
-		return null;
-	}
-	
-	static public void addQtSDKForSymbianSDK(ISymbianSDK sdk, boolean makeDefault){
-		
-		refreshQtStoredSDKs();
-		if ((getQtSDKNameForSymbianSDK(sdk) == null) && isQtInternallyInstalled(sdk)){
-			IPath binPath = new Path(sdk.getEPOCROOT() + QT_SDK_BIN_PATH);
-			IPath incPath = new Path(sdk.getEPOCROOT() + QT_SDK_INC_PATH);
-			addQtSDK(sdk.getUniqueId(), binPath, incPath, makeDefault);
-		}
-	}
-	
-	static private void addQtSDK(String name, IPath binPath, IPath incPath, boolean makeDefault){
-		
-		IPreferenceStore store = QtProjectPlugin.getDefault().getPreferenceStore();
-		int count = store.getInt(PreferenceConstants.QTVERSION_COUNT);
-		
-		// Store settings using zero-index base
-		store.setValue(PreferenceConstants.QTVERSION_NAME + "."
-				+ Integer.toString(count), name);
-		store.setValue(PreferenceConstants.QTVERSION_BINPATH + "."
-				+ Integer.toString(count), binPath.toOSString());
-		store.setValue(PreferenceConstants.QTVERSION_INCLUDEPATH + "."
-				+ Integer.toString(count), incPath.toOSString());
-		
-		if (makeDefault || count == 0){
-			store.setValue(PreferenceConstants.QTVERSION_DEFAULT, count);
-		}
-		
-		store.setValue(PreferenceConstants.QTVERSION_COUNT, count + 1); // # of table items, base is 1 (i.e. not zero)
-		
-		refreshQtStoredSDKs();
-	}
-	
-	static void refreshQtStoredSDKs(){
-		
-		qtSDKList.clear();
-		
-		IPreferenceStore store = QtProjectPlugin.getDefault().getPreferenceStore();
-		int count = store.getInt(PreferenceConstants.QTVERSION_COUNT);
-		for (int i = 0; i < count; i++) {
-			String nameKey = PreferenceConstants.QTVERSION_NAME + "."
-					+ Integer.toString(i);
-			String binpathKey = PreferenceConstants.QTVERSION_BINPATH + "."
-					+ Integer.toString(i);
-			String includepathKey = PreferenceConstants.QTVERSION_INCLUDEPATH
-					+ "." + Integer.toString(i);
-			String name = "";
-			String binPath = "";
-			String incPath = "";
-			if (store.contains(nameKey)) {
-				name = store.getString(nameKey);
-			}
-			if (store.contains(binpathKey)) {
-				binPath = store.getString(binpathKey);
-			}
-			if (store.contains(includepathKey)) {
-				incPath = store.getString(includepathKey);
-			}
-			
-			QtSDK qtSDK = new QtSDK(name, incPath, binPath);
-			qtSDKList.add(qtSDK);
-		}
-	}
-	
-	public static void setDefaultQtSDKForProject(IProject project, String qtSDKName) throws CoreException{
-		project.setPersistentProperty(new QualifiedName("", QTVERSION), qtSDKName);
-	}
-	
-	public static String getDefaultQtSDKForProject(IProject project) throws CoreException{
-		return project.getPersistentProperty(new QualifiedName("", QTVERSION));
-	}
-	
-}
-
-
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManager.java	Wed Feb 10 13:00:46 2010 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManager.java	Thu Feb 11 07:51:25 2010 -0600
@@ -96,7 +96,6 @@
 			for (Iterator iter = devices.iterator(); iter.hasNext();) {
 				SymbianSDK sdk = new SymbianSDK((DeviceType) iter.next());
 				sdkList.add(sdk);
-				QtSDKUtils.addQtSDKForSymbianSDK(sdk, false);
 			}
 
 			return true;
--- a/project/com.nokia.carbide.cpp.project.core/src/com/nokia/carbide/cpp/internal/api/project/core/ProjectCorePluginUtility.java	Wed Feb 10 13:00:46 2010 -0600
+++ b/project/com.nokia.carbide.cpp.project.core/src/com/nokia/carbide/cpp/internal/api/project/core/ProjectCorePluginUtility.java	Thu Feb 11 07:51:25 2010 -0600
@@ -32,11 +32,11 @@
 import com.nokia.carbide.cdt.builder.project.ISISBuilderInfo;
 import com.nokia.carbide.cdt.internal.api.builder.SISBuilderInfo2;
 import com.nokia.carbide.cpp.internal.qt.core.QtCorePlugin;
-import com.nokia.carbide.cpp.internal.sdk.core.model.QtSDKUtils;
+import com.nokia.carbide.cpp.internal.qt.core.QtSDKUtils;
 import com.nokia.carbide.cpp.project.core.ProjectCorePlugin;
 import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext;
 
-public class ProjectCorePluginUtility implements ICarbideConfigurationChangedListener {
+public class ProjectCorePluginUtility {
 
 	private static ResourceChangeListener resourceChangeListener;
 	private static boolean listening = false;
@@ -46,12 +46,10 @@
 	}
 
 	public void startup() {
-		CarbideBuilderPlugin.addBuildConfigChangedListener(this);
 	}
 
 	public void shutdown() {
 		stopProjectListener();
-		CarbideBuilderPlugin.removeBuildConfigChangedListener(this);
 	}
 
 	public static void startProjectListener() {
@@ -114,27 +112,4 @@
     		cpi.saveChanges();
 		}
 	}
-
-	public void buildConfigurationChanged(ICarbideBuildConfiguration currentConfig) {
-		checkDefaultQtSDKForProject(currentConfig);
-	}
-	
-	@SuppressWarnings("restriction")
-	private void checkDefaultQtSDKForProject(ICarbideBuildConfiguration currentConfig){
-		IProject project = currentConfig.getCarbideProject().getProject();
-		if (project != null && QtCorePlugin.isQtProject(project)) {
-			try {
-				String qtSDKName = QtSDKUtils.getQtSDKNameForSymbianSDK(currentConfig.getSDK());
-				if (qtSDKName == null || QtSDKUtils.getDefaultQtSDKForProject(project).equals(QtSDKUtils.QT_DEFAULT_SDK_NAME)) {
-					return;
-				}
-				
-				QtSDKUtils.setDefaultQtSDKForProject(project, qtSDKName);
-				
-			} catch (CoreException e) {
-				e.printStackTrace();
-			}
-		}
-		
-	}
 }
--- a/qt/com.nokia.carbide.cpp.qt.core/.settings/org.eclipse.jdt.core.prefs	Wed Feb 10 13:00:46 2010 -0600
+++ b/qt/com.nokia.carbide.cpp.qt.core/.settings/org.eclipse.jdt.core.prefs	Thu Feb 11 07:51:25 2010 -0600
@@ -1,7 +1,74 @@
-#Thu Jul 24 13:26:54 CDT 2008
+#Wed Feb 10 21:25:23 CST 2010
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
 org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.5
--- a/qt/com.nokia.carbide.cpp.qt.core/META-INF/MANIFEST.MF	Wed Feb 10 13:00:46 2010 -0600
+++ b/qt/com.nokia.carbide.cpp.qt.core/META-INF/MANIFEST.MF	Thu Feb 11 07:51:25 2010 -0600
@@ -7,11 +7,14 @@
 Bundle-Vendor: Nokia
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.cdt.core,
+ org.eclipse.ui,
  org.eclipse.core.resources,
  org.eclipse.jface,
  com.nokia.carbide.cpp.sdk.core,
  com.nokia.carbide.cpp.sdk.ui,
- com.trolltech.qtcppproject;bundle-version="1.6.0";resolution:=optional
+ com.nokia.cpp.utils.core;bundle-version="1.0.0",
+ com.trolltech.qtcppproject;bundle-version="1.6.0";resolution:=optional,
+ com.trolltech.qtproject;bundle-version="1.6.0";resolution:=optional
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
 Export-Package: com.nokia.carbide.cpp.internal.qt.core
--- a/qt/com.nokia.carbide.cpp.qt.core/src/com/nokia/carbide/cpp/internal/qt/core/QtCorePlugin.java	Wed Feb 10 13:00:46 2010 -0600
+++ b/qt/com.nokia.carbide.cpp.qt.core/src/com/nokia/carbide/cpp/internal/qt/core/QtCorePlugin.java	Thu Feb 11 07:51:25 2010 -0600
@@ -17,6 +17,8 @@
 */
 package com.nokia.carbide.cpp.internal.qt.core;
 
+import java.util.List;
+
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IProjectDescription;
 import org.eclipse.core.runtime.CoreException;
@@ -24,6 +26,8 @@
 import org.eclipse.core.runtime.Plugin;
 import org.osgi.framework.BundleContext;
 
+import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
+import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin;
 import com.trolltech.qtcppproject.QtNature;
 
 public class QtCorePlugin extends Plugin {
@@ -49,6 +53,7 @@
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
 		plugin = this;
+		scanForQtSDKs();
 	}
 
 	/*
@@ -94,5 +99,12 @@
 			return false;
 		}
 	}
+	
+	private void scanForQtSDKs(){
+		List<ISymbianSDK> sdkList = SDKCorePlugin.getSDKManager().getSDKList();
+		for (ISymbianSDK sdk : sdkList){
+			QtSDKUtils.addQtSDKForSymbianSDK(sdk, false);
+		}
+	}
 
 }
--- a/qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/QtUIPlugin.java	Wed Feb 10 13:00:46 2010 -0600
+++ b/qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/QtUIPlugin.java	Thu Feb 11 07:51:25 2010 -0600
@@ -19,6 +19,7 @@
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
@@ -32,12 +33,15 @@
 
 import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin;
 import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration;
+import com.nokia.carbide.cdt.builder.project.ICarbideConfigurationChangedListener;
 import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo;
 import com.nokia.carbide.cdt.builder.project.ISISBuilderInfo;
 import com.nokia.carbide.cdt.internal.api.builder.SISBuilderInfo2;
+import com.nokia.carbide.cpp.internal.qt.core.QtCorePlugin;
+import com.nokia.carbide.cpp.internal.qt.core.QtSDKUtils;
 import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext;
 
-public class QtUIPlugin extends AbstractUIPlugin {
+public class QtUIPlugin extends AbstractUIPlugin implements ICarbideConfigurationChangedListener {
 
 	// The plug-in ID
 	public static final String PLUGIN_ID = "com.nokia.carbide.cpp.qt.ui"; //$NON-NLS-1$
@@ -58,6 +62,7 @@
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
 		plugin = this;
+		CarbideBuilderPlugin.addBuildConfigChangedListener(this);
 	}
 
 	/*
@@ -65,6 +70,7 @@
 	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
 	 */
 	public void stop(BundleContext context) throws Exception {
+		CarbideBuilderPlugin.removeBuildConfigChangedListener(this);
 		plugin = null;
 		super.stop(context);
 	}
@@ -140,4 +146,27 @@
 			// PlatformUI.getWorkbench() throws if running headless
 		}
 	}
+	
+	public void buildConfigurationChanged(ICarbideBuildConfiguration currentConfig) {
+		checkDefaultQtSDKForProject(currentConfig);
+	}
+	
+	@SuppressWarnings("restriction")
+	private void checkDefaultQtSDKForProject(ICarbideBuildConfiguration currentConfig){
+		IProject project = currentConfig.getCarbideProject().getProject();
+		if (project != null && QtCorePlugin.isQtProject(project)) {
+			try {
+				String qtSDKName = QtSDKUtils.getQtSDKNameForSymbianSDK(currentConfig.getSDK());
+				if (qtSDKName == null || QtSDKUtils.getDefaultQtSDKForProject(project).equals(QtSDKUtils.QT_DEFAULT_SDK_NAME)) {
+					return;
+				}
+				
+				QtSDKUtils.setDefaultQtSDKForProject(project, qtSDKName);
+				
+			} catch (CoreException e) {
+				e.printStackTrace();
+			}
+		}
+		
+	}
 }
--- a/qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/processes/ProjectCreatedTasksQt.java	Wed Feb 10 13:00:46 2010 -0600
+++ b/qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/processes/ProjectCreatedTasksQt.java	Thu Feb 11 07:51:25 2010 -0600
@@ -32,8 +32,8 @@
 import org.eclipse.core.runtime.Status;
 
 import com.nokia.carbide.cpp.internal.qt.core.QtCorePlugin;
+import com.nokia.carbide.cpp.internal.qt.core.QtSDKUtils;
 import com.nokia.carbide.cpp.internal.qt.ui.QtUIPlugin;
-import com.nokia.carbide.cpp.internal.sdk.core.model.QtSDKUtils;
 import com.nokia.carbide.cpp.project.ui.processes.ProjectCreatedTasks;
 import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext;
 import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
--- a/qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/wizard/QtProFileImportWizard.java	Wed Feb 10 13:00:46 2010 -0600
+++ b/qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/wizard/QtProFileImportWizard.java	Thu Feb 11 07:51:25 2010 -0600
@@ -40,8 +40,8 @@
 import com.nokia.carbide.cpp.internal.api.sdk.ISDKManagerInternal;
 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;
 import com.nokia.carbide.cpp.internal.qt.ui.QtUIPlugin;
-import com.nokia.carbide.cpp.internal.sdk.core.model.QtSDKUtils;
 import com.nokia.carbide.cpp.project.core.ProjectCorePlugin;
 import com.nokia.carbide.cpp.sdk.core.*;
 import com.trolltech.qtcppproject.QtProject;