From 36dabdb8e5d34a54a8b104380558591841d3b49c Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Sun, 7 Dec 2008 18:11:44 +0000 Subject: [PATCH] Force recompilation of all projects when the solution configuration is changed. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@3674 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs | 10 ++++++---- .../Base/Project/Src/Project/Solution/Solution.cs | 1 + .../Src/Services/ProjectService/ProjectService.cs | 12 +++--------- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs index 61ed378d56..b8da6d6874 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs @@ -407,7 +407,7 @@ namespace ICSharpCode.SharpDevelop.Project { base.Initialize(); } - + /// /// Create's a new FileProjectItem in this DirectoryNode. /// @@ -543,11 +543,13 @@ namespace ICSharpCode.SharpDevelop.Project return true; } if (dataObject.GetDataPresent(typeof(FileNode))) { - FileOperationClipboardObject clipboardObject = (FileOperationClipboardObject)dataObject.GetData(typeof(FileNode).ToString()); - return File.Exists(clipboardObject.FileName); + FileOperationClipboardObject clipboardObject = dataObject.GetData(typeof(FileNode).ToString()) as FileOperationClipboardObject; + return clipboardObject != null && File.Exists(clipboardObject.FileName); } if (dataObject.GetDataPresent(typeof(DirectoryNode))) { - FileOperationClipboardObject clipboardObject = (FileOperationClipboardObject)dataObject.GetData(typeof(DirectoryNode).ToString()); + FileOperationClipboardObject clipboardObject = dataObject.GetData(typeof(DirectoryNode).ToString()) as FileOperationClipboardObject; + if (clipboardObject == null) + return false; if (FileUtility.IsBaseDirectory(clipboardObject.FileName, Directory)) { return false; } diff --git a/src/Main/Base/Project/Src/Project/Solution/Solution.cs b/src/Main/Base/Project/Src/Project/Solution/Solution.cs index afeb4dc0f0..01110f718e 100644 --- a/src/Main/Base/Project/Src/Project/Solution/Solution.cs +++ b/src/Main/Base/Project/Src/Project/Solution/Solution.cs @@ -736,6 +736,7 @@ namespace ICSharpCode.SharpDevelop.Project l.Project.ActiveConfiguration = l.Configuration; l.Project.ActivePlatform = FixPlatformNameForProject(l.Platform); } + ProjectService.OnSolutionConfigurationChanged(new SolutionConfigurationEventArgs(this, preferences.ActiveConfiguration)); } /// diff --git a/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs b/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs index 662182b184..81b057f323 100644 --- a/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs +++ b/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs @@ -524,14 +524,7 @@ namespace ICSharpCode.SharpDevelop.Project } } - static void OnProjectConfigurationChanged(ProjectConfigurationEventArgs e) - { - if (ProjectConfigurationChanged != null) { - ProjectConfigurationChanged(null, e); - } - } - - static void OnSolutionConfigurationChanged(SolutionConfigurationEventArgs e) + internal static void OnSolutionConfigurationChanged(SolutionConfigurationEventArgs e) { if (SolutionConfigurationChanged != null) { SolutionConfigurationChanged(null, e); @@ -642,7 +635,8 @@ namespace ICSharpCode.SharpDevelop.Project public static event EventHandler StartBuild; public static event EventHandler EndBuild; - public static event ProjectConfigurationEventHandler ProjectConfigurationChanged; + [Obsolete("This event is never raised.")] + public static event ProjectConfigurationEventHandler ProjectConfigurationChanged { add {} remove {} } public static event SolutionConfigurationEventHandler SolutionConfigurationChanged; public static event EventHandler SolutionCreated;