diff options
author | Lluis Sanchez <lluis@novell.com> | 2009-10-13 19:35:27 +0400 |
---|---|---|
committer | Lluis Sanchez <lluis@novell.com> | 2009-10-13 19:35:27 +0400 |
commit | 27a654d9420dcde2e50e96d44a7b57e5fc6f1603 (patch) | |
tree | 7287fb3e6925990d18e9cd9a7579dfb312fba0d3 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands | |
parent | 9031dfbd69d0058a845f729807fabfb915ca1f0a (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.cs | 47 |
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) |