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

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

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

@ -111,6 +111,12 @@ namespace ICSharpCode.SharpDevelop.Project
/// </summary> /// </summary>
ParseProjectContent CreateProjectContent(); 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 Build();
CompilerResults Rebuild(); CompilerResults Rebuild();
CompilerResults Clean(); CompilerResults Clean();

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

@ -131,7 +131,7 @@ namespace ICSharpCode.SharpDevelop.Project
public static ProjectItem ReadItem(XmlTextReader reader, IProject project, string itemType) 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"); newItem.Include = reader.GetAttribute("Include");
if (!reader.IsEmptyElement) { if (!reader.IsEmptyElement) {
PropertyGroup.ReadProperties(reader, newItem.Properties, itemType); PropertyGroup.ReadProperties(reader, newItem.Properties, itemType);

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

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

Loading…
Cancel
Save