diff options
author | Simon Lindgren <simon.n.lindgren@gmail.com> | 2013-08-14 19:06:37 +0400 |
---|---|---|
committer | Simon Lindgren <simon.n.lindgren@gmail.com> | 2013-08-20 17:33:19 +0400 |
commit | 627d82c7f91c48982883b58ce4c92dbd662725b2 (patch) | |
tree | 01d5f5cd851ac9df087ebf0ca950843ea709d73b /main/src/addins | |
parent | 02300ebd702a8b1b85a235420004e9a26c435670 (diff) |
[CodeIssuePad] Show actions immediately if there is only one issue to choose from.
Diffstat (limited to 'main/src/addins')
-rw-r--r-- | main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeIssuePad.cs | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeIssuePad.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeIssuePad.cs index 7ca89f658d..26f438f77e 100644 --- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeIssuePad.cs +++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeIssuePad.cs @@ -468,20 +468,24 @@ namespace MonoDevelop.CodeIssues var groups = possibleFixes.Take (BatchChoiceCount).ToList (); if (!groups.Any ()) return; - - var menu = new Menu (); - foreach (var g in groups) { - menu.Items.Add (CreateIssueMenuItem (g)); + + if (groups.Count == 1) { + CreateIssueMenu (groups.First ()).Popup (view, x, y); + } else { + var menu = new Menu (); + foreach (var g in groups) { + var menuItem = new MenuItem (g.First ().ProviderTitle); + menuItem.SubMenu = CreateIssueMenu (g); + menu.Items.Add (menuItem); + } + menu.Popup (view, x, y); } - menu.Popup (view, x, y); } - MenuItem CreateIssueMenuItem (IEnumerable<IssueSummary> issues) + Menu CreateIssueMenu (IEnumerable<IssueSummary> issues) { var allIssues = issues as IList<IssueSummary> ?? issues.ToList (); - var issueMenuItem = new MenuItem (allIssues.First ().ProviderTitle); - var issueSubMenu = new Menu (); - issueMenuItem.SubMenu = issueSubMenu; + var issueMenu = new Menu (); var actionGroups = allIssues .SelectMany (issue => issue.Actions) @@ -508,9 +512,9 @@ namespace MonoDevelop.CodeIssues } }); }; - issueSubMenu.Items.Add (actionMenuItem); + issueMenu.Items.Add (actionMenuItem); } - return issueMenuItem; + return issueMenu; } } |