diff --git a/CSharp/Libraries/UniversalEditor.UserInterface/Engine.cs b/CSharp/Libraries/UniversalEditor.UserInterface/Engine.cs index b0aa6bd5..3871c3e0 100644 --- a/CSharp/Libraries/UniversalEditor.UserInterface/Engine.cs +++ b/CSharp/Libraries/UniversalEditor.UserInterface/Engine.cs @@ -19,6 +19,8 @@ using UniversalEditor.UserInterface.Dialogs; using MBS.Framework.UserInterface; using MBS.Framework.UserInterface.Input.Keyboard; using MBS.Framework.Drawing; +using UniversalEditor.UserInterface.Panels; +using MBS.Framework.UserInterface.Controls; namespace UniversalEditor.UserInterface { @@ -315,8 +317,18 @@ namespace UniversalEditor.UserInterface Application.AttachCommandEventHandler("EditDelete", delegate(object sender, EventArgs e) { Editor editor = LastWindow.GetCurrentEditor(); - if (editor == null) return; - editor.Delete(); + if (editor != null) + { + editor.Delete(); + } + else + { + Control ctl = LastWindow.ActiveControl; + if (ctl is ListView && ctl.Parent is SolutionExplorerPanel) + { + (ctl.Parent as SolutionExplorerPanel).Delete(); + } + } }); Application.AttachCommandEventHandler("EditUndo", delegate(object sender, EventArgs e) { diff --git a/CSharp/Libraries/UniversalEditor.UserInterface/Panels/SolutionExplorerPanel.cs b/CSharp/Libraries/UniversalEditor.UserInterface/Panels/SolutionExplorerPanel.cs index 1ec88a09..b713323e 100644 --- a/CSharp/Libraries/UniversalEditor.UserInterface/Panels/SolutionExplorerPanel.cs +++ b/CSharp/Libraries/UniversalEditor.UserInterface/Panels/SolutionExplorerPanel.cs @@ -208,6 +208,7 @@ namespace UniversalEditor.UserInterface.Panels // - if it is a special folder named "Properties/Resources", the resource editor shall be shown ProjectObjectModel project = e.Row.GetExtraData("project"); ProjectFile file = e.Row.GetExtraData("file"); + ProjectFolder folder = e.Row.GetExtraData("folder"); if (project != null) { MessageDialog.ShowDialog(String.Format("Opening project properties for {0}", e.Row.RowColumns[0].Value), "Info", MessageDialogButtons.OK); @@ -216,6 +217,10 @@ namespace UniversalEditor.UserInterface.Panels { Engine.CurrentEngine.LastWindow.OpenFile(file.SourceFileName); } + else if (folder != null) + { + return; + } else { MessageDialog.ShowDialog(String.Format("Activated row {0}", e.Row.RowColumns[0].Value), "Info", MessageDialogButtons.OK); @@ -331,5 +336,32 @@ namespace UniversalEditor.UserInterface.Panels } } + /// + /// Deletes the selected item in the Solution Explorer panel. + /// + public void Delete() + { + if (tvSolutionExplorer.SelectedRows.Count > 0) + { + /* + // does not work - we need to fix this in UWT + while (tvSolutionExplorer.SelectedRows.Count > 0) + { + tmSolutionExplorer.Rows.Remove(tvSolutionExplorer.SelectedRows[0]); + } + */ + ProjectFolder folder = tvSolutionExplorer.SelectedRows[0].GetExtraData("folder"); + ProjectFile file = tvSolutionExplorer.SelectedRows[0].GetExtraData("file"); + if (file != null) + { + file.Parent.Files.Remove(file); + } + if (folder != null) + { + folder.Parent.Folders.Remove(folder); + } + UpdateSolutionExplorer(); + } + } } }