wabbajack/Wabbajack/Views/MainWindow.xaml
Justin Swanson 66db4e6ddd Refactored logging to all hook into Utils.Log
Log collection moved up to MainWindow.   Since there will be many sub-VMs moving forward, a singleton based setup was desired.  RxUI's Splat was an option, but we already had Utils.Log right there.  Also now GUI printed messages will go to the log on the disk for later inspection.
2019-10-22 23:16:42 -05:00

210 lines
8.2 KiB
XML

<Window
x:Class="Wabbajack.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:local="clr-namespace:Wabbajack"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="Wabbajack"
Width="1280"
Height="960"
MinWidth="1024"
MinHeight="768"
Closing="Window_Closing"
Icon="../Resources/Icons/wabbajack.ico"
ResizeMode="CanResize"
Style="{StaticResource {x:Type Window}}"
WindowStyle="ToolWindow"
mc:Ignorable="d">
<Viewbox Stretch="Uniform" DataContext="{Binding AppState}">
<Grid Margin="4,0,4,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="435" />
<RowDefinition Height="10" />
<RowDefinition Height="Auto" />
<RowDefinition Height="320" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="640" />
<ColumnDefinition Width="640" />
</Grid.ColumnDefinitions>
<StackPanel
Grid.Row="0"
Margin="0,8,0,8"
Orientation="Horizontal">
<TextBlock
FontSize="16"
FontWeight="Bold"
Text="{Binding Mode}" />
<TextBlock FontSize="16" Text=" : " />
<TextBlock FontSize="16" Text="{Binding ModListName}" />
</StackPanel>
<local:SlideshowView
x:Name="Slideshow"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="0,0,0,4"
DataContext="{Binding Slideshow}" />
<ProgressBar
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="1,0,1,0"
Background="#444444"
Maximum="100"
Minimum="0"
Value="{Binding MWVM.QueueProgress}" />
<!-- Log -->
<TextBlock
Grid.Row="3"
Margin="0,16,0,8"
FontSize="14"
Text="Log:" />
<ListBox
Grid.Row="4"
Margin="0,0,2,0"
local:AutoScrollBehavior.ScrollOnNewItem="True"
ItemsSource="{Binding MWVM.Log}" />
<!-- End Log -->
<!-- Location -->
<Grid
Grid.Row="5"
Grid.RowSpan="2"
Grid.Column="0"
Margin="-4,10,2,10"
HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition MinHeight="10" />
<RowDefinition />
</Grid.RowDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Content="{Binding LocationLabel}" />
<TextBox
Grid.Row="0"
Grid.Column="1"
IsEnabled="{Binding UIReady}"
Text="{Binding Location, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnValidationError=True}" />
<Button
Grid.Row="0"
Grid.Column="2"
MinWidth="80"
Command="{Binding ChangePathCommand}"
Content="Select"
IsEnabled="{Binding UIReady}" />
<Label
Grid.Row="2"
Grid.Column="0"
Content="Download Location:" />
<TextBox
Grid.Row="2"
Grid.Column="1"
IsEnabled="{Binding UIReady}"
Text="{Binding DownloadLocation}" />
<Button
Grid.Row="2"
Grid.Column="2"
MinWidth="80"
Command="{Binding ChangeDownloadPathCommand}"
Content="Select"
IsEnabled="{Binding UIReady}" />
</Grid>
<!-- End Location -->
<!-- Work Queue Start -->
<TextBlock
Grid.Row="3"
Grid.Column="1"
Margin="2,16,0,8"
FontSize="14"
Text="Work Queue:" />
<ListBox
Grid.Row="4"
Grid.Column="1"
Width="Auto"
Margin="2,0,0,0"
HorizontalAlignment="Stretch"
ItemsSource="{Binding MWVM.StatusList}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ProgressBar
Grid.Column="0"
Width="100"
Maximum="100"
Minimum="0"
Value="{Binding Progress, Mode=OneTime}">
<ProgressBar.Style>
<Style TargetType="ProgressBar">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding Progress}" Value="0">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</ProgressBar.Style>
</ProgressBar>
<TextBlock Grid.Column="1" Text=" CPU " />
<TextBlock Grid.Column="2" Text="{Binding ID}" />
<TextBlock Grid.Column="3" Text=" - " />
<TextBlock Grid.Column="4" Text="{Binding Msg}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<!-- Work Queue End -->
<Grid
Grid.Row="5"
Grid.RowSpan="2"
Grid.Column="1"
Margin="2,10,0,10">
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<Button
Grid.Row="0"
Margin="0,0,0,4"
Command="{Binding ShowReportCommand}"
Visibility="{Binding HTMLReport, Converter={StaticResource IsNotNullVisibilityConverter}}">
<TextBlock FontSize="13" FontWeight="Bold">View ModList Contents</TextBlock>
</Button>
<Button
Grid.Row="1"
Margin="0,4,0,0"
Command="{Binding BeginCommand}">
<TextBlock FontSize="13" FontWeight="Bold">Begin</TextBlock>
</Button>
</Grid>
</Grid>
</Viewbox>
</Window>