Skip to content

Commit 0d5a287

Browse files
committed
add ctrl+c to copy project path from grid, and unity path from installed grid, and unity version from updates
1 parent 7390900 commit 0d5a287

File tree

2 files changed

+47
-5
lines changed

2 files changed

+47
-5
lines changed

Diff for: UnityLauncherPro/MainWindow.xaml

+13-5
Original file line numberDiff line numberDiff line change
@@ -6,8 +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" Icon="Images/icon.ico" Activated="Window_Activated" >
10-
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" Icon="Images/icon.ico" Activated="Window_Activated">
1110
<Window.Resources>
1211

1312
<!-- colors for unity missing installatios -->
@@ -268,7 +267,7 @@
268267
<TextBlock Margin="3,2" MinWidth="100" Text="Search" Foreground="#7F919191" Visibility="{Binding Text.IsEmpty, Converter={StaticResource MyBoolToVisibilityConverter}, ElementName=txtSearchBox}" Height="24" />
269268
<TextBox MinWidth="100" CaretBrush="#FFE2E2E2" x:Name="txtSearchBox" Background="Transparent" BorderBrush="{x:Null}" Foreground="#FFC7C7C7" SelectionBrush="#FF003966" BorderThickness="0" Margin="2,2,0,0" UndoLimit="64" TextChanged="OnSearchTextChanged" PreviewKeyDown="TxtSearchBox_PreviewKeyDown" TabIndex="1" />
270269
<Button x:Name="btnClearSearch" 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="OnClearProjectSearchClick" IsTabStop="False">
271-
<TextBlock Text="" FontSize="8" Foreground="{DynamicResource ButtonForeground}" Padding="5,3,4,4" HorizontalAlignment="Center">
270+
<TextBlock Text="" FontSize="8" Foreground="#A3C1C1C1" Padding="5,3,4,4" HorizontalAlignment="Center">
272271
<TextBlock.Style>
273272
<Style TargetType="{x:Type TextBlock}">
274273
<Style.Triggers>
@@ -303,6 +302,11 @@
303302
<Button Style="{StaticResource CustomButton}" ToolTip="Refresh list (F5)" x:Name="btnRefreshProjectList" 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="BtnRefreshProjectList_Click" TabIndex="11"/>
304303

305304
<DataGrid x:Name="gridRecent" SelectionMode="Single" Margin="4,30,2,42" CanUserAddRows="False" Background="{x:Null}" BorderBrush="{x:Null}" ColumnHeaderStyle="{StaticResource HeaderStyle}" Padding="0" HorizontalScrollBarVisibility="Disabled" HeadersVisibility="Column" Foreground="#FFD8D8D8" HorizontalGridLinesBrush="#4C000000" VerticalGridLinesBrush="#19000000" AutoGenerateColumns="False" PreviewKeyDown="GridRecent_PreviewKeyDown" Loaded="GridRecent_Loaded" TabIndex="2" CellEditEnding="GridRecent_CellEditEnding" PreviewMouseDoubleClick="GridRecent_PreviewMouseDoubleClick" >
305+
306+
<DataGrid.CommandBindings>
307+
<CommandBinding Command="ApplicationCommands.Copy" Executed="CopyRowFolderToClipBoard" CanExecute="CanExecute_Copy"/>
308+
</DataGrid.CommandBindings>
309+
306310
<DataGrid.Columns>
307311
<DataGridTextColumn CellStyle="{StaticResource NoFocusCellStyle}" Binding="{Binding Title}" ClipboardContentBinding="{x:Null}" Header="Project" IsReadOnly="True" Width="150"/>
308312
<DataGridTextColumn Binding="{Binding Version}" ClipboardContentBinding="{x:Null}" Header="Version" IsReadOnly="True" Width="72">
@@ -427,7 +431,9 @@
427431
<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}" Click="BtnRefreshUnityList_Click"/>
428432

429433
<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" PreviewMouseDoubleClick="DataGridUnitys_PreviewMouseDoubleClick">
430-
434+
<DataGrid.CommandBindings>
435+
<CommandBinding Command="ApplicationCommands.Copy" Executed="CopyRowFolderToClipBoard" CanExecute="CanExecute_Copy"/>
436+
</DataGrid.CommandBindings>
431437
<DataGrid.Columns>
432438
<DataGridTextColumn ClipboardContentBinding="{x:Null}" IsReadOnly="True" MinWidth="16">
433439
<DataGridTextColumn.ElementStyle>
@@ -522,8 +528,10 @@
522528
</Grid>
523529

524530
<Button Style="{StaticResource CustomButton}" ToolTip="Fetch released versions" 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"/>
525-
526531
<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" PreviewMouseDoubleClick="DataGridUpdates_PreviewMouseDoubleClick">
532+
<DataGrid.CommandBindings>
533+
<CommandBinding Command="ApplicationCommands.Copy" Executed="CopyRowFolderToClipBoard" CanExecute="CanExecute_Copy"/>
534+
</DataGrid.CommandBindings>
527535
<DataGrid.Columns>
528536
<DataGridTextColumn Binding="{Binding ReleaseDate, StringFormat=\{0:dd/MM/yyyy\}}" ClipboardContentBinding="{x:Null}" MinWidth="100" Header="ReleaseDate" IsReadOnly="True"/>
529537
<DataGridTextColumn Binding="{Binding Version}" ClipboardContentBinding="{x:Null}" Header="Version" IsReadOnly="True" MinWidth="123">

Diff for: UnityLauncherPro/MainWindow.xaml.cs

+34
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,9 @@ private void OnWindowKeyDown(object sender, KeyEventArgs e)
494494

495495
switch (e.Key)
496496
{
497+
case Key.LeftCtrl: // used for ctrl+c
498+
break;
499+
497500
case Key.Escape: // clear project search
498501
if (txtSearchBox.Text == "")
499502
{
@@ -1254,5 +1257,36 @@ private void ChkAskNameForQuickProject_Checked(object sender, RoutedEventArgs e)
12541257
Properties.Settings.Default.askNameForQuickProject = (bool)chkAskNameForQuickProject.IsChecked;
12551258
Properties.Settings.Default.Save();
12561259
}
1260+
1261+
// copies project folder, or unity exe folder, or unity version from current datagrid
1262+
public void CopyRowFolderToClipBoard(object sender, ExecutedRoutedEventArgs e)
1263+
{
1264+
string path = null;
1265+
if (tabControl.SelectedIndex == 0) // projects
1266+
{
1267+
path = GetSelectedProject()?.Path;
1268+
}
1269+
else if (tabControl.SelectedIndex == 1) // installed unitys
1270+
{
1271+
path = Path.GetDirectoryName(GetSelectedUnity()?.Path);
1272+
}
1273+
else if (tabControl.SelectedIndex == 2) // updates
1274+
{
1275+
path = GetSelectedUpdate()?.Version; // TODO copy url instead
1276+
}
1277+
Console.WriteLine(path);
1278+
1279+
if (string.IsNullOrEmpty(path) == false) Clipboard.SetText(path);
1280+
}
1281+
1282+
public void CanExecute_Copy(object sender, CanExecuteRoutedEventArgs e)
1283+
{
1284+
e.CanExecute = true;
1285+
}
1286+
12571287
} // class
12581288
} //namespace
1289+
1290+
1291+
1292+

0 commit comments

Comments
 (0)