Skip to content

Commit ab9449e

Browse files
author
Sébastien Geiser
committed
Better column resizing and persisting
1 parent d2b6017 commit ab9449e

File tree

3 files changed

+33
-39
lines changed

3 files changed

+33
-39
lines changed

RegexDialog/RegExToolDialog.xaml

Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,8 @@
5151
</Style>
5252

5353
</Window.Resources>
54-
<Grid Background="WhiteSmoke" Name="MainGrid">
55-
<Grid.RowDefinitions>
56-
<RowDefinition Height="Auto" />
57-
<RowDefinition Height="Auto" />
58-
<RowDefinition Height="Auto" />
59-
<RowDefinition Height="*" />
60-
</Grid.RowDefinitions>
61-
<Menu BorderBrush="Silver" BorderThickness="0,0,0,1">
54+
<DockPanel Background="WhiteSmoke" >
55+
<Menu DockPanel.Dock="Top" BorderBrush="Silver" BorderThickness="0,0,0,1">
6256
<MenuItem Header="_File" >
6357
<MenuItem Header="_New" Click="New_MenuItem_Click" >
6458
<MenuItem.Icon>
@@ -143,8 +137,8 @@
143137
<MenuItem Header="Clear Directory Filter History" Click="ClearDirectoryFilterHistory_Click" />
144138
</MenuItem>
145139
</Menu>
146-
<Border Grid.Row="1" >
147-
<WrapPanel Grid.Row="1">
140+
<Border DockPanel.Dock="Top">
141+
<WrapPanel >
148142
<WrapPanel.Resources>
149143
<Style BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" TargetType="Button" />
150144
<Style BasedOn="{StaticResource {x:Static ToolBar.ToggleButtonStyleKey}}" TargetType="ToggleButton" />
@@ -221,13 +215,13 @@
221215
</ToggleButton>
222216
</WrapPanel>
223217
</Border>
224-
<Grid Grid.Row="3" Margin="0,5,0,0">
218+
<Grid Margin="0,5,0,0">
225219
<Grid.ColumnDefinitions>
226-
<ColumnDefinition x:Name="FirstColumn" Width="*" />
220+
<ColumnDefinition x:Name="FirstColumn" />
227221
<ColumnDefinition Width="5" />
228-
<ColumnDefinition x:Name="SecondColumn" Width="*" />
222+
<ColumnDefinition x:Name="SecondColumn" />
229223
<ColumnDefinition Width="5" />
230-
<ColumnDefinition Width="*" />
224+
<ColumnDefinition x:Name="ThirdColumn"/>
231225
</Grid.ColumnDefinitions>
232226
<Grid>
233227
<Grid.RowDefinitions>
@@ -394,16 +388,16 @@
394388
</Border>
395389
</Grid>
396390
</Grid>
397-
<GridSplitter Grid.Column="1"
398-
VerticalAlignment="Stretch"
391+
<GridSplitter Grid.Column="1"
392+
ResizeBehavior="PreviousAndNext"
393+
VerticalAlignment="Stretch"
399394
HorizontalAlignment="Stretch"/>
400-
<Grid Grid.Column="2">
401-
<Grid.RowDefinitions>
402-
<RowDefinition Height="Auto" />
403-
<RowDefinition Height="*" />
404-
<RowDefinition Height="Auto" />
405-
</Grid.RowDefinitions>
406-
<Label Name="MatchesResultLabel" Target="{Binding ElementName=MatchResultsTreeView}" >Matches [Index,Length]</Label>
395+
<DockPanel Grid.Column="2">
396+
<Label DockPanel.Dock="Top" Name="MatchesResultLabel" Target="{Binding ElementName=MatchResultsTreeView}" >Matches [Index,Length]</Label>
397+
<Button DockPanel.Dock="Bottom"
398+
Content="Restore Last Search _Selection"
399+
Visibility="{Binding TextSourceOn, Converter={converters:ChainingConverter Converter1={converters:EnumBooleanConverter}, Converter2={converters:CustomBoolToVisibilityConverter}, Converter1Parameter='CurrentSelection'}}"
400+
Click="RestoreLastMachesSelectionButton_Click" />
407401
<Border Grid.Row="1" BorderBrush="Gray" BorderThickness="0">
408402
<TreeView Name="MatchResultsTreeView"
409403
VirtualizingPanel.IsVirtualizing="True"
@@ -499,13 +493,10 @@
499493
</TreeView.Resources>
500494
</TreeView>
501495
</Border>
502-
<Button Grid.Row="2"
503-
Content="Restore Last Search _Selection"
504-
Visibility="{Binding TextSourceOn, Converter={converters:ChainingConverter Converter1={converters:EnumBooleanConverter}, Converter2={converters:CustomBoolToVisibilityConverter}, Converter1Parameter='CurrentSelection'}}"
505-
Click="RestoreLastMachesSelectionButton_Click" />
506-
</Grid>
507-
<GridSplitter Grid.Column="3"
508-
VerticalAlignment="Stretch"
496+
</DockPanel>
497+
<GridSplitter Grid.Column="3"
498+
ResizeBehavior="PreviousAndNext"
499+
VerticalAlignment="Stretch"
509500
HorizontalAlignment="Stretch"/>
510501
<TabControl
511502
Name="OptionTabControl"
@@ -665,5 +656,5 @@
665656
</TabItem>
666657
</TabControl>
667658
</Grid>
668-
</Grid>
659+
</DockPanel>
669660
</Window>

RegexDialog/RegExToolDialog.xaml.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,9 @@ private void Init()
208208

209209
WindowState = Config.Instance.DialogMaximized ? WindowState.Maximized : WindowState.Normal;
210210

211-
FirstColumn.Width = new GridLength(Config.Instance.GridFirstColumnWidth ?? FirstColumn.Width.Value);
212-
SecondColumn.Width = new GridLength(Config.Instance.GridSecondColumnWidth ?? SecondColumn.Width.Value);
211+
FirstColumn.Width = Config.Instance.GridFirstColumnWidth;
212+
SecondColumn.Width = Config.Instance.GridSecondColumnWidth;
213+
ThirdColumn.Width = Config.Instance.GridThirdColumnWidth;
213214
RegexEditorRow.Height = new GridLength(Config.Instance.GridRegexEditorRowHeight ?? RegexEditorRow.Height.Value);
214215
RegexLanguageElementFirstRow.Height = new GridLength(Config.Instance.GridRegexLanguageElementsFirstRowHeight ?? RegexLanguageElementFirstRow.Height.Value);
215216

@@ -1121,8 +1122,9 @@ private void SaveWindowPosition()
11211122
{
11221123
try
11231124
{
1124-
Config.Instance.GridFirstColumnWidth = FirstColumn.ActualWidth;
1125-
Config.Instance.GridSecondColumnWidth = SecondColumn.ActualWidth;
1125+
Config.Instance.GridFirstColumnWidth = FirstColumn.Width;
1126+
Config.Instance.GridSecondColumnWidth = SecondColumn.Width;
1127+
Config.Instance.GridThirdColumnWidth = ThirdColumn.Width;
11261128
Config.Instance.GridRegexEditorRowHeight = RegexEditorRow.ActualHeight;
11271129
Config.Instance.GridRegexLanguageElementsFirstRowHeight = RegexLanguageElementFirstRow.ActualHeight;
11281130

@@ -1147,8 +1149,8 @@ private void SetMaxSizes()
11471149
RegexLanguageElementFirstRow.MaxHeight = Root.ActualHeight - RegexLanguagesElementsTreeView.TransformToAncestor(Root).Transform(new Point(0, 0)).Y - 5 - 40;
11481150
if (OptionTabControl.SelectedItem.Equals(ReplaceTabItem))
11491151
ReplaceLanguageElementFirstRow.MaxHeight = Root.ActualHeight - ReplaceLanguageElementsListView.TransformToAncestor(Root).Transform(new Point(0, 0)).Y - 5 - 40;
1150-
FirstColumn.MaxWidth = Math.Max(Root.ActualWidth - 10 - 100, 0);
1151-
SecondColumn.MaxWidth = Math.Max(Root.ActualWidth - Math.Min(FirstColumn.ActualWidth, Root.ActualWidth) - 10 - 40, 0);
1152+
//FirstColumn.MaxWidth = Math.Max(Root.ActualWidth - 10 - 100, 0);
1153+
//SecondColumn.MaxWidth = Math.Max(Root.ActualWidth - Math.Min(FirstColumn.ActualWidth, Root.ActualWidth) - 10 - 40, 0);
11521154
}
11531155
catch { }
11541156
}

RegexDialog/Utils/Config.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,9 @@ private void Init()
9797
public double? DialogHeight { get; set; } = 400;
9898
public bool DialogMaximized { get; set; } = false;
9999

100-
public double? GridFirstColumnWidth { get; set; } = 250;
101-
public double? GridSecondColumnWidth { get; set; } = 250;
100+
public GridLength GridFirstColumnWidth { get; set; } = new GridLength(1, GridUnitType.Star);
101+
public GridLength GridSecondColumnWidth { get; set; } = new GridLength(1, GridUnitType.Star);
102+
public GridLength GridThirdColumnWidth { get; set; } = new GridLength(1, GridUnitType.Star);
102103
public double? GridRegexEditorRowHeight { get; set; } = 150;
103104
public double? GridRegexLanguageElementsFirstRowHeight { get; set; } = 300;
104105

0 commit comments

Comments
 (0)