From f6957b73aba276392effe789f8dbfc10f401b793 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Fri, 13 Dec 2013 17:03:52 -0500 Subject: [PATCH] Clean up the API around QtNature. Add isProject expr def. --- qt/org.eclipse.cdt.qt.core/plugin.xml | 9 +++++++++ .../src/org/eclipse/cdt/qt/core/QtNature.java | 5 ++++- .../src/org/eclipse/cdt/qt/tests/BaseQtTestCase.java | 3 ++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/qt/org.eclipse.cdt.qt.core/plugin.xml b/qt/org.eclipse.cdt.qt.core/plugin.xml index aa0f7908f27..08c187ec49d 100644 --- a/qt/org.eclipse.cdt.qt.core/plugin.xml +++ b/qt/org.eclipse.cdt.qt.core/plugin.xml @@ -91,4 +91,13 @@ + + + + + + + + + diff --git a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/QtNature.java b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/QtNature.java index a6f9a7a8748..cb7d2610980 100644 --- a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/QtNature.java +++ b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/QtNature.java @@ -14,6 +14,7 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.resources.IProjectNature; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; public class QtNature implements IProjectNature { private static final String ID = "org.eclipse.cdt.qt.core.qtNature"; @@ -27,7 +28,7 @@ public class QtNature implements IProjectNature { } } - public static void addNature(IProject project) throws CoreException { + public static void addNature(IProject project, IProgressMonitor monitor) throws CoreException { if (project.isOpen()) { if (hasNature(project)) return; @@ -35,8 +36,10 @@ public class QtNature implements IProjectNature { IProjectDescription desc = project.getDescription(); String[] oldIds = desc.getNatureIds(); String[] newIds = new String[oldIds.length + 1]; + System.arraycopy(oldIds, 0, newIds, 0, oldIds.length); newIds[oldIds.length] = ID; desc.setNatureIds(newIds); + project.setDescription(desc, monitor); } } diff --git a/qt/org.eclipse.cdt.qt.tests/src/org/eclipse/cdt/qt/tests/BaseQtTestCase.java b/qt/org.eclipse.cdt.qt.tests/src/org/eclipse/cdt/qt/tests/BaseQtTestCase.java index b06355f9e39..2c023b29ba2 100644 --- a/qt/org.eclipse.cdt.qt.tests/src/org/eclipse/cdt/qt/tests/BaseQtTestCase.java +++ b/qt/org.eclipse.cdt.qt.tests/src/org/eclipse/cdt/qt/tests/BaseQtTestCase.java @@ -18,6 +18,7 @@ import org.eclipse.cdt.core.testplugin.util.TestSourceReader; import org.eclipse.cdt.qt.core.QtNature; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.NullProgressMonitor; public class BaseQtTestCase extends BaseTestCase { @@ -46,7 +47,7 @@ public class BaseQtTestCase extends BaseTestCase { fCProject = CProjectHelper.createCCProject(projectName, "bin", IPDOMManager.ID_FAST_INDEXER); fProject = fCProject.getProject(); - QtNature.addNature(fProject); + QtNature.addNature(fProject, new NullProgressMonitor()); fIndex = CCorePlugin.getIndexManager().getIndex(fCProject); indexQObject_h();