Skip to content

Commit 65d569e

Browse files
committed
fix enter key handling for each datagrid, add keyup/down for updates search
1 parent 0a91658 commit 65d569e

File tree

2 files changed

+67
-16
lines changed

2 files changed

+67
-16
lines changed

UnityLauncherPro/MainWindow.xaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
xmlns:local="clr-namespace:UnityLauncherPro"
77
xmlns:System="clr-namespace:System;assembly=mscorlib" x:Class="UnityLauncherPro.MainWindow"
88
mc:Ignorable="d"
9-
Title="UnityLauncherPro" Height="650" Width="600" WindowStartupLocation="CenterScreen" Background="{DynamicResource DarkestBackground}" MinWidth="600" MinHeight="650" AllowsTransparency="True" WindowStyle="None" Margin="0" KeyDown="OnWindowKeyDown" Closing="Window_Closing" SizeChanged="Window_SizeChanged" PreviewKeyDown="Window_PreviewKeyDown" >
9+
Title="UnityLauncherPro" Height="650" Width="600" WindowStartupLocation="CenterScreen" Background="{DynamicResource DarkestBackground}" MinWidth="600" MinHeight="650" AllowsTransparency="True" WindowStyle="None" Margin="0" KeyDown="OnWindowKeyDown" Closing="Window_Closing" SizeChanged="Window_SizeChanged" >
1010

1111
<Window.Resources>
1212

@@ -419,7 +419,7 @@
419419

420420
<Button Style="{StaticResource CustomButton}" ToolTip="Refresh installations (F5)" x:Name="btnRefreshUnityList" Content="" Height="22" Width="22" HorizontalAlignment="Right" VerticalAlignment="Top" FontSize="16" Background="#FF3F3F46" Foreground="#FFC1C1C1" Margin="0,4,3,0" Padding="1,-2,1,1" BorderBrush="{x:Null}"/>
421421

422-
<DataGrid x:Name="dataGridUnitys" SelectionMode="Single" Margin="4,30,2,42" Background="{x:Null}" BorderBrush="{x:Null}" ColumnHeaderStyle="{StaticResource HeaderStyle}" Padding="0" HorizontalScrollBarVisibility="Disabled" HeadersVisibility="Column" Foreground="#FFD8D8D8" HorizontalGridLinesBrush="#4C000000" VerticalGridLinesBrush="#19000000" AutoGenerateColumns="False">
422+
<DataGrid x:Name="dataGridUnitys" SelectionMode="Single" Margin="4,30,2,42" Background="{x:Null}" BorderBrush="{x:Null}" ColumnHeaderStyle="{StaticResource HeaderStyle}" Padding="0" HorizontalScrollBarVisibility="Disabled" HeadersVisibility="Column" Foreground="#FFD8D8D8" HorizontalGridLinesBrush="#4C000000" VerticalGridLinesBrush="#19000000" AutoGenerateColumns="False" PreviewKeyDown="DataGridUnitys_PreviewKeyDown">
423423

424424
<DataGrid.Columns>
425425
<DataGridTextColumn Binding="{Binding Version}" ClipboardContentBinding="{x:Null}" Header="Version" IsReadOnly="True" MinWidth="123"/>
@@ -473,7 +473,7 @@
473473
<!-- search box -->
474474
<Grid Background="{DynamicResource TextBoxBackground}" HorizontalAlignment="Left" VerticalAlignment="Top" Width="222" Margin="6,5,0,0" Height="20" >
475475
<TextBlock Margin="3,2" MinWidth="100" Text="Search" Foreground="#7F919191" Visibility="{Binding Text.IsEmpty, Converter={StaticResource MyBoolToVisibilityConverter}, ElementName=txtSearchBoxUpdates}" Height="24" />
476-
<TextBox MinWidth="100" CaretBrush="#FFE2E2E2" x:Name="txtSearchBoxUpdates" Background="Transparent" BorderBrush="{x:Null}" Foreground="#FFC7C7C7" SelectionBrush="#FF003966" BorderThickness="0" Margin="2,2,0,0" UndoLimit="64" />
476+
<TextBox MinWidth="100" CaretBrush="#FFE2E2E2" x:Name="txtSearchBoxUpdates" Background="Transparent" BorderBrush="{x:Null}" Foreground="#FFC7C7C7" SelectionBrush="#FF003966" BorderThickness="0" Margin="2,2,0,0" UndoLimit="64" PreviewKeyDown="TxtSearchBoxUpdates_PreviewKeyDown" />
477477
<Button x:Name="btnClearUpdatesSearch" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" BorderThickness="0" HorizontalAlignment="Right" VerticalAlignment="Top" Height="23" Width="23" Background="Transparent" Padding="0,2" Visibility="Visible" BorderBrush="{x:Null}" Click="OnClearUpdateSearchClick">
478478
<TextBlock Text="" FontSize="8" Foreground="#FFC3C3C3" Padding="5,3,4,4" HorizontalAlignment="Center">
479479
<TextBlock.Style>
@@ -495,7 +495,7 @@
495495

496496
<Button Style="{StaticResource CustomButton}" ToolTip="Refresh installations (F5)" x:Name="btnRefreshUpdatesList" Content="" Height="22" Width="22" HorizontalAlignment="Right" VerticalAlignment="Top" FontSize="16" Background="#FF3F3F46" Foreground="#FFC1C1C1" Margin="0,4,3,0" Padding="1,-2,1,1" BorderBrush="{x:Null}" Click="OnGetUnityUpdatesClick"/>
497497

498-
<DataGrid x:Name="dataGridUpdates" SelectionMode="Single" Margin="4,30,2,42" Background="{x:Null}" BorderBrush="{x:Null}" ColumnHeaderStyle="{StaticResource HeaderStyle}" Padding="0" HorizontalScrollBarVisibility="Disabled" HeadersVisibility="Column" Foreground="#FFD8D8D8" HorizontalGridLinesBrush="#4C000000" VerticalGridLinesBrush="#19000000" AutoGenerateColumns="False">
498+
<DataGrid x:Name="dataGridUpdates" SelectionMode="Single" Margin="4,30,2,42" Background="{x:Null}" BorderBrush="{x:Null}" ColumnHeaderStyle="{StaticResource HeaderStyle}" Padding="0" HorizontalScrollBarVisibility="Disabled" HeadersVisibility="Column" Foreground="#FFD8D8D8" HorizontalGridLinesBrush="#4C000000" VerticalGridLinesBrush="#19000000" AutoGenerateColumns="False" PreviewKeyDown="DataGridUpdates_PreviewKeyDown">
499499

500500
<DataGrid.Columns>
501501
<DataGridTextColumn Binding="{Binding ReleaseDate, StringFormat=\{0:dd/MM/yyyy\}}" ClipboardContentBinding="{x:Null}" Header="ReleaseDate" IsReadOnly="True"/>

UnityLauncherPro/MainWindow.xaml.cs

Lines changed: 63 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -396,19 +396,31 @@ private void BtnLaunchProject_Click(object sender, RoutedEventArgs e)
396396
{
397397
Tools.LaunchProject(GetSelectedProject());
398398
}
399-
399+
/*
400400
private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
401401
{
402402
// override Enter for datagrid
403-
if (e.Key == Key.Return && e.KeyboardDevice.Modifiers == ModifierKeys.None)
403+
switch (tabControl.SelectedIndex)
404404
{
405-
e.Handled = true;
406-
Tools.LaunchProject(GetSelectedProject());
407-
return;
405+
case 0: // projects
406+
407+
//Tools.LaunchProject(GetSelectedProject());
408+
break;
409+
case 1: // unitys
410+
break;
411+
case 2: // updates
412+
break;
413+
case 3: // tools
414+
break;
415+
case 4: // settings
416+
break;
417+
default:
418+
break;
408419
}
409420
421+
410422
base.OnKeyDown(e);
411-
}
423+
}*/
412424

413425
private void BtnExplore_Click(object sender, RoutedEventArgs e)
414426
{
@@ -445,12 +457,6 @@ private void BtnUpgradeProject_Click(object sender, RoutedEventArgs e)
445457
Tools.DisplayUpgradeDialog(proj, this);
446458
}
447459

448-
// need to manually move into next/prev rows? https://stackoverflow.com/a/11652175/5452781
449-
private void GridRecent_PreviewKeyDown(object sender, KeyEventArgs e)
450-
{
451-
//Tools.HandleDataGridScrollKeys(sender, e);
452-
}
453-
454460
private void GridRecent_Loaded(object sender, RoutedEventArgs e)
455461
{
456462
gridRecent.Focus();
@@ -538,6 +544,51 @@ private void BtnRemoveInstallationFolder_Click(object sender, RoutedEventArgs e)
538544
UpdateUnityInstallationsList();
539545
}
540546
}
547+
548+
// need to manually move into next/prev rows? https://stackoverflow.com/a/11652175/5452781
549+
private void GridRecent_PreviewKeyDown(object sender, KeyEventArgs e)
550+
{
551+
if (e.Key == Key.Return)
552+
{
553+
e.Handled = true;
554+
Tools.LaunchProject(GetSelectedProject());
555+
}
556+
}
557+
558+
private void DataGridUnitys_PreviewKeyDown(object sender, KeyEventArgs e)
559+
{
560+
if (e.Key == Key.Return)
561+
{
562+
e.Handled = true;
563+
// TODO launchunity
564+
}
565+
}
566+
567+
private void DataGridUpdates_PreviewKeyDown(object sender, KeyEventArgs e)
568+
{
569+
if (e.Key == Key.Return)
570+
{
571+
e.Handled = true;
572+
// TODO open release page?
573+
}
574+
}
575+
576+
private void TxtSearchBoxUpdates_PreviewKeyDown(object sender, KeyEventArgs e)
577+
{
578+
switch (e.Key)
579+
{
580+
case Key.Up:
581+
case Key.Down:
582+
//e.Handled = true; // if enabled, we enter to first row initially
583+
dataGridUpdates.Focus();
584+
dataGridUpdates.SelectedIndex = 0;
585+
DataGridRow row = (DataGridRow)dataGridUpdates.ItemContainerGenerator.ContainerFromIndex(0);
586+
row.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
587+
break;
588+
default:
589+
break;
590+
}
591+
}
541592
} // class
542593
} //namespace
543594

0 commit comments

Comments
 (0)