diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/CustomComponentsSideTab.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/CustomComponentsSideTab.cs
index 147e954e64..487d6a61c0 100644
--- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/CustomComponentsSideTab.cs
+++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/CustomComponentsSideTab.cs
@@ -33,7 +33,7 @@ namespace ICSharpCode.FormsDesigner.Gui
{
this.DisplayName = StringParser.Parse(this.Name);
ScanProjectAssemblies();
- ProjectService.EndBuild += RescanProjectAssemblies;
+ ProjectService.BuildFinished += RescanProjectAssemblies;
ProjectService.SolutionLoaded += RescanProjectAssemblies;
ProjectService.ProjectItemAdded += ProjectItemAdded;
}
@@ -42,7 +42,7 @@ namespace ICSharpCode.FormsDesigner.Gui
{
if (!disposed) {
disposed = true;
- ProjectService.EndBuild -= RescanProjectAssemblies;
+ ProjectService.BuildFinished -= RescanProjectAssemblies;
ProjectService.SolutionLoaded -= RescanProjectAssemblies;
ProjectService.ProjectItemAdded -= ProjectItemAdded;
}
diff --git a/src/AddIns/Misc/UnitTesting/Src/RunTestCommands.cs b/src/AddIns/Misc/UnitTesting/Src/RunTestCommands.cs
index 7fd6959429..6205b89e3f 100644
--- a/src/AddIns/Misc/UnitTesting/Src/RunTestCommands.cs
+++ b/src/AddIns/Misc/UnitTesting/Src/RunTestCommands.cs
@@ -412,17 +412,8 @@ namespace ICSharpCode.UnitTesting
///
public override void BeforeBuild()
{
- ProjectService.RaiseEventStartBuild();
SaveAllFiles.SaveAll();
}
-
- ///
- /// After a build do not show the errors list.
- ///
- public override void AfterBuild()
- {
- ProjectService.RaiseEventEndBuild(new BuildEventArgs(LastBuildResults));
- }
}
public class RunTestInPadCommand : AbstractRunTestCommand
diff --git a/src/Main/Base/Project/Src/Commands/BuildCommands.cs b/src/Main/Base/Project/Src/Commands/BuildCommands.cs
index 5db1eea651..7994ab9d33 100644
--- a/src/Main/Base/Project/Src/Commands/BuildCommands.cs
+++ b/src/Main/Base/Project/Src/Commands/BuildCommands.cs
@@ -111,22 +111,10 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
public class Build : AbstractBuildMenuCommand
{
- public override void BeforeBuild()
- {
- base.BeforeBuild();
- ProjectService.RaiseEventStartBuild();
- }
-
public override void StartBuild()
{
BuildEngine.BuildInGui(ProjectService.OpenSolution, new BuildOptions(BuildTarget.Build, CallbackMethod));
}
-
- public override void AfterBuild()
- {
- ProjectService.RaiseEventEndBuild(new BuildEventArgs(LastBuildResults));
- base.AfterBuild();
- }
}
public class BuildBeforeExecute : Build
@@ -212,22 +200,10 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
this.targetProject = targetProject;
}
- public override void BeforeBuild()
- {
- base.BeforeBuild();
- ProjectService.RaiseEventStartBuild();
- }
-
public override void StartBuild()
{
BuildEngine.BuildInGui(this.ProjectToBuild, new BuildOptions(BuildTarget.Build, CallbackMethod));
}
-
- public override void AfterBuild()
- {
- ProjectService.RaiseEventEndBuild(new BuildEventArgs(LastBuildResults));
- base.AfterBuild();
- }
}
public class RebuildProject : BuildProject
diff --git a/src/Main/Base/Project/Src/Gui/AbstractPadContent.cs b/src/Main/Base/Project/Src/Gui/AbstractPadContent.cs
index 17994bc96c..c229418a72 100644
--- a/src/Main/Base/Project/Src/Gui/AbstractPadContent.cs
+++ b/src/Main/Base/Project/Src/Gui/AbstractPadContent.cs
@@ -20,14 +20,28 @@ namespace ICSharpCode.SharpDevelop.Gui
{
}
- protected bool IsVisible {
+ public void BringToFront()
+ {
+ PadDescriptor d = this.PadDescriptor;
+ if (d != null)
+ d.BringPadToFront();
+ }
+
+ protected virtual PadDescriptor PadDescriptor {
get {
if (WorkbenchSingleton.Workbench == null || WorkbenchSingleton.Workbench.WorkbenchLayout == null)
+ return null;
+ return WorkbenchSingleton.Workbench.GetPad(GetType());
+ }
+ }
+
+ protected bool IsVisible {
+ get {
+ PadDescriptor d = this.PadDescriptor;
+ if (d != null)
+ return WorkbenchSingleton.Workbench.WorkbenchLayout.IsVisible(d);
+ else
return false;
- PadDescriptor d = WorkbenchSingleton.Workbench.GetPad(GetType());
- if (d == null)
- return false;
- return WorkbenchSingleton.Workbench.WorkbenchLayout.IsVisible(d);
}
}
}
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs b/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs
index 25018e6a1a..e2b7d1822d 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs
@@ -89,7 +89,7 @@ namespace ICSharpCode.SharpDevelop.Gui
InternalShowResults();
};
- ProjectService.EndBuild += ProjectServiceEndBuild;
+ ProjectService.BuildFinished += ProjectServiceEndBuild;
ProjectService.SolutionLoaded += OnSolutionOpen;
ProjectService.SolutionClosed += OnSolutionClosed;
diff --git a/src/Main/Base/Project/Src/Project/BuildEngine.cs b/src/Main/Base/Project/Src/Project/BuildEngine.cs
index 8c3a03cb74..b4ba21f88b 100644
--- a/src/Main/Base/Project/Src/Project/BuildEngine.cs
+++ b/src/Main/Base/Project/Src/Project/BuildEngine.cs
@@ -49,17 +49,13 @@ namespace ICSharpCode.SharpDevelop.Project
} else {
guiBuildProgressMonitor = new CancellableProgressMonitor(StatusBarService.CreateProgressMonitor());
Gui.WorkbenchSingleton.Workbench.GetPad(typeof(Gui.CompilerMessageView)).BringPadToFront();
- GuiBuildStarted.RaiseEvent(null, new BuildEventArgs(project, options));
+ ProjectService.RaiseEventBuildStarted(new BuildEventArgs(project, options));
StartBuild(project, options,
new MessageViewSink(TaskService.BuildMessageViewCategory),
guiBuildProgressMonitor);
}
}
- // TODO: in 4.0, replace ProjectService.BuildStarted/BuildFinished with these events
- public static event EventHandler GuiBuildStarted;
- public static event EventHandler GuiBuildFinished;
-
///
/// Gets whether there is a build currently running inside the SharpDevelop GUI.
///
@@ -110,7 +106,7 @@ namespace ICSharpCode.SharpDevelop.Project
WorkbenchSingleton.SafeThreadAsyncCall(
delegate {
guiBuildProgressMonitor = null;
- GuiBuildFinished.RaiseEvent(null, new BuildEventArgs(buildable, options, results));
+ ProjectService.RaiseEventBuildFinished(new BuildEventArgs(buildable, options, results));
});
}
}
diff --git a/src/Main/Base/Project/Src/Services/ProjectService/CompileModifiedProjectsOnly.cs b/src/Main/Base/Project/Src/Services/ProjectService/CompileModifiedProjectsOnly.cs
index a61cbd9299..ab24c3aad3 100644
--- a/src/Main/Base/Project/Src/Services/ProjectService/CompileModifiedProjectsOnly.cs
+++ b/src/Main/Base/Project/Src/Services/ProjectService/CompileModifiedProjectsOnly.cs
@@ -45,7 +45,7 @@ namespace ICSharpCode.SharpDevelop.Project
ProjectService.SolutionClosed += MarkAllForRecompilation;
ProjectService.SolutionConfigurationChanged += MarkAllForRecompilation;
ProjectService.SolutionSaved += MarkAllForRecompilation;
- BuildEngine.GuiBuildFinished += BuildEngine_GuiBuildFinished;
+ ProjectService.BuildFinished += ProjectService_BuildFinished;
FileUtility.FileSaved += OnFileSaved;
}
@@ -55,7 +55,7 @@ namespace ICSharpCode.SharpDevelop.Project
// first call to init causes static ctor calls
}
- static void BuildEngine_GuiBuildFinished(object sender, BuildEventArgs e)
+ static void ProjectService_BuildFinished(object sender, BuildEventArgs e)
{
// at the end of an successful build, mark all built projects as unmodified
if (e.Results.Result == BuildResultCode.Success) {
diff --git a/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs b/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs
index 5bf3c6bd44..a53cb95fab 100644
--- a/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs
+++ b/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs
@@ -553,22 +553,34 @@ namespace ICSharpCode.SharpDevelop.Project
}
}
- public static void RaiseEventStartBuild()
+ ///
+ /// Raises the event.
+ ///
+ /// You do not need to call this method if you use BuildEngine.BuildInGui - the build
+ /// engine will call these events itself.
+ ///
+ public static void RaiseEventBuildStarted(BuildEventArgs e)
{
+ if (e == null)
+ throw new ArgumentNullException("e");
WorkbenchSingleton.AssertMainThread();
building = true;
- if (StartBuild != null) {
- StartBuild(null, EventArgs.Empty);
- }
+ BuildStarted.RaiseEvent(null, e);
}
- public static void RaiseEventEndBuild(BuildEventArgs e)
+ ///
+ /// Raises the event.
+ ///
+ /// You do not need to call this method if you use BuildEngine.BuildInGui - the build
+ /// engine will call these events itself.
+ ///
+ public static void RaiseEventBuildFinished(BuildEventArgs e)
{
+ if (e == null)
+ throw new ArgumentNullException("e");
WorkbenchSingleton.AssertMainThread();
building = false;
- if (EndBuild != null) {
- EndBuild(null, e);
- }
+ BuildFinished.RaiseEvent(null, e);
}
public static void RemoveSolutionFolder(string guid)
@@ -646,8 +658,8 @@ namespace ICSharpCode.SharpDevelop.Project
public static event ProjectEventHandler ProjectAdded;
public static event SolutionFolderEventHandler SolutionFolderRemoved;
- public static event EventHandler StartBuild;
- public static event EventHandler EndBuild;
+ public static event EventHandler BuildStarted;
+ public static event EventHandler BuildFinished;
public static event SolutionConfigurationEventHandler SolutionConfigurationChanged;
@@ -705,12 +717,6 @@ namespace ICSharpCode.SharpDevelop.Project
this.Options = options;
this.Results = results;
}
-
- public BuildEventArgs(BuildResults results)
- {
- // TODO: remove this constructor in 4.0
- this.Results = results;
- }
}
}
diff --git a/src/Main/Core/Project/ICSharpCode.Core.csproj b/src/Main/Core/Project/ICSharpCode.Core.csproj
index 454b77720f..8b2bac3fd0 100644
--- a/src/Main/Core/Project/ICSharpCode.Core.csproj
+++ b/src/Main/Core/Project/ICSharpCode.Core.csproj
@@ -17,9 +17,10 @@
Always
False
File
- v2.0
+ v3.5
False
false
+ C:\Users\daniel\AppData\Roaming\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis
true
@@ -47,6 +48,9 @@
+
+ 3.5
+
diff --git a/src/Main/Core/Project/Src/Util/CallbackOnDispose.cs b/src/Main/Core/Project/Src/Util/CallbackOnDispose.cs
index 1db64aa893..1f1b871f60 100644
--- a/src/Main/Core/Project/Src/Util/CallbackOnDispose.cs
+++ b/src/Main/Core/Project/Src/Util/CallbackOnDispose.cs
@@ -13,12 +13,11 @@ namespace ICSharpCode.Core
///
/// Invokes a callback when this class is dispsed.
///
- sealed class CallbackOnDispose : IDisposable
+ public sealed class CallbackOnDispose : IDisposable
{
- // TODO: in 4.0, use System.Action and make this class public
- System.Threading.ThreadStart callback;
+ Action callback;
- public CallbackOnDispose(System.Threading.ThreadStart callback)
+ public CallbackOnDispose(Action callback)
{
if (callback == null)
throw new ArgumentNullException("callback");
@@ -27,7 +26,7 @@ namespace ICSharpCode.Core
public void Dispose()
{
- System.Threading.ThreadStart action = Interlocked.Exchange(ref callback, null);
+ Action action = Interlocked.Exchange(ref callback, null);
if (action != null)
action();
}
diff --git a/src/Main/ICSharpCode.SharpDevelop.Sda/Src/CallHelper.cs b/src/Main/ICSharpCode.SharpDevelop.Sda/Src/CallHelper.cs
index 87f7d550ce..a2c722576a 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Sda/Src/CallHelper.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Sda/Src/CallHelper.cs
@@ -90,8 +90,8 @@ namespace ICSharpCode.SharpDevelop.Sda
startup.RunInitialization();
// Register events to marshal back
- Project.ProjectService.StartBuild += delegate { this.callback.StartBuild(); };
- Project.ProjectService.EndBuild += delegate { this.callback.EndBuild(); };
+ Project.ProjectService.BuildStarted += delegate { this.callback.StartBuild(); };
+ Project.ProjectService.BuildFinished += delegate { this.callback.EndBuild(); };
Project.ProjectService.SolutionLoaded += delegate { this.callback.SolutionLoaded(); };
Project.ProjectService.SolutionClosed += delegate { this.callback.SolutionClosed(); };
Project.ProjectService.SolutionConfigurationChanged += delegate { this.callback.SolutionConfigurationChanged(); };