Browse Source

Read unknown project items from MSBuild files, allow project to override creation of project items (patch by Scott Ferrett).

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@784 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
8ce89234c4
  1. 5
      src/Main/Base/Project/Src/Project/AbstractProject.cs
  2. 6
      src/Main/Base/Project/Src/Project/IProject.cs
  3. 2
      src/Main/Base/Project/Src/Project/Items/ProjectItem.cs
  4. 5
      src/Main/Base/Project/Src/Project/MSBuildProject.cs

5
src/Main/Base/Project/Src/Project/AbstractProject.cs

@ -689,6 +689,11 @@ namespace ICSharpCode.SharpDevelop.Project @@ -689,6 +689,11 @@ namespace ICSharpCode.SharpDevelop.Project
{
return ParseProjectContent.CreateUninitalized(this);
}
public virtual ProjectItem CreateProjectItem(string itemType)
{
return new UnknownProjectItem(this, itemType);
}
/// <summary>
/// Saves project preferences (currently opened files, bookmarks etc.) to the

6
src/Main/Base/Project/Src/Project/IProject.cs

@ -111,6 +111,12 @@ namespace ICSharpCode.SharpDevelop.Project @@ -111,6 +111,12 @@ namespace ICSharpCode.SharpDevelop.Project
/// </summary>
ParseProjectContent CreateProjectContent();
/// <summary>
/// Creates a new projectItem for the passed itemType
/// This method should only be called by ProjectItemFactory.CreateProjectItem()!
/// </summary>
ProjectItem CreateProjectItem(string itemType);
CompilerResults Build();
CompilerResults Rebuild();
CompilerResults Clean();

2
src/Main/Base/Project/Src/Project/Items/ProjectItem.cs

@ -131,7 +131,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -131,7 +131,7 @@ namespace ICSharpCode.SharpDevelop.Project
public static ProjectItem ReadItem(XmlTextReader reader, IProject project, string itemType)
{
ProjectItem newItem = ProjectItemFactory.CreateProjectItem(project, itemType);
ProjectItem newItem = project != null ? project.CreateProjectItem(itemType) : ProjectItemFactory.CreateProjectItem(project, itemType);
newItem.Include = reader.GetAttribute("Include");
if (!reader.IsEmptyElement) {
PropertyGroup.ReadProperties(reader, newItem.Properties, itemType);

5
src/Main/Base/Project/Src/Project/MSBuildProject.cs

@ -66,6 +66,11 @@ namespace ICSharpCode.SharpDevelop.Project @@ -66,6 +66,11 @@ namespace ICSharpCode.SharpDevelop.Project
}
#region Xml reading routines
public override ProjectItem CreateProjectItem(string itemType)
{
return ProjectItemFactory.CreateProjectItem(this, itemType);
}
static PropertyGroup ReadPropertyGroup(XmlReader reader)
{
PropertyGroup properties = new PropertyGroup();

Loading…
Cancel
Save