From f73f730c738baf8701a5892b7af64fd468d1dc0c Mon Sep 17 00:00:00 2001 From: Lluis Sanchez Date: Thu, 10 Mar 2016 15:03:02 +0100 Subject: Moved project item events from SolutionItem to Project class --- .../MonoDevelop.Projects/DotNetProject.cs | 4 +-- .../MonoDevelop.Projects/Project.cs | 40 +++++++++++++++++++--- .../MonoDevelop.Projects/ProjectExtension.cs | 10 ++++++ .../MonoDevelop.Projects/ProjectItemCollection.cs | 6 ++-- .../MonoDevelop.Projects/ProjectItemEventArgs.cs | 9 ++++- .../MonoDevelop.Projects/SolutionItem.cs | 40 ---------------------- .../MonoDevelop.Projects/SolutionItemExtension.cs | 10 ------ 7 files changed, 59 insertions(+), 60 deletions(-) (limited to 'main') diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs index b10733f517..4bcc7e1adf 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs @@ -1427,7 +1427,7 @@ namespace MonoDevelop.Projects } } - protected internal override void OnItemsAdded (IEnumerable objs) + protected override void OnItemsAdded (IEnumerable objs) { base.OnItemsAdded (objs); foreach (var pref in objs.OfType ()) { @@ -1436,7 +1436,7 @@ namespace MonoDevelop.Projects } } - protected internal override void OnItemsRemoved (IEnumerable objs) + protected override void OnItemsRemoved (IEnumerable objs) { base.OnItemsRemoved (objs); foreach (var pref in objs.OfType ()) { diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs index c4c1bebd83..21b8307ff9 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs @@ -1895,22 +1895,40 @@ namespace MonoDevelop.Projects return baseFiles; } - protected internal override void OnItemsAdded (IEnumerable objs) + internal void NotifyItemsAdded (IEnumerable objs) + { + ProjectExtension.OnItemsAdded (objs); + } + + internal void NotifyItemsRemoved (IEnumerable objs) + { + ProjectExtension.OnItemsRemoved (objs); + } + + protected virtual void OnItemsAdded (IEnumerable objs) { - base.OnItemsAdded (objs); foreach (var it in objs) { if (it.Project != null) throw new InvalidOperationException (it.GetType ().Name + " already belongs to a project"); it.Project = this; } + + NotifyModified ("Items"); + if (ProjectItemAdded != null) + ProjectItemAdded (this, new ProjectItemEventArgs (objs.Select (pi => new ProjectItemEventInfo (this, pi)))); + NotifyFileAddedToProject (objs.OfType ()); } - protected internal override void OnItemsRemoved (IEnumerable objs) + protected virtual void OnItemsRemoved (IEnumerable objs) { - base.OnItemsRemoved (objs); foreach (var it in objs) it.Project = null; + + NotifyModified ("Items"); + if (ProjectItemRemoved != null) + ProjectItemRemoved (this, new ProjectItemEventArgs (objs.Select (pi => new ProjectItemEventInfo (this, pi)))); + NotifyFileRemovedFromProject (objs.OfType ()); } @@ -2897,6 +2915,10 @@ namespace MonoDevelop.Projects } } + public event EventHandler ProjectItemAdded; + + public event EventHandler ProjectItemRemoved; + /// /// Occurs when a file is removed from this project. /// @@ -3065,6 +3087,16 @@ namespace MonoDevelop.Projects { return Project.OnGetSourceFiles (monitor, configuration); } + + internal protected override void OnItemsAdded (IEnumerable objs) + { + Project.OnItemsAdded (objs); + } + + internal protected override void OnItemsRemoved (IEnumerable objs) + { + Project.OnItemsRemoved (objs); + } } } diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectExtension.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectExtension.cs index 2360dc5d19..57e1ca1830 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectExtension.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectExtension.cs @@ -192,6 +192,16 @@ namespace MonoDevelop.Projects #region Events + internal protected virtual void OnItemsAdded (IEnumerable objs) + { + next.OnItemsAdded (objs); + } + + internal protected virtual void OnItemsRemoved (IEnumerable objs) + { + next.OnItemsRemoved (objs); + } + internal protected virtual void OnFileRemovedFromProject (ProjectFileEventArgs e) { next.OnFileRemovedFromProject (e); diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectItemCollection.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectItemCollection.cs index 1c4de51014..429acb33b3 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectItemCollection.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectItemCollection.cs @@ -51,7 +51,7 @@ namespace MonoDevelop.Projects public class ProjectItemCollection: ItemCollection, IItemListHandler where T: ProjectItem { - SolutionItem parent; + Project parent; IItemListHandler parentCollection; List subCollections; @@ -147,7 +147,7 @@ namespace MonoDevelop.Projects if (parentCollection != null) parentCollection.InternalAdd (items, false); if (parent != null) - parent.OnItemsAdded (items); + parent.NotifyItemsAdded (items); } } @@ -162,7 +162,7 @@ namespace MonoDevelop.Projects if (parentCollection != null) parentCollection.InternalRemove (items, false); if (parent != null) - parent.OnItemsRemoved (items); + parent.NotifyItemsRemoved (items); } } } diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectItemEventArgs.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectItemEventArgs.cs index 806c633362..8c0eb53205 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectItemEventArgs.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectItemEventArgs.cs @@ -25,6 +25,8 @@ // THE SOFTWARE. using System; using MonoDevelop.Core; +using System.Collections; +using System.Collections.Generic; namespace MonoDevelop.Projects { @@ -33,7 +35,12 @@ namespace MonoDevelop.Projects public ProjectItemEventArgs () { } - + + public ProjectItemEventArgs (IEnumerable infos) + { + AddRange (infos); + } + public ProjectItemEventArgs (SolutionItem solutionItem, ProjectItem item) { Add (new ProjectItemEventInfo (solutionItem, item)); diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs index 641aee9414..76b8ae90a7 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs @@ -72,8 +72,6 @@ namespace MonoDevelop.Projects public event ConfigurationEventHandler DefaultConfigurationChanged; public event ConfigurationEventHandler ConfigurationAdded; public event ConfigurationEventHandler ConfigurationRemoved; - public event EventHandler ProjectItemAdded; - public event EventHandler ProjectItemRemoved; // When set, it means this item is saved as part of a global solution save operation internal bool SavingSolution { get; set; } @@ -1193,34 +1191,6 @@ namespace MonoDevelop.Projects return base.OnGetLastBuildTime (configuration); } - internal protected virtual void OnItemsAdded (IEnumerable objs) - { - ItemExtension.OnItemsAdded (objs); - } - - void DoOnItemsAdded (IEnumerable objs) - { - NotifyModified ("Items"); - var args = new ProjectItemEventArgs (); - args.AddRange (objs.Select (pi => new ProjectItemEventInfo (this, pi))); - if (ProjectItemAdded != null) - ProjectItemAdded (this, args); - } - - internal protected virtual void OnItemsRemoved (IEnumerable objs) - { - ItemExtension.OnItemsRemoved (objs); - } - - void DoOnItemsRemoved (IEnumerable objs) - { - NotifyModified ("Items"); - var args = new ProjectItemEventArgs (); - args.AddRange (objs.Select (pi => new ProjectItemEventInfo (this, pi))); - if (ProjectItemRemoved != null) - ProjectItemRemoved (this, args); - } - protected virtual void OnDefaultConfigurationChanged (ConfigurationEventArgs args) { ItemExtension.OnDefaultConfigurationChanged (args); @@ -1418,16 +1388,6 @@ namespace MonoDevelop.Projects Item.DoOnReloadRequired (args); } - internal protected override void OnItemsAdded (IEnumerable objs) - { - Item.DoOnItemsAdded (objs); - } - - internal protected override void OnItemsRemoved (IEnumerable objs) - { - Item.DoOnItemsRemoved (objs); - } - internal protected override void OnDefaultConfigurationChanged (ConfigurationEventArgs args) { Item.DoOnDefaultConfigurationChanged (args); diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs index 3852863e78..ee20bd4c5a 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItemExtension.cs @@ -244,16 +244,6 @@ namespace MonoDevelop.Projects next.OnReloadRequired (args); } - internal protected virtual void OnItemsAdded (IEnumerable objs) - { - next.OnItemsAdded (objs); - } - - internal protected virtual void OnItemsRemoved (IEnumerable objs) - { - next.OnItemsRemoved (objs); - } - internal protected virtual void OnDefaultConfigurationChanged (ConfigurationEventArgs args) { next.OnDefaultConfigurationChanged (args); -- cgit v1.2.3