mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-06 17:26:01 +02:00
Clean up the API around QtNature. Add isProject expr def.
This commit is contained in:
parent
c0b973880f
commit
f6957b73ab
3 changed files with 15 additions and 2 deletions
|
@ -91,4 +91,13 @@
|
||||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||||
</provider>
|
</provider>
|
||||||
</extension>
|
</extension>
|
||||||
|
<extension point="org.eclipse.core.expressions.definitions">
|
||||||
|
<definition id="org.eclipse.cdt.qt.core.isQtProject">
|
||||||
|
<with variable="projectNatures">
|
||||||
|
<iterate operator="or">
|
||||||
|
<equals value="org.eclipse.cdt.qt.core.qtNature"/>
|
||||||
|
</iterate>
|
||||||
|
</with>
|
||||||
|
</definition>
|
||||||
|
</extension>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
|
@ -14,6 +14,7 @@ import org.eclipse.core.resources.IProject;
|
||||||
import org.eclipse.core.resources.IProjectDescription;
|
import org.eclipse.core.resources.IProjectDescription;
|
||||||
import org.eclipse.core.resources.IProjectNature;
|
import org.eclipse.core.resources.IProjectNature;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
|
|
||||||
public class QtNature implements IProjectNature {
|
public class QtNature implements IProjectNature {
|
||||||
private static final String ID = "org.eclipse.cdt.qt.core.qtNature";
|
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 (project.isOpen()) {
|
||||||
if (hasNature(project))
|
if (hasNature(project))
|
||||||
return;
|
return;
|
||||||
|
@ -35,8 +36,10 @@ public class QtNature implements IProjectNature {
|
||||||
IProjectDescription desc = project.getDescription();
|
IProjectDescription desc = project.getDescription();
|
||||||
String[] oldIds = desc.getNatureIds();
|
String[] oldIds = desc.getNatureIds();
|
||||||
String[] newIds = new String[oldIds.length + 1];
|
String[] newIds = new String[oldIds.length + 1];
|
||||||
|
System.arraycopy(oldIds, 0, newIds, 0, oldIds.length);
|
||||||
newIds[oldIds.length] = ID;
|
newIds[oldIds.length] = ID;
|
||||||
desc.setNatureIds(newIds);
|
desc.setNatureIds(newIds);
|
||||||
|
project.setDescription(desc, monitor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ import org.eclipse.cdt.core.testplugin.util.TestSourceReader;
|
||||||
import org.eclipse.cdt.qt.core.QtNature;
|
import org.eclipse.cdt.qt.core.QtNature;
|
||||||
import org.eclipse.core.resources.IFile;
|
import org.eclipse.core.resources.IFile;
|
||||||
import org.eclipse.core.resources.IProject;
|
import org.eclipse.core.resources.IProject;
|
||||||
|
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||||
|
|
||||||
public class BaseQtTestCase extends BaseTestCase {
|
public class BaseQtTestCase extends BaseTestCase {
|
||||||
|
|
||||||
|
@ -46,7 +47,7 @@ public class BaseQtTestCase extends BaseTestCase {
|
||||||
|
|
||||||
fCProject = CProjectHelper.createCCProject(projectName, "bin", IPDOMManager.ID_FAST_INDEXER);
|
fCProject = CProjectHelper.createCCProject(projectName, "bin", IPDOMManager.ID_FAST_INDEXER);
|
||||||
fProject = fCProject.getProject();
|
fProject = fCProject.getProject();
|
||||||
QtNature.addNature(fProject);
|
QtNature.addNature(fProject, new NullProgressMonitor());
|
||||||
fIndex = CCorePlugin.getIndexManager().getIndex(fCProject);
|
fIndex = CCorePlugin.getIndexManager().getIndex(fCProject);
|
||||||
|
|
||||||
indexQObject_h();
|
indexQObject_h();
|
||||||
|
|
Loading…
Add table
Reference in a new issue