Skip to content

Commit

Permalink
! Changed to select all text in member filter text box when member fi…
Browse files Browse the repository at this point in the history
…lter menu was opened
  • Loading branch information
wmjordan committed Dec 17, 2018
1 parent 596866c commit 1999278
Showing 1 changed file with 19 additions and 16 deletions.
35 changes: 19 additions & 16 deletions Codist/Controls/MemberFilterBox.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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) {
Expand Down Expand Up @@ -178,37 +180,37 @@ 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:
case KnownImageIds.InterfacePublic:
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:
Expand All @@ -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:
Expand Down Expand Up @@ -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");
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit 1999278

Please sign in to comment.