From 1999278b8ddb1b100712d5dda3efca128283762d Mon Sep 17 00:00:00 2001 From: WMJ Date: Mon, 17 Dec 2018 20:28:33 +0800 Subject: [PATCH] ! Changed to select all text in member filter text box when member filter menu was opened --- Codist/Controls/MemberFilterBox.cs | 35 ++++++++++++++++-------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/Codist/Controls/MemberFilterBox.cs b/Codist/Controls/MemberFilterBox.cs index a00e1d1d..894d5978 100644 --- a/Codist/Controls/MemberFilterBox.cs +++ b/Codist/Controls/MemberFilterBox.cs @@ -81,8 +81,13 @@ public MemberFilterBox(ItemCollection items) { }); Children.Add(_FilterButtons = new MemberFilterButtonGroup()); _Items = items; - _FilterButtons.FilterChanged += FilterChanged; - _FilterBox.TextChanged += FilterChanged; + _FilterButtons.FilterChanged += _FilterBox_Changed; + _FilterBox.TextChanged += _FilterBox_Changed; + + void _FilterBox_Changed(object sender, EventArgs e) { + Filter(_FilterBox.Text.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries), _FilterButtons.Filters); + FocusTextBox(); + } } public bool FocusTextBox() { if (_FilterBox.IsVisible) { @@ -96,14 +101,11 @@ public bool FocusTextBox() { void _FilterBox_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) { if (_FilterBox.IsVisible) { _FilterBox.Focus(); + _FilterBox.SelectAll(); _FilterBox.IsVisibleChanged -= _FilterBox_IsVisibleChanged; } } - void FilterChanged(object sender, EventArgs e) { - Filter(_FilterBox.Text.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries), _FilterButtons.Filters); - FocusTextBox(); - } void Filter(string[] keywords, MemberFilterTypes filters) { bool useModifierFilter = filters != MemberFilterTypes.All; if (keywords.Length == 0) { @@ -178,7 +180,6 @@ bool FilterSignature(string text, string[] words) { return words.All(p => text.IndexOf(p, StringComparison.OrdinalIgnoreCase) != -1); } } - internal static bool FilterByImageId(MemberFilterTypes filterTypes, int imageId) { switch (imageId) { case KnownImageIds.ClassPublic: @@ -186,29 +187,30 @@ internal static bool FilterByImageId(MemberFilterTypes filterTypes, int imageId) case KnownImageIds.StructurePublic: case KnownImageIds.EnumerationPublic: case KnownImageIds.DelegatePublic: - return filterTypes.MatchFlags(MemberFilterTypes.Public | MemberFilterTypes.NestedType); + case KnownImageIds.Namespace: + return filterTypes.MatchFlags(MemberFilterTypes.Public | MemberFilterTypes.TypeAndNamespace); case KnownImageIds.ClassPrivate: case KnownImageIds.InterfacePrivate: case KnownImageIds.StructurePrivate: case KnownImageIds.EnumerationPrivate: case KnownImageIds.DelegatePrivate: - return filterTypes.MatchFlags(MemberFilterTypes.Private | MemberFilterTypes.NestedType); + return filterTypes.MatchFlags(MemberFilterTypes.Private | MemberFilterTypes.TypeAndNamespace); case KnownImageIds.ClassProtected: case KnownImageIds.InterfaceProtected: case KnownImageIds.StructureProtected: case KnownImageIds.EnumerationProtected: case KnownImageIds.DelegateProtected: - return filterTypes.MatchFlags(MemberFilterTypes.Protected | MemberFilterTypes.NestedType); + return filterTypes.MatchFlags(MemberFilterTypes.Protected | MemberFilterTypes.TypeAndNamespace); case KnownImageIds.ClassInternal: case KnownImageIds.InterfaceInternal: case KnownImageIds.StructureInternal: case KnownImageIds.EnumerationInternal: case KnownImageIds.DelegateInternal: - return filterTypes.MatchFlags(MemberFilterTypes.Internal | MemberFilterTypes.NestedType); + return filterTypes.MatchFlags(MemberFilterTypes.Internal | MemberFilterTypes.TypeAndNamespace); case KnownImageIds.ClassShortcut: case KnownImageIds.InterfaceShortcut: case KnownImageIds.StructureShortcut: - return filterTypes.MatchFlags(MemberFilterTypes.NestedType); + return filterTypes.MatchFlags(MemberFilterTypes.TypeAndNamespace); case KnownImageIds.MethodPublic: case KnownImageIds.TypePublic: // constructor case KnownImageIds.OperatorPublic: @@ -227,6 +229,7 @@ internal static bool FilterByImageId(MemberFilterTypes filterTypes, int imageId) case KnownImageIds.OperatorPrivate: return filterTypes.MatchFlags(MemberFilterTypes.Private | MemberFilterTypes.Method); case KnownImageIds.DeleteListItem: // deconstructor + case KnownImageIds.ExtensionMethod: return filterTypes.MatchFlags(MemberFilterTypes.Method); case KnownImageIds.FieldPublic: case KnownImageIds.ConstantPublic: @@ -264,7 +267,7 @@ sealed class MemberFilterButtonGroup : UserControl public MemberFilterButtonGroup() { _FieldFilter = CreateButton(KnownImageIds.Field, "Fields and properties"); _MethodFilter = CreateButton(KnownImageIds.Method, "Methods, delegates and events"); - _TypeFilter = CreateButton(KnownImageIds.EntityContainer, "Nested types"); + _TypeFilter = CreateButton(KnownImageIds.EntityContainer, "Types"); _PublicFilter = CreateButton(KnownImageIds.ModulePublic, "Public and protected members"); _PrivateFilter = CreateButton(KnownImageIds.ModulePrivate, "Internal and private members"); @@ -300,7 +303,7 @@ void UpdateFilterValue(object sender, RoutedEventArgs eventArgs) { f |= MemberFilterTypes.Method; } if (_TypeFilter.IsChecked == true) { - f |= MemberFilterTypes.NestedType; + f |= MemberFilterTypes.TypeAndNamespace; } if (f.HasAnyFlag(MemberFilterTypes.AllMembers) == false) { f |= MemberFilterTypes.AllMembers; @@ -346,8 +349,8 @@ enum MemberFilterTypes None, FieldAndProperty = 1, Method = 1 << 1, - NestedType = 1 << 2, - AllMembers = FieldAndProperty | Method | NestedType, + TypeAndNamespace = 1 << 2, + AllMembers = FieldAndProperty | Method | TypeAndNamespace, Public = 1 << 3, Protected = 1 << 4, Internal = 1 << 5,