diff options
author | therzok <marius.ungureanu@xamarin.com> | 2016-10-04 18:47:26 +0300 |
---|---|---|
committer | therzok <marius.ungureanu@xamarin.com> | 2016-10-04 18:47:26 +0300 |
commit | c44733b162101e0b8c3ab1daa228d38ceab6ab22 (patch) | |
tree | 75514ad09d59ce60748f3bfa66e851870332f5c6 /main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar | |
parent | d67e17abd71cea90c3ced030f5ebd78c05993372 (diff) |
Revert "Revert "[Ide] Optimize GetRowMarkup allocations.""
This reverts commit 8188ad4b06058d527f709ee29f813e969ae2c78f.
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupWindow.cs | 20 | ||||
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchResult.cs | 7 |
2 files changed, 20 insertions, 7 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupWindow.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupWindow.cs index e065ada657..ee72a25f89 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupWindow.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupWindow.cs @@ -1011,11 +1011,23 @@ namespace MonoDevelop.Components.MainToolbar { var resultFgColor = selected ? selectedResultTextColor : resultTextColor; var descFgColor = selected ? selectedResultDescriptionTextColor : resultDescriptionTextColor; - string txt = "<span foreground=\"" + resultFgColor + "\">" + result.GetMarkupText(selected) +"</span>"; + string text = result.GetMarkupText (selected); string desc = result.GetDescriptionMarkupText (); - if (!string.IsNullOrEmpty (desc)) - txt += "<span foreground=\"" + descFgColor + "\" size=\"small\">\n" + desc + "</span>"; - return txt; + + var sb = new System.Text.StringBuilder (text.Length + resultFgColor.Length + desc.Length + descFgColor.Length + 68); + sb.Append ("<span foreground=\""); + sb.Append (resultFgColor); + sb.Append ("\">"); + sb.Append (text); + sb.Append ("</span>"); + if (!string.IsNullOrEmpty (desc)) { + sb.Append ("<span foreground=\""); + sb.Append (descFgColor); + sb.Append ("\" size=\"small\">\n"); + sb.Append (desc); + sb.Append ("</span>"); + } + return sb.ToString (); } } } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchResult.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchResult.cs index 947de20ce6..6c74611fb3 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchResult.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchResult.cs @@ -99,12 +99,13 @@ namespace MonoDevelop.Components.MainToolbar this.MatchedString = matchedString; Rank = rank; } - + + static string selectedResultMatchTextColor = Styles.ColorGetHex (Styles.GlobalSearch.SelectedResultMatchTextColor); + static string resultMatchTextColor = Styles.ColorGetHex (Styles.GlobalSearch.ResultMatchTextColor); protected static string HighlightMatch (string text, string toMatch, bool selected) { var lane = StringMatcher.GetMatcher (toMatch, true).GetMatch (text);
- var matchColor = selected ? Styles.GlobalSearch.SelectedResultMatchTextColor : Styles.GlobalSearch.ResultMatchTextColor; - var matchHexColor = Styles.ColorGetHex (matchColor); + var matchHexColor = selected ? selectedResultMatchTextColor : resultMatchTextColor; StringBuilder result = new StringBuilder (); if (lane != null) { int lastPos = 0; |