From 5f3a0c3da02e52cb0bbe0b5608b44be81c6f1082 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Fri, 10 Mar 2006 20:05:02 +0000 Subject: [PATCH] SD2-495, SD2-719. The file extension combo box is now editable in the code template dialog. The code template dialog makes a copy of the code templates so that modifications can be cancelled. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1206 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Project/Resources/CodeTemplatePanel.xfrm | 1 - .../Gui/OptionPanels/CodeTemplatePanel.cs | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Main/Base/Project/Resources/CodeTemplatePanel.xfrm b/src/Main/Base/Project/Resources/CodeTemplatePanel.xfrm index 6bd37987b3..903c21853a 100644 --- a/src/Main/Base/Project/Resources/CodeTemplatePanel.xfrm +++ b/src/Main/Base/Project/Resources/CodeTemplatePanel.xfrm @@ -93,7 +93,6 @@ - diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/OptionPanels/CodeTemplatePanel.cs b/src/Main/Base/Project/Src/TextEditor/Gui/OptionPanels/CodeTemplatePanel.cs index 91da2d451a..cbc90bb8bf 100644 --- a/src/Main/Base/Project/Src/TextEditor/Gui/OptionPanels/CodeTemplatePanel.cs +++ b/src/Main/Base/Project/Src/TextEditor/Gui/OptionPanels/CodeTemplatePanel.cs @@ -36,7 +36,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels public override void LoadPanelContents() { - templateGroups = CodeTemplateLoader.TemplateGroups; + templateGroups = CopyCodeTemplateGroups(CodeTemplateLoader.TemplateGroups); SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Resources.CodeTemplatePanel.xfrm")); @@ -250,5 +250,19 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels } IndexChange(this, EventArgs.Empty); } + + ArrayList CopyCodeTemplateGroups(ArrayList groups) + { + ArrayList copiedGroups = new ArrayList(); + foreach (CodeTemplateGroup group in groups) { + CodeTemplateGroup newGroup = new CodeTemplateGroup(String.Join(";", group.ExtensionStrings)); + foreach (CodeTemplate template in group.Templates) { + CodeTemplate newTemplate = new CodeTemplate(template.Shortcut, template.Description, template.Text); + newGroup.Templates.Add(newTemplate); + } + copiedGroups.Add(newGroup); + } + return copiedGroups; + } } }