Refactor checks for Qt project nature into one place.
authorEd Swartz <ed.swartz@nokia.com>
Mon, 16 Nov 2009 11:09:45 -0600
changeset 593 7dbb2f97454a
parent 592 e03ece49757c
child 594 aa7a8dc8006a
Refactor checks for Qt project nature into one place.
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ui/ManageConfigurationsDialog.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/CarbideCPPProjectSettingsPage.java
qt/com.nokia.carbide.cpp.qt.core/src/com/nokia/carbide/cpp/internal/qt/core/QtCorePlugin.java
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java	Mon Nov 16 10:25:45 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java	Mon Nov 16 11:09:45 2009 -0600
@@ -64,7 +64,6 @@
 import com.nokia.carbide.cdt.internal.builder.ICarbideBuilder;
 import com.nokia.carbide.cdt.internal.builder.ui.BuilderPreferencePage;
 import com.nokia.carbide.cdt.internal.builder.ui.MMPSelectionDialog;
-import com.nokia.carbide.cdt.internal.builder.ui.Messages;
 import com.nokia.carbide.cpp.epoc.engine.EpocEnginePlugin;
 import com.nokia.carbide.cpp.epoc.engine.MMPDataRunnableAdapter;
 import com.nokia.carbide.cpp.epoc.engine.PKGViewRunnableAdapter;
@@ -1220,31 +1219,27 @@
     		return;
     	} else if (!pkgPath.toFile().exists()) {
     		
-    		try {
-    			// Check to see if this is a Qt project and if the template format could have changed.
-    			IProject project = config.getCarbideProject().getProject();
-				if (project != null && project.hasNature(QtCorePlugin.QT_PROJECT_NATURE_ID)){
-					final String currentPKGName = pkgPath.lastSegment();
-					pkgPath = pkgPath.removeLastSegments(1).append(project.getName() + "_template.pkg" ); //$NON-NLS-N$
-					if (pkgPath.toFile().exists()){
-						
-						final IPath finalPkgPath = pkgPath;
-						Display.getDefault().syncExec(new Runnable() {
-							public void run() {
-								if (true == MessageDialog.openQuestion(WorkbenchUtils.getSafeShell(), "Can not find PKG file for SIS builder", "The file \"" + currentPKGName + "\" does not exist for this Qt project. The suggested file is \"" + finalPkgPath.lastSegment() + "\".\n\nDo you want to update your build configuration to use this PKG file?")) { //$NON-NLS-1$ //$NON-NLS-2$
-									IWorkspace workspace= ResourcesPlugin.getWorkspace();
-									IFile ifile= workspace.getRoot().getFileForLocation(finalPkgPath); 
-									sisInfo.setPKGFile(ifile.getLocation().toOSString());
-									config.getSISBuilderInfoList().remove(sisInfo);
-									config.getSISBuilderInfoList().add(sisInfo);
-									config.saveConfiguration(false);
-								} 
-							}
-						});
-					} 
-				}
-			} catch (CoreException e) {
-				e.printStackTrace();
+			// Check to see if this is a Qt project and if the template format could have changed.
+			IProject project = config.getCarbideProject().getProject();
+			if (QtCorePlugin.isQtProject(project)) {
+				final String currentPKGName = pkgPath.lastSegment();
+				pkgPath = pkgPath.removeLastSegments(1).append(project.getName() + "_template.pkg" ); //$NON-NLS-N$
+				if (pkgPath.toFile().exists()){
+					
+					final IPath finalPkgPath = pkgPath;
+					Display.getDefault().syncExec(new Runnable() {
+						public void run() {
+							if (true == MessageDialog.openQuestion(WorkbenchUtils.getSafeShell(), "Can not find PKG file for SIS builder", "The file \"" + currentPKGName + "\" does not exist for this Qt project. The suggested file is \"" + finalPkgPath.lastSegment() + "\".\n\nDo you want to update your build configuration to use this PKG file?")) { //$NON-NLS-1$ //$NON-NLS-2$
+								IWorkspace workspace= ResourcesPlugin.getWorkspace();
+								IFile ifile= workspace.getRoot().getFileForLocation(finalPkgPath); 
+								sisInfo.setPKGFile(ifile.getLocation().toOSString());
+								config.getSISBuilderInfoList().remove(sisInfo);
+								config.getSISBuilderInfoList().add(sisInfo);
+								config.saveConfiguration(false);
+							} 
+						}
+					});
+				} 
 			}
     		
 			if (!sisInfo.getPKGFullPath().toFile().exists()){
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ui/ManageConfigurationsDialog.java	Mon Nov 16 10:25:45 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ui/ManageConfigurationsDialog.java	Mon Nov 16 11:09:45 2009 -0600
@@ -20,7 +20,6 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.eclipse.core.runtime.CoreException;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.TrayDialog;
 import org.eclipse.jface.viewers.CheckStateChangedEvent;
@@ -183,13 +182,9 @@
 			new FilteringContentProviderWrapper(treeNodeContentProvider);
 		
 		// add filters for Qt projects
-		try {
-			if (cpi.getProject().hasNature(QtCorePlugin.QT_PROJECT_NATURE_ID)) {
-				filteringContentProviderWrapper.setFilter(new QtSDKFilter());
-				filteringContentProviderWrapper.setConfigFilter(new QtConfigFilter());
-			}
-		} catch (CoreException e) {
-			e.printStackTrace();
+		if (QtCorePlugin.isQtProject(cpi.getProject())) {
+			filteringContentProviderWrapper.setFilter(new QtSDKFilter());
+			filteringContentProviderWrapper.setConfigFilter(new QtConfigFilter());
 		}
 		
 		boolean sbsv2Project = CarbideBuilderPlugin.getBuildManager().isCarbideSBSv2Project(cpi.getProject());
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java	Mon Nov 16 10:25:45 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java	Mon Nov 16 11:09:45 2009 -0600
@@ -28,7 +28,6 @@
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.*;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
 
 import com.nokia.carbide.cdt.builder.*;
 import com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder;
@@ -47,7 +46,6 @@
 import com.nokia.carbide.cpp.internal.qt.core.QtCorePlugin;
 import com.nokia.carbide.cpp.sdk.core.*;
 import com.nokia.cpp.internal.api.utils.core.FileUtils;
-import com.nokia.cpp.internal.api.utils.ui.QueryWithTristatePrefDialog;
 import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils;
 
 
@@ -1940,12 +1938,8 @@
 
 		// ignore this for Qt projects since the mmp will be regenerated before each build.
 		final IProject project = buildConfig.getCarbideProject().getProject();
-		try {
-			if (project.hasNature(QtCorePlugin.QT_PROJECT_NATURE_ID)) {
-				return true;
-			}
-		} catch (CoreException e) {
-			e.printStackTrace();
+		if (QtCorePlugin.isQtProject(project)) {
+			return true;
 		}
 		
 		// we used to ignore this for emulator builds, thinking everything of interest was in the .uid.cpp file.  well, a lot of
@@ -1975,12 +1969,8 @@
 
 		// ignore this for Qt projects since the mmp will be regenerated before each build.
 		final IProject project = buildConfig.getCarbideProject().getProject();
-		try {
-			if (project.hasNature(QtCorePlugin.QT_PROJECT_NATURE_ID)) {
-				return true;
-			}
-		} catch (CoreException e) {
-			e.printStackTrace();
+		if (QtCorePlugin.isQtProject(project)) {
+			return true;
 		}
 		
 		// we used to ignore this for emulator builds, thinking everything of interest was in the .uid.cpp file.  well, a lot of
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/CarbideCPPProjectSettingsPage.java	Mon Nov 16 10:25:45 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/CarbideCPPProjectSettingsPage.java	Mon Nov 16 11:09:45 2009 -0600
@@ -374,17 +374,8 @@
 	private void enableOrDisableControls() {
 		boolean buildFromInf = buildFromBldInfButton.getSelection();
 		boolean useProjectSettings = fUseProjectSettings.getSelection();
-		boolean isQtProject = false;
 		IProject project = getProject();
-		if (project != null) {
-			try {
-				if (project.hasNature(QtCorePlugin.QT_PROJECT_NATURE_ID)) {
-					isQtProject = true;
-				}
-			} catch (CoreException e) {
-				e.printStackTrace();
-			}
-		}
+		boolean isQtProject = QtCorePlugin.isQtProject(project);
 		
 		selectionUI.setEnabled(!buildFromInf);
 		optionsGroup.setEnabled(useProjectSettings);
--- a/qt/com.nokia.carbide.cpp.qt.core/src/com/nokia/carbide/cpp/internal/qt/core/QtCorePlugin.java	Mon Nov 16 10:25:45 2009 -0600
+++ b/qt/com.nokia.carbide.cpp.qt.core/src/com/nokia/carbide/cpp/internal/qt/core/QtCorePlugin.java	Mon Nov 16 11:09:45 2009 -0600
@@ -83,5 +83,16 @@
 		description.setNatureIds(newNatures);
 		project.setDescription(description, monitor);
 	}
+	
+	public static boolean isQtProject(IProject project) {
+		if (project == null)
+			return false;
+		try {
+			return project.hasNature(QT_PROJECT_NATURE_ID);
+		} catch (CoreException e) {
+			getDefault().getLog().log(e.getStatus());
+			return false;
+		}
+	}
 
 }