From 23cb8156c4f6aaf223dc16d902622e3163f91447 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Thu, 2 Sep 2010 20:54:01 +0200 Subject: [PATCH] fixed exception in Deactivate on deletion of snippet; exclude constants, static fields and properties with backing field from list --- .../Project/Src/Gui/AbstractInlineRefactorDialog.cs | 5 +++++ .../Project/Src/InsertCtorSnippetRefactoring.cs | 11 +++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/AbstractInlineRefactorDialog.cs b/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/AbstractInlineRefactorDialog.cs index b197d04339..3670fcc10f 100644 --- a/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/AbstractInlineRefactorDialog.cs +++ b/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/AbstractInlineRefactorDialog.cs @@ -113,6 +113,11 @@ namespace SharpRefactoring.Gui void IActiveElement.Deactivate(SnippetEventArgs e) { + if (e.Reason == DeactivateReason.Deleted) { + Deactivate(); + return; + } + if (e.Reason == DeactivateReason.ReturnPressed) OKButtonClick(null, null); diff --git a/src/AddIns/Misc/SharpRefactoring/Project/Src/InsertCtorSnippetRefactoring.cs b/src/AddIns/Misc/SharpRefactoring/Project/Src/InsertCtorSnippetRefactoring.cs index f8b4695241..cd77b9b6cf 100644 --- a/src/AddIns/Misc/SharpRefactoring/Project/Src/InsertCtorSnippetRefactoring.cs +++ b/src/AddIns/Misc/SharpRefactoring/Project/Src/InsertCtorSnippetRefactoring.cs @@ -8,6 +8,7 @@ using System; using System.Collections.Generic; using System.Linq; + using ICSharpCode.AvalonEdit.Snippets; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Dom; @@ -80,13 +81,15 @@ namespace SharpRefactoring { int i = 0; - foreach (var f in sourceClass.Fields) { - yield return new CtorParamWrapper(f) { Index = i, IsSelected = !f.IsReadonly }; + foreach (var f in sourceClass.Fields.Where(field => !field.IsConst && field.IsStatic == sourceClass.IsStatic)) { + yield return new CtorParamWrapper(f) { Index = i, IsSelected = true }; i++; } - foreach (var p in sourceClass.Properties.Where(prop => prop.CanSet && !prop.IsIndexer)) { - yield return new CtorParamWrapper(p) { Index = i, IsSelected = !p.IsReadonly }; + foreach (var p in sourceClass.Properties.Where(prop => prop.CanSet && !prop.IsIndexer + && PropertyRefactoringMenuBuilder.IsAutomaticProperty(prop) + && prop.IsStatic == sourceClass.IsStatic)) { + yield return new CtorParamWrapper(p) { Index = i, IsSelected = true }; i++; } }