diff --git a/src/Main/Base/Project/Src/Commands/FileCommands.cs b/src/Main/Base/Project/Src/Commands/FileCommands.cs index 2e63898ee8..4e6f072de9 100644 --- a/src/Main/Base/Project/Src/Commands/FileCommands.cs +++ b/src/Main/Base/Project/Src/Commands/FileCommands.cs @@ -25,6 +25,17 @@ namespace ICSharpCode.SharpDevelop.Commands { public override void Run() { + if (ProjectService.CurrentProject != null) { + if (MessageService.ShowCustomDialog("${res:Dialog.NewFile.AddToProjectQuestion}", + "${res:Dialog.NewFile.AddToProjectQuestionTitle}", + "${res:Dialog.NewFile.AddToProjectQuestionProject}", + "${res:Dialog.NewFile.AddToProjectQuestionStandalone}") + == 1) + { + new Project.Commands.AddNewItemsToProject().Run(); + return; + } + } using (NewFileDialog nfd = new NewFileDialog(null)) { nfd.Owner = (Form)WorkbenchSingleton.Workbench; nfd.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm); @@ -164,7 +175,7 @@ namespace ICSharpCode.SharpDevelop.Commands fdiag.AddExtension = true; fdiag.Filter = String.Join("|", (string[])(AddInTree.GetTreeNode("/SharpDevelop/Workbench/FileFilter").BuildChildItems(null)).ToArray(typeof(string))); - + if (fdiag.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm) == DialogResult.OK) { string fileName = fdiag.FileName; // currently useless, because the fdiag.FileName can't @@ -247,7 +258,7 @@ namespace ICSharpCode.SharpDevelop.Commands public class ExitWorkbenchCommand : AbstractMenuCommand { public override void Run() - { + { ((Form)WorkbenchSingleton.Workbench).Close(); } } @@ -312,7 +323,7 @@ namespace ICSharpCode.SharpDevelop.Commands public class ClearRecentFiles : AbstractMenuCommand { public override void Run() - { + { try { FileService.RecentOpen.ClearRecentFiles(); @@ -323,7 +334,7 @@ namespace ICSharpCode.SharpDevelop.Commands public class ClearRecentProjects : AbstractMenuCommand { public override void Run() - { + { try { FileService.RecentOpen.ClearRecentProjects(); diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs index 96d25bd102..27f21810c7 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs @@ -263,9 +263,10 @@ namespace ICSharpCode.SharpDevelop.Project.Commands public override void Run() { TreeNode selectedNode = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedNode; - DirectoryNode node = selectedNode as DirectoryNode; - if (node == null) { - node = selectedNode.Parent as DirectoryNode; + DirectoryNode node = null; + while (selectedNode != null && node == null) { + node = selectedNode as DirectoryNode; + selectedNode = selectedNode.Parent; } if (node == null) { return; diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs index 2051b9dd1e..89c1a23955 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs @@ -72,6 +72,7 @@ namespace ICSharpCode.SharpDevelop.Project if (ProjectService.OpenSolution != null) { ProjectServiceSolutionLoaded(null, new SolutionEventArgs(ProjectService.OpenSolution)); } + ActiveWindowChanged(null, null); } public void StartLabelEdit(ExtTreeNode node)