Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@novell.com>2009-10-13 19:35:27 +0400
committerLluis Sanchez <lluis@novell.com>2009-10-13 19:35:27 +0400
commit27a654d9420dcde2e50e96d44a7b57e5fc6f1603 (patch)
tree7287fb3e6925990d18e9cd9a7579dfb312fba0d3 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands
parent9031dfbd69d0058a845f729807fabfb915ca1f0a (diff)
* MonoDevelop.Ide.addin.xml:
* MonoDevelop.Ide.Commands/ProjectCommands.cs: Implemented Run Entry With command. * MonoDevelop.Ide.Execution/CustomExecutionMode.cs: * MonoDevelop.Ide.Execution/CommandExecutionContext.cs: * MonoDevelop.Ide.Execution/ExecutionModeCommandService.cs: Generalized a bit. Custom modes can now be stored for any SolutionEntityItem. * MonoDevelop.Ide.csproj: Fix typo in file name. svn path=/trunk/monodevelop/; revision=144017
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/ProjectCommands.cs47
1 files changed, 43 insertions, 4 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/ProjectCommands.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/ProjectCommands.cs
index 8f1a5980f2..541913794a 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/ProjectCommands.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/ProjectCommands.cs
@@ -76,6 +76,7 @@ namespace MonoDevelop.Ide.Commands
Run,
RunWithList,
RunEntry,
+ RunEntryWithList,
Clean,
CleanSolution,
LocalCopyReference,
@@ -312,10 +313,13 @@ namespace MonoDevelop.Ide.Commands
{
protected override void Update (CommandArrayInfo info)
{
- ExecutionModeCommandService.GenerateExecutionModeCommands (
- IdeApp.ProjectOperations.CurrentSelectedProject,
- RunHandler.CanRun,
- info);
+ Solution sol = IdeApp.ProjectOperations.CurrentSelectedSolution;
+ if (sol != null) {
+ ExecutionModeCommandService.GenerateExecutionModeCommands (
+ sol.StartupItem as Project,
+ RunHandler.CanRun,
+ info);
+ }
}
protected override void Run (object dataItem)
@@ -349,6 +353,41 @@ namespace MonoDevelop.Ide.Commands
}
}
+ internal class RunEntryWithHandler : CommandHandler
+ {
+ protected override void Update (CommandArrayInfo info)
+ {
+ SolutionEntityItem item = IdeApp.ProjectOperations.CurrentSelectedBuildTarget as SolutionEntityItem;
+ if (item != null) {
+ ExecutionModeCommandService.GenerateExecutionModeCommands (
+ item,
+ delegate (IExecutionHandler h) {
+ return IdeApp.ProjectOperations.CanExecute (item, h);
+ },
+ info);
+ }
+ }
+
+ protected override void Run (object dataItem)
+ {
+ IExecutionHandler h = ExecutionModeCommandService.GetExecutionModeForCommand (dataItem);
+ IBuildTarget target = IdeApp.ProjectOperations.CurrentSelectedBuildTarget;
+ if (h == null || !IdeApp.ProjectOperations.CurrentRunOperation.IsCompleted)
+ return;
+
+ if (!IdeApp.Preferences.BuildBeforeExecuting)
+ IdeApp.ProjectOperations.Execute (target, h);
+ else {
+ IAsyncOperation asyncOperation = IdeApp.ProjectOperations.Build (target);
+ asyncOperation.Completed += delegate
+ {
+ if ((asyncOperation.Success) || (IdeApp.Preferences.RunWithWarnings && asyncOperation.SuccessWithWarnings))
+ IdeApp.ProjectOperations.Execute (target, h);
+ };
+ }
+ }
+ }
+
internal class CleanHandler : CommandHandler
{
protected override void Update (CommandInfo info)