191 lines
11 KiB
XML
191 lines
11 KiB
XML
<Window x:Class="LincleLINK.MainWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:local="clr-namespace:LincleLINK"
|
|
mc:Ignorable="d"
|
|
Title="LincleLINK "It never ends"" Height="450" Width="800">
|
|
|
|
<Grid x:Name="LayoutRoot" Margin="5">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="4*" MinHeight="100"></RowDefinition>
|
|
<RowDefinition Height="5"></RowDefinition>
|
|
<RowDefinition Height="1*" MinHeight="50"></RowDefinition>
|
|
<RowDefinition Height="25" MinHeight="25"></RowDefinition>
|
|
</Grid.RowDefinitions>
|
|
|
|
<GridSplitter Grid.Row="1" Grid.ColumnSpan="4" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Center" Background="#FF04DDF9"/>
|
|
|
|
<TabControl>
|
|
<TabItem Header="Instances" TabIndex="0">
|
|
<Grid x:Name="InstancesGrid">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="25"></RowDefinition>
|
|
<RowDefinition Height="1*"></RowDefinition>
|
|
</Grid.RowDefinitions>
|
|
|
|
<Grid Grid.Row="0" x:Name="InstancesGridButtons">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition></RowDefinition>
|
|
</Grid.RowDefinitions>
|
|
|
|
<Button Grid.Column="0" Content="Add instance" Command="{Binding OpenAddInstanceCommand}" IsEnabled="{Binding IsFree}"/>
|
|
<Button Grid.Column="1" Content="Link files" Command="{Binding CreateHardLinksCommand}"/>
|
|
<Button Grid.Column="2" Content="Copy hashed files" Command="{Binding CopyFilesCommand}"/>
|
|
<Button Grid.Column="3" Content="Check for unused files" Command="{Binding CheckUnusedCommand}" IsEnabled="{Binding IsFree}"></Button>
|
|
<Button Grid.Column="4" Content="Delete instance" Command="{Binding DeleteInstanceCommand}"></Button>
|
|
|
|
</Grid>
|
|
|
|
<DataGrid Grid.Row="1" ItemsSource="{Binding InstanceList}" AutoGenerateColumns="False" CanUserReorderColumns="False"
|
|
CanUserSortColumns="True" CanUserDeleteRows="False" CanUserAddRows="False" SelectionMode="Single"
|
|
CanUserResizeRows="False" HeadersVisibility="Column" GridLinesVisibility="None"
|
|
SelectionUnit="FullRow" IsReadOnly="True" SelectedItem="{Binding SelectedInstance, Mode=TwoWay}">
|
|
<DataGrid.Resources>
|
|
<Style TargetType="{x:Type DataGridCell}">
|
|
<Setter Property="BorderThickness" Value="0" />
|
|
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
|
|
</Style>
|
|
</DataGrid.Resources>
|
|
<DataGrid.Columns>
|
|
<DataGridTextColumn Header="Name" Width="3*" Binding="{Binding InstanceName}"></DataGridTextColumn>
|
|
<DataGridTextColumn Header="File count" Width="1*" Binding="{Binding FileCount}"></DataGridTextColumn>
|
|
<DataGridTextColumn Header="Instance size" Width="1*" Binding="{Binding TotalFileSizeString}" SortMemberPath="TotalFileSize"></DataGridTextColumn>
|
|
</DataGrid.Columns>
|
|
</DataGrid>
|
|
|
|
|
|
|
|
</Grid>
|
|
</TabItem>
|
|
<TabItem Header="Link to torrent" TabIndex="1">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="20"></RowDefinition>
|
|
<RowDefinition Height="20"></RowDefinition>
|
|
<RowDefinition Height="20"></RowDefinition>
|
|
<RowDefinition Height="20"></RowDefinition>
|
|
<RowDefinition Height="20"></RowDefinition>
|
|
<RowDefinition Height="20"></RowDefinition>
|
|
<RowDefinition Height="20"></RowDefinition>
|
|
<RowDefinition Height="20"></RowDefinition>
|
|
<RowDefinition Height="20"></RowDefinition>
|
|
<RowDefinition Height="20"></RowDefinition>
|
|
<RowDefinition Height="*"></RowDefinition>
|
|
</Grid.RowDefinitions>
|
|
|
|
<TextBlock Grid.Row="0" Text="Instance to link from" VerticalAlignment="Center"></TextBlock>
|
|
<ComboBox Grid.Row="1" VerticalAlignment="Center" IsEnabled="{Binding IsFree}" ItemsSource="{Binding InstanceList}" DisplayMemberPath="InstanceName" SelectedValue="{Binding SelectedInstance}" IsReadOnly="True"></ComboBox>
|
|
<TextBlock Grid.Row="2" Text="Torrent file path" VerticalAlignment="Center"></TextBlock>
|
|
|
|
<Grid Grid.Row="3">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition></ColumnDefinition>
|
|
<ColumnDefinition MaxWidth="100" MinWidth="100"></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<TextBox Grid.Column="0" Text="{Binding TorrentFilePath}" IsEnabled="{Binding IsFree}"></TextBox>
|
|
<Button Grid.Column="1" MaxWidth="100" IsEnabled="{Binding IsFree}" MinWidth="100" Content="Browse..." Command="{Binding FolderBrowseTorrentFileCommand}"></Button>
|
|
</Grid>
|
|
|
|
<TextBlock Grid.Row="4" Text="Torrent relative data path" VerticalAlignment="Center"></TextBlock>
|
|
<TextBox Grid.Row="5" IsEnabled="{Binding IsFree}" Text="{Binding RelativePath, Mode=TwoWay}"></TextBox>
|
|
<TextBlock Grid.Row="6" Text="Torrent download & link target location" VerticalAlignment="Center"></TextBlock>
|
|
<Grid Grid.Row="7">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition></ColumnDefinition>
|
|
<ColumnDefinition MaxWidth="100" MinWidth="100"></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<TextBox Grid.Column="0" IsEnabled="{Binding IsFree}" Text="{Binding TorrentDownloadPath}"></TextBox>
|
|
<Button Grid.Column="1" IsEnabled="{Binding IsFree}" MaxWidth="100" MinWidth="100" Content="Browse..." Command="{Binding FolderBrowseTorrentDLPathCommand}"></Button>
|
|
</Grid>
|
|
|
|
<Grid Grid.Row="8">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition></ColumnDefinition>
|
|
<ColumnDefinition></ColumnDefinition>
|
|
<ColumnDefinition></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Button Grid.Column="0" Content="Check files" IsEnabled="{Binding IsFree}" Command="{Binding CheckFilesCommand}"></Button>
|
|
<Button Grid.Column="1" Content="Check pieces" IsEnabled="{Binding DidCheckFiles}" Command="{Binding CheckPiecesCommand}"></Button>
|
|
<Button Grid.Column="2" Content="Start linking" IsEnabled="{Binding DidCheckPieces}" Command="{Binding LinkToTorrentCommand}" ></Button>
|
|
</Grid>
|
|
|
|
<TextBlock Grid.Row="9" Text="Matched instance files" VerticalAlignment="Center"></TextBlock>
|
|
|
|
<ScrollViewer Grid.Row="10" x:Name="MatchedFilesScroller">
|
|
|
|
<VirtualizingStackPanel VirtualizingStackPanel.VirtualizationMode="Recycling">
|
|
<ItemsControl ItemsSource="{Binding MatchedList}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<TextBlock Text="{Binding}"></TextBlock>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</VirtualizingStackPanel>
|
|
|
|
</ScrollViewer>
|
|
|
|
</Grid>
|
|
</TabItem>
|
|
<TabItem Header="Other" TabIndex="2">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="20"></RowDefinition>
|
|
<RowDefinition Height="20"></RowDefinition>
|
|
<RowDefinition Height="20"></RowDefinition>
|
|
<RowDefinition Height="20"></RowDefinition>
|
|
</Grid.RowDefinitions>
|
|
|
|
<TextBlock Grid.Row="0" Text="{Binding DBSize, StringFormat=db folder size: {0}}"></TextBlock>
|
|
<TextBlock Grid.Row="1" Text="{Binding Savings, StringFormat=You are saving: {0}}"></TextBlock>
|
|
<TextBlock Grid.Row="2" Text="{Binding FreeSpace, StringFormat=Free drive space {0}}"></TextBlock>
|
|
<Button Grid.Row="3" Content="Import DBInfo.xml" IsEnabled="{Binding IsFree}" Command="{Binding ImportLegacyCommand}"></Button>
|
|
|
|
</Grid>
|
|
</TabItem>
|
|
</TabControl>
|
|
|
|
|
|
<ScrollViewer Grid.Row="2" x:Name="LogScroller">
|
|
<VirtualizingStackPanel VirtualizingStackPanel.VirtualizationMode="Recycling">
|
|
<ItemsControl ItemsSource="{Binding LogList}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<TextBlock Text="{Binding}"></TextBlock>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</VirtualizingStackPanel>
|
|
</ScrollViewer>
|
|
|
|
<ProgressBar Grid.Row="3" Value="{Binding Progress}"/>
|
|
</Grid>
|
|
</Window>
|