Skip to content

Commit 47118fb

Browse files
author
Sébastien Geiser
committed
Navigation
1 parent 6d2486d commit 47118fb

File tree

2 files changed

+52
-25
lines changed

2 files changed

+52
-25
lines changed

RegexDialog/RegExToolDialog.xaml

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -564,10 +564,11 @@
564564
<Grid.RowDefinitions>
565565
<RowDefinition Height="Auto" />
566566
</Grid.RowDefinitions>
567-
<TextBlock Text="Find..."
568-
VerticalAlignment="Center"
569-
Margin="2,0"
570-
Foreground="Gray" />
567+
<Label Content="Find..."
568+
VerticalAlignment="Center"
569+
Margin="2,0"
570+
Padding="0"
571+
Foreground="Gray" />
571572
<TextBox x:Name="FindLanguageElementTextBox"
572573
TextChanged="FindLanguageElementTextBox_TextChanged"
573574
PreviewKeyDown="FindLanguageElementTextBox_PreviewKeyDown">
@@ -610,10 +611,11 @@
610611
</Button>
611612
</Grid>
612613
<TreeView Name="RegexLanguagesElementsTreeView"
613-
SelectedItemChanged="RegexLanguagesElementsTreeView_SelectedItemChanged">
614+
SelectedItemChanged="RegexLanguagesElementsTreeView_SelectedItemChanged"
615+
KeyDown="RegexLanguagesElementsTreeView_KeyDown">
614616
<TreeView.Resources>
615617
<Style TargetType="{x:Type TreeViewItem}">
616-
<Setter Property="IsExpanded" Value="{Binding IsExpanded}" />
618+
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
617619
<Setter Property="Visibility" Value="{Binding Visible, Converter={converters:CustomBoolToVisibilityConverter}}" />
618620
</Style>
619621
<HierarchicalDataTemplate DataType="{x:Type local:RegexLanguageElementGroup}"
@@ -625,14 +627,21 @@
625627
</StackPanel>
626628
</HierarchicalDataTemplate>
627629
<HierarchicalDataTemplate DataType="{x:Type local:RegexLanguageElement}">
628-
<StackPanel Background="Transparent" Orientation="Horizontal" ToolTip="{Binding Description}" MouseDown="RegexLanguageElement_StackPanel_MouseDown" MouseUp="RegexLanguageElement_StackPanel_MouseUp">
629-
<Image Source="{StaticResource RegexLanguageElementPicture}" Width="16" Height="16" Margin="3,0"/>
630+
<StackPanel Background="Transparent"
631+
Orientation="Horizontal"
632+
ToolTip="{Binding Description}"
633+
MouseDown="RegexLanguageElement_StackPanel_MouseDown"
634+
MouseUp="RegexLanguageElement_StackPanel_MouseUp">
635+
<Image Source="{StaticResource RegexLanguageElementPicture}"
636+
Width="16" Height="16"
637+
Margin="3,0"/>
630638
<local:SearchableTextControl
631639
SearchText="{Binding Text, ElementName=FindLanguageElementTextBox}"
632640
IsHighlight="True"
633641
IsMatchCase="False"
634642
IsMatchAccents="False"
635643
Focusable="False"
644+
IsHitTestVisible="False"
636645
Text="{Binding Name}"/>
637646
<TextBlock Text="{Binding Value}" Foreground="Blue"/>
638647
</StackPanel>
@@ -691,7 +700,7 @@
691700
ScrollViewer.VerticalScrollBarVisibility="Auto"/>
692701
</Grid>
693702
</TabItem>
694-
<TabItem x:Name="RegOptionsTabItem" Header="Regex _Options" >
703+
<TabItem x:Name="RegOptionsTabItem" Header="Regex Op_tions" >
695704
<ItemsControl Name="icRegexOptions">
696705
<ItemsControl.ItemTemplate>
697706
<DataTemplate>

RegexDialog/RegExToolDialog.xaml.cs

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1111,23 +1111,11 @@ private void RegexLanguageElement_StackPanel_MouseDown(object sender, MouseButto
11111111
{
11121112
try
11131113
{
1114-
if (e.LeftButton == MouseButtonState.Pressed && e.ClickCount >= 2 && sender is FrameworkElement)
1114+
if (e.LeftButton == MouseButtonState.Pressed && e.ClickCount >= 2
1115+
&& sender is FrameworkElement fe
1116+
&& fe.DataContext is RegexLanguageElement regexLanguageElement)
11151117
{
1116-
RegexLanguageElement rle = (RegexLanguageElement)((FrameworkElement)sender).DataContext;
1117-
1118-
int moveCaret = 0;
1119-
1120-
if (RegexEditor.SelectionLength > 0)
1121-
{
1122-
RegexEditor.Document.Remove(RegexEditor.SelectionStart, RegexEditor.SelectionLength);
1123-
moveCaret = rle.Value.Length;
1124-
}
1125-
1126-
RegexEditor.Document.Insert(RegexEditor.TextArea.Caret.Offset, rle.Value);
1127-
1128-
RegexEditor.TextArea.Caret.Offset += moveCaret;
1129-
RegexEditor.SelectionStart = RegexEditor.TextArea.Caret.Offset;
1130-
RegexEditor.SelectionLength = 0;
1118+
PrintRegexLanguageElement(regexLanguageElement);
11311119

11321120
mustSelectEditor = true;
11331121

@@ -1138,6 +1126,35 @@ private void RegexLanguageElement_StackPanel_MouseDown(object sender, MouseButto
11381126
{ }
11391127
}
11401128

1129+
private void RegexLanguagesElementsTreeView_KeyDown(object sender, KeyEventArgs e)
1130+
{
1131+
if(e.Key == Key.Enter
1132+
&& RegexLanguagesElementsTreeView.SelectedValue is RegexLanguageElement regexLanguageElement)
1133+
{
1134+
PrintRegexLanguageElement(regexLanguageElement);
1135+
RegexEditor.Focus();
1136+
e.Handled = true;
1137+
}
1138+
}
1139+
1140+
private void PrintRegexLanguageElement(RegexLanguageElement regexLanguageElement)
1141+
{
1142+
int moveCaret = 0;
1143+
1144+
if (RegexEditor.SelectionLength > 0)
1145+
{
1146+
RegexEditor.Document.Remove(RegexEditor.SelectionStart, RegexEditor.SelectionLength);
1147+
moveCaret = regexLanguageElement.Value.Length;
1148+
}
1149+
1150+
RegexEditor.Document.Insert(RegexEditor.TextArea.Caret.Offset, regexLanguageElement.Value);
1151+
1152+
RegexEditor.TextArea.Caret.Offset += moveCaret;
1153+
RegexEditor.SelectionStart = RegexEditor.TextArea.Caret.Offset;
1154+
RegexEditor.SelectionLength = 0;
1155+
1156+
}
1157+
11411158
private void RegexLanguageElement_StackPanel_MouseUp(object sender, MouseButtonEventArgs e)
11421159
{
11431160
if (mustSelectEditor)
@@ -2244,6 +2261,7 @@ private void FindLanguageElementTextBox_TextChanged(object sender, TextChangedEv
22442261
private void ClearFindLangueageElementTextBoxButton_Click(object sender, RoutedEventArgs e)
22452262
{
22462263
FindLanguageElementTextBox.Text = string.Empty;
2264+
FindLanguageElementTextBox.Focus();
22472265
}
22482266

22492267
private void FindLanguageElementTextBox_PreviewKeyDown(object sender, KeyEventArgs e)

0 commit comments

Comments
 (0)