From b932d4fd465276bbfc352a993ca5194e966217ec Mon Sep 17 00:00:00 2001 From: Christian Hornung Date: Sun, 25 Jan 2009 20:22:03 +0000 Subject: [PATCH] Fixed SD2-1518 - Removing a component from Form is not saved. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@3781 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Project/Src/DesignerViewContent.cs | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs index 6ce9618583..4b018a64ac 100644 --- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs +++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs @@ -310,7 +310,7 @@ namespace ICSharpCode.FormsDesigner serviceContainer.AddService(typeof(UndoEngine), undoEngine); IComponentChangeService componentChangeService = (IComponentChangeService)designSurface.GetService(typeof(IComponentChangeService)); - componentChangeService.ComponentChanged += MakeDirty; + componentChangeService.ComponentChanged += ComponentChanged; componentChangeService.ComponentAdded += ComponentListChanged; componentChangeService.ComponentRemoved += ComponentListChanged; componentChangeService.ComponentRename += ComponentListChanged; @@ -333,7 +333,7 @@ namespace ICSharpCode.FormsDesigner bool hasUnmergedChanges; - void MakeDirty(object sender, ComponentChangedEventArgs args) + void MakeDirty() { hasUnmergedChanges = true; this.DesignerCodeFile.MakeDirty(); @@ -352,10 +352,22 @@ namespace ICSharpCode.FormsDesigner } } + void ComponentChanged(object sender, ComponentChangedEventArgs e) + { + bool loading = this.loader != null && this.loader.Loading; + LoggingService.Debug("Forms designer: ComponentChanged: " + (e.Component == null ? "" : e.Component.ToString()) + ", Member=" + (e.Member == null ? "" : e.Member.Name) + ", OldValue=" + (e.OldValue == null ? "" : e.OldValue.ToString()) + ", NewValue=" + (e.NewValue == null ? "" : e.NewValue.ToString()) + "; Loading=" + loading); + if (!loading) { + this.MakeDirty(); + } + } + void ComponentListChanged(object sender, EventArgs e) { - if (this.loader == null || !this.loader.Loading) { + bool loading = this.loader != null && this.loader.Loading; + LoggingService.Debug("Forms designer: Component added/removed/renamed, Loading=" + loading); + if (!loading) { shouldUpdateSelectableObjects = true; + this.MakeDirty(); } } @@ -384,7 +396,7 @@ namespace ICSharpCode.FormsDesigner IComponentChangeService componentChangeService = designSurface.GetService(typeof(IComponentChangeService)) as IComponentChangeService; if (componentChangeService != null) { - componentChangeService.ComponentChanged -= MakeDirty; + componentChangeService.ComponentChanged -= ComponentChanged; componentChangeService.ComponentAdded -= ComponentListChanged; componentChangeService.ComponentRemoved -= ComponentListChanged; componentChangeService.ComponentRename -= ComponentListChanged;