|
30 | 30 | <RowDefinition Height="10" /> |
31 | 31 | <RowDefinition Height="*" /> |
32 | 32 | <RowDefinition Height="10" /> |
33 | | - <RowDefinition Height="Auto" /> |
| 33 | + <RowDefinition Height="Auto" /> |
| 34 | + <RowDefinition Height="10" /> |
| 35 | + <RowDefinition Height="Auto" /> |
34 | 36 | <RowDefinition Height="Auto" /> |
35 | 37 | </Grid.RowDefinitions> |
36 | 38 | <!-- Row 0: Header + Refresh + Search --> |
|
213 | 215 | <KeyBinding Command="{Binding DeleteEntryCommand}" Key="Delete" /> |
214 | 216 | </controls:MultiSelectDataGrid.InputBindings> |
215 | 217 | </controls:MultiSelectDataGrid> |
216 | | - <!-- Row 4: Status message + Add button --> |
217 | | - <Grid Grid.Column="0" Grid.Row="4"> |
| 218 | + <!-- Row 4: Status message --> |
| 219 | + <WrapPanel Grid.Row="4" |
| 220 | + Orientation="Horizontal" |
| 221 | + VerticalAlignment="Center" |
| 222 | + HorizontalAlignment="Left"> |
| 223 | + <networkManager:LoadingIndicator IsActive="True" |
| 224 | + Style="{DynamicResource ResourceKey=LoadingIndicatorPulseStyle}" |
| 225 | + Visibility="{Binding Path=IsRefreshing, Converter={StaticResource ResourceKey=BooleanToVisibilityCollapsedConverter}}" |
| 226 | + Width="24" Height="24" |
| 227 | + SpeedRatio="1" |
| 228 | + Margin="0,0,10,0" /> |
| 229 | + <TextBlock Style="{StaticResource ResourceKey=AccentTextBlock}" |
| 230 | + Visibility="{Binding Path=IsStatusMessageDisplayed, Converter={StaticResource ResourceKey=BooleanToVisibilityCollapsedConverter}}" |
| 231 | + Text="{Binding Path=StatusMessage}" |
| 232 | + VerticalAlignment="Center" /> |
| 233 | + </WrapPanel> |
| 234 | + <!-- Row 6: Open hosts file button (left) + Add entry button (right) --> |
| 235 | + <Grid Grid.Row="6"> |
218 | 236 | <Grid.ColumnDefinitions> |
219 | | - <ColumnDefinition Width="*" /> |
220 | | - <ColumnDefinition Width="10" /> |
221 | 237 | <ColumnDefinition Width="Auto" /> |
| 238 | + <ColumnDefinition Width="10" /> |
| 239 | + <ColumnDefinition Width="*" /> |
222 | 240 | </Grid.ColumnDefinitions> |
223 | | - <WrapPanel Grid.Column="0" Grid.Row="0" |
| 241 | + <WrapPanel Grid.Column="0" |
224 | 242 | Orientation="Horizontal" |
225 | | - VerticalAlignment="Bottom" |
| 243 | + VerticalAlignment="Center" |
226 | 244 | HorizontalAlignment="Left"> |
227 | | - <networkManager:LoadingIndicator IsActive="True" |
228 | | - Style="{DynamicResource ResourceKey=LoadingIndicatorPulseStyle}" |
229 | | - Visibility="{Binding Path=IsRefreshing, Converter={StaticResource ResourceKey=BooleanToVisibilityCollapsedConverter}}" |
230 | | - Width="24" Height="24" |
231 | | - SpeedRatio="1" |
232 | | - Margin="0,0,10,0" /> |
233 | | - <TextBlock Style="{StaticResource ResourceKey=AccentTextBlock}" |
234 | | - Visibility="{Binding Path=IsStatusMessageDisplayed, Converter={StaticResource ResourceKey=BooleanToVisibilityCollapsedConverter}}" |
235 | | - Text="{Binding Path=StatusMessage}" |
236 | | - VerticalAlignment="Center" /> |
| 245 | + <Button Command="{Binding OpenHostsFileCommand}" Style="{StaticResource ImageWithTextButton}"> |
| 246 | + <Grid> |
| 247 | + <Grid.ColumnDefinitions> |
| 248 | + <ColumnDefinition Width="Auto" /> |
| 249 | + <ColumnDefinition Width="*" /> |
| 250 | + </Grid.ColumnDefinitions> |
| 251 | + <Rectangle Style="{StaticResource ButtonWithImageRectangle}"> |
| 252 | + <Rectangle.OpacityMask> |
| 253 | + <VisualBrush Stretch="Uniform" Visual="{iconPacks:Material Kind=FileEditOutline}" /> |
| 254 | + </Rectangle.OpacityMask> |
| 255 | + </Rectangle> |
| 256 | + <TextBlock Grid.Column="1" |
| 257 | + Text="{x:Static localization:Strings.OpenHostsFile}" |
| 258 | + Style="{StaticResource ButtonWithImageTextBlock}" /> |
| 259 | + </Grid> |
| 260 | + </Button> |
237 | 261 | </WrapPanel> |
238 | | - <WrapPanel Grid.Column="2" Grid.Row="0" |
239 | | - Orientation="Horizontal" |
| 262 | + <WrapPanel Grid.Column="2" |
| 263 | + Orientation="Horizontal" |
240 | 264 | VerticalAlignment="Center" |
241 | 265 | HorizontalAlignment="Right"> |
242 | 266 | <Button Command="{Binding AddEntryCommand}" Style="{StaticResource ImageWithTextButton}"> |
|
250 | 274 | <VisualBrush Stretch="Uniform" Visual="{iconPacks:Material Kind=Plus}" /> |
251 | 275 | </Rectangle.OpacityMask> |
252 | 276 | </Rectangle> |
253 | | - <TextBlock Grid.Column="1" Text="{x:Static localization:Strings.AddEntryDots}" |
| 277 | + <TextBlock Grid.Column="1" Text="{x:Static localization:Strings.AddEntryDots}" |
254 | 278 | Style="{StaticResource ButtonWithImageTextBlock}" /> |
255 | 279 | </Grid> |
256 | 280 | </Button> |
257 | 281 | </WrapPanel> |
258 | | - </Grid> |
259 | | - <!-- Row 5: Admin note --> |
260 | | - <Grid Grid.Column="0" Grid.Row="5" |
| 282 | + </Grid> |
| 283 | + <!-- Row 7: Admin note --> |
| 284 | + <Grid Grid.Column="0" Grid.Row="7" |
261 | 285 | Background="{DynamicResource MahApps.Brushes.Gray10}" |
262 | 286 | Visibility="{Binding Source={x:Static settings:ConfigurationManager.Current}, Path=IsAdmin, Converter={StaticResource BooleanReverseToVisibilityCollapsedConverter}}" |
263 | 287 | Margin="0,10,0,0"> |
|
0 commit comments