Merge pull request #977 from Noggog/install-config-work

Install config work
This commit is contained in:
Timothy Baldridge 2020-07-27 13:14:01 -07:00 committed by GitHub
commit 5b008eefa9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
42 changed files with 922 additions and 938 deletions

41
Settings.XamlStyler Normal file
View File

@ -0,0 +1,41 @@
{
"AttributesTolerance": 2,
"KeepFirstAttributeOnSameLine": false,
"MaxAttributeCharactersPerLine": 0,
"MaxAttributesPerLine": 1,
"NewlineExemptionElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransform, SkewTransform, RotateTransform, TranslateTransform, Trigger, Condition, Setter",
"SeparateByGroups": false,
"AttributeIndentation": 0,
"AttributeIndentationStyle": 1,
"RemoveDesignTimeReferences": false,
"EnableAttributeReordering": true,
"AttributeOrderingRuleGroups": [
"x:Class",
"xmlns, xmlns:x",
"xmlns:*",
"x:Key, Key, x:Name, Name, x:Uid, Uid, Title",
"Grid.Row, Grid.RowSpan, Grid.Column, Grid.ColumnSpan, Canvas.Left, Canvas.Top, Canvas.Right, Canvas.Bottom",
"Width, Height, MinWidth, MinHeight, MaxWidth, MaxHeight",
"Margin, Padding, HorizontalAlignment, VerticalAlignment, HorizontalContentAlignment, VerticalContentAlignment, Panel.ZIndex",
"*:*, *",
"PageSource, PageIndex, Offset, Color, TargetName, Property, Value, StartPoint, EndPoint",
"mc:Ignorable, d:IsDataSource, d:LayoutOverrides, d:IsStaticText",
"Storyboard.*, From, To, Duration"
],
"FirstLineAttributes": "Grid.Row, Grid.RowSpan, Grid.Column, Grid.ColumnSpan",
"OrderAttributesByName": true,
"PutEndingBracketOnNewLine": false,
"RemoveEndingTagOfEmptyElement": true,
"SpaceBeforeClosingSlash": true,
"RootElementLineBreakRule": 0,
"ReorderVSM": 2,
"ReorderGridChildren": false,
"ReorderCanvasChildren": false,
"ReorderSetters": 0,
"FormatMarkupExtension": true,
"NoNewLineMarkupExtensions": "x:Bind, Binding",
"ThicknessSeparator": 2,
"ThicknessAttributes": "Margin, Padding, BorderThickness, ThumbnailClipMargin",
"FormatOnSave": true,
"CommentPadding": 2,
}

View File

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Notify property changed property</Title>
<Shortcut>guiprop</Shortcut>
<Description>Code snippet for a NotifyingPropertyChanged variable</Description>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>type</ID>
<ToolTip>Property type</ToolTip>
<Default>int</Default>
</Literal>
<Literal>
<ID>property</ID>
<ToolTip>Property name</ToolTip>
<Default>MyProperty</Default>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[private $type$ _$property$;
public $type$ $property$ { get => _$property$; set => this.RaiseAndSetIfChanged(ref _$property$, value); }$end$]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

View File

@ -1,4 +1,5 @@
using System;
using DynamicData.Kernel;
namespace Wabbajack
{
@ -86,6 +87,15 @@ namespace Wabbajack
if (err == null) return Create(nullIsSuccess);
return new ErrorResponse(err.Succeeded, err.Reason, err.Exception);
}
public static ErrorResponse FirstFail(params ErrorResponse[] responses)
{
foreach (var resp in responses)
{
if (resp.Failed) return resp;
}
return ErrorResponse.Success;
}
}
public interface IErrorResponse

View File

@ -437,7 +437,7 @@ namespace Wabbajack.Lib
return ErrorResponse.Success;
}
return ErrorResponse.Fail($"Cannot install to this folder as it has unknown files that could be deleted");
return ErrorResponse.Fail($"Either delete everything except the downloads folder, or pick a new location. Cannot install to this folder as it has unexpected files.");
}
}
}

View File

@ -39,6 +39,7 @@
<Color x:Key="Yellow">#ffc400</Color>
<Color x:Key="Red">#e83a40</Color>
<Color x:Key="Green">#52b545</Color>
<Color x:Key="YellowDark">#967400</Color>
<Color x:Key="Primary">#BB86FC</Color>
<Color x:Key="PrimaryTransparent">#00BB86FC</Color>
@ -101,6 +102,7 @@
<SolidColorBrush x:Key="GreenBrush" Color="{StaticResource Green}" />
<SolidColorBrush x:Key="RedBrush" Color="{StaticResource Red}" />
<SolidColorBrush x:Key="WarningBrush" Color="{StaticResource Yellow}" />
<SolidColorBrush x:Key="WarningDarkBrush" Color="{StaticResource YellowDark}" />
<SolidColorBrush x:Key="ErrorBrush" Color="{StaticResource Red}" />
<SolidColorBrush x:Key="DarkBackgroundBrush" Color="{StaticResource DarkBackgroundColor}" />
@ -269,15 +271,11 @@
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle
<Rectangle Grid.Row="1" Grid.Column="1"
x:Name="Corner"
Grid.Row="1"
Grid.Column="1"
Fill="{TemplateBinding Background}" />
<ScrollContentPresenter
<ScrollContentPresenter Grid.Row="0" Grid.Column="0"
x:Name="PART_ScrollContentPresenter"
Grid.Row="0"
Grid.Column="0"
Margin="{TemplateBinding Padding}"
CanContentScroll="{TemplateBinding CanContentScroll}"
CanHorizontallyScroll="False"
@ -285,10 +283,8 @@
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Focusable="False" />
<ScrollBar
<ScrollBar Grid.Row="0" Grid.Column="1"
x:Name="PART_VerticalScrollBar"
Grid.Row="0"
Grid.Column="1"
AutomationProperties.AutomationId="VerticalScrollBar"
Cursor="Arrow"
Maximum="{TemplateBinding ScrollableHeight}"
@ -297,10 +293,8 @@
ViewportSize="{TemplateBinding ViewportHeight}"
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" />
<ScrollBar
<ScrollBar Grid.Row="1" Grid.Column="0"
x:Name="PART_HorizontalScrollBar"
Grid.Row="1"
Grid.Column="0"
AutomationProperties.AutomationId="HorizontalScrollBar"
Cursor="Arrow"
Maximum="{TemplateBinding ScrollableWidth}"
@ -465,9 +459,8 @@
Command="{x:Static ScrollBar.LineUpCommand}"
IsEnabled="{TemplateBinding IsMouseOver}"
Style="{StaticResource RepeatButtonUpStyle}" />
<Track
<Track Grid.Row="1"
x:Name="PART_Track"
Grid.Row="1"
IsDirectionReversed="true"
IsEnabled="{TemplateBinding IsMouseOver}">
<Track.DecreaseRepeatButton>
@ -480,8 +473,7 @@
<Thumb Style="{StaticResource ScrollBarThumb}" />
</Track.Thumb>
</Track>
<RepeatButton
Grid.Row="2"
<RepeatButton Grid.Row="2"
Command="{x:Static ScrollBar.LineDownCommand}"
IsEnabled="{TemplateBinding IsMouseOver}"
Style="{DynamicResource RepeatButtonDownStyle}" />
@ -517,9 +509,8 @@
Command="{x:Static ScrollBar.LineLeftCommand}"
IsEnabled="{TemplateBinding IsMouseOver}"
Style="{StaticResource RepeatButtonUpStyle}" />
<Track
<Track Grid.Column="1"
x:Name="PART_Track"
Grid.Column="1"
IsEnabled="{TemplateBinding IsMouseOver}">
<Track.DecreaseRepeatButton>
<RepeatButton Command="{x:Static ScrollBar.PageLeftCommand}" Style="{StaticResource HorizontalScrollBarPageButton}" />
@ -531,8 +522,7 @@
<Thumb Style="{StaticResource ScrollBarThumb}" />
</Track.Thumb>
</Track>
<RepeatButton
Grid.Column="2"
<RepeatButton Grid.Column="2"
Command="{x:Static ScrollBar.LineRightCommand}"
IsEnabled="{TemplateBinding IsMouseOver}"
Style="{StaticResource RepeatButtonUpStyle}" />
@ -578,9 +568,8 @@
Command="{x:Static ScrollBar.LineLeftCommand}"
IsEnabled="{TemplateBinding IsMouseOver}"
Style="{DynamicResource RepeatLeftButtonStyle}" />
<Track
<Track Grid.Column="1"
x:Name="PART_Track"
Grid.Column="1"
IsEnabled="{TemplateBinding IsMouseOver}">
<Track.DecreaseRepeatButton>
<RepeatButton Command="{x:Static ScrollBar.PageLeftCommand}" Style="{StaticResource HorizontalScrollBarPageButton}" />
@ -592,8 +581,7 @@
<Thumb Style="{DynamicResource HorisontalThumbStyle}" />
</Track.Thumb>
</Track>
<RepeatButton
Grid.Column="2"
<RepeatButton Grid.Column="2"
Command="{x:Static ScrollBar.LineRightCommand}"
IsEnabled="{TemplateBinding IsMouseOver}"
Style="{DynamicResource RepeatRightButtonStyle}" />
@ -748,10 +736,8 @@
x:Name="PART_ContentHost"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
<TextBlock
<TextBlock Grid.Row="1" Grid.Column="0"
x:Name="PART_Message"
Grid.Row="1"
Grid.Column="0"
Padding="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
@ -918,9 +904,8 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Popup
<Popup Grid.ColumnSpan="2"
x:Name="PART_Popup"
Grid.ColumnSpan="2"
Margin="1"
AllowsTransparency="true"
IsOpen="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}"
@ -958,16 +943,14 @@
</Border>
</Border>
</Popup>
<Border
<Border Grid.ColumnSpan="2"
x:Name="Border"
Grid.ColumnSpan="2"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding Background}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="3" />
<TextBox x:Name="PART_EditableTextBox" />
<ToggleButton
Grid.Column="1"
<ToggleButton Grid.Column="1"
IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
Style="{StaticResource ComboBoxReadonlyToggleButton}" />
</Grid>
@ -1017,9 +1000,8 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" MinWidth="18" />
</Grid.ColumnDefinitions>
<Popup
<Popup Grid.ColumnSpan="2"
x:Name="PART_Popup"
Grid.ColumnSpan="2"
Margin="1"
AllowsTransparency="true"
IsOpen="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}"
@ -1057,8 +1039,7 @@
</Border>
</Border>
</Popup>
<ToggleButton
Grid.ColumnSpan="2"
<ToggleButton Grid.ColumnSpan="2"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
@ -1452,8 +1433,7 @@
Stroke="{StaticResource Expander.Static.Arrow.Stroke}"
StrokeThickness="2" />
</Grid>
<ContentPresenter
Grid.Row="1"
<ContentPresenter Grid.Row="1"
Margin="0,4,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Top"
@ -1505,8 +1485,7 @@
Stroke="{StaticResource Expander.Static.Arrow.Stroke}"
StrokeThickness="2" />
</Grid>
<ContentPresenter
Grid.Column="1"
<ContentPresenter Grid.Column="1"
Margin="4,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
@ -1558,8 +1537,7 @@
Stroke="{StaticResource Expander.Static.Arrow.Stroke}"
StrokeThickness="2" />
</Grid>
<ContentPresenter
Grid.Row="1"
<ContentPresenter Grid.Row="1"
Margin="0,4,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Top"
@ -1616,8 +1594,7 @@
SnapsToDevicePixels="false"
Stroke="{StaticResource Expander.Static.Arrow.Stroke}"
StrokeThickness="2" />
<ContentPresenter
Grid.Column="1"
<ContentPresenter Grid.Column="1"
Margin="4,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
@ -1727,9 +1704,8 @@
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Path
<Path Grid.ColumnSpan="2"
x:Name="arrow"
Grid.ColumnSpan="2"
Width="8"
Height="4.5"
Margin="2.068,6.27,0,0"
@ -1748,8 +1724,7 @@
</TransformGroup>
</Path.RenderTransform>
</Path>
<ContentPresenter
Grid.Column="1"
<ContentPresenter Grid.Column="1"
Margin="4,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
@ -2157,16 +2132,14 @@
<ColumnDefinition Width="15" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ToggleButton
<ToggleButton Grid.Column="0"
x:Name="Expander"
Grid.Column="0"
ClickMode="Press"
IsChecked="{Binding Path=IsExpanded, RelativeSource={RelativeSource TemplatedParent}}"
Style="{DynamicResource TreeViewToggleButtonStyle}" />
<ContentPresenter
<ContentPresenter Grid.Column="1"
x:Name="PART_Header"
Grid.Column="1"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
ContentSource="Header" />
</Grid>
@ -2233,9 +2206,8 @@
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Path
<Path Grid.ColumnSpan="2"
x:Name="arrow"
Grid.ColumnSpan="2"
Width="8"
Height="4.5"
Margin="2.068,6.27,0,0"
@ -2254,8 +2226,7 @@
</TransformGroup>
</Path.RenderTransform>
</Path>
<ContentPresenter
Grid.Column="1"
<ContentPresenter Grid.Column="1"
Margin="4,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
@ -2311,9 +2282,8 @@
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Path
<Path Grid.ColumnSpan="2"
x:Name="arrow"
Grid.ColumnSpan="2"
Width="8"
Height="4.5"
Margin="2.068,6.27,0,0"
@ -2332,8 +2302,7 @@
</TransformGroup>
</Path.RenderTransform>
</Path>
<ContentPresenter
Grid.Column="1"
<ContentPresenter Grid.Column="1"
Margin="4,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
@ -2504,15 +2473,13 @@
FlowDirection="LeftToRight"
Stretch="Fill" />
</Border>
<ContentPresenter
<ContentPresenter Grid.Column="2"
x:Name="Content"
Grid.Column="2"
Margin="{TemplateBinding Padding}"
ContentSource="Header"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
<TextBlock
Grid.Column="4"
<TextBlock Grid.Column="4"
Margin="{TemplateBinding Padding}"
Text="{TemplateBinding InputGestureText}" />
</Grid>
@ -2588,9 +2555,7 @@
<Border Grid.Row="1" Grid.Column="0">
<ScrollContentPresenter Margin="{TemplateBinding Padding}" CanContentScroll="{TemplateBinding CanContentScroll}" />
</Border>
<RepeatButton
Grid.Row="0"
Grid.Column="0"
<RepeatButton Grid.Row="0" Grid.Column="0"
Command="{x:Static ScrollBar.LineUpCommand}"
CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
Focusable="false"
@ -2611,9 +2576,7 @@
Data="{StaticResource MenuScrollUpArrowGeometry}"
Fill="{StaticResource ForegroundBrush}" />
</RepeatButton>
<RepeatButton
Grid.Row="2"
Grid.Column="0"
<RepeatButton Grid.Row="2" Grid.Column="0"
Command="{x:Static ScrollBar.LineDownCommand}"
CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
Focusable="false"
@ -2846,21 +2809,18 @@
FlowDirection="LeftToRight"
Stretch="Fill" />
</Border>
<ContentPresenter
<ContentPresenter Grid.Column="2"
x:Name="Content"
Grid.Column="2"
Margin="{TemplateBinding Padding}"
ContentSource="Header"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
<TextBlock
Grid.Column="4"
<TextBlock Grid.Column="4"
Margin="{TemplateBinding Padding}"
Text="{TemplateBinding InputGestureText}"
Visibility="Collapsed" />
<Path
<Path Grid.Column="5"
x:Name="RightArrowPath"
Grid.Column="5"
Margin="4,0,0,0"
VerticalAlignment="Center"
Data="{StaticResource RightArrow}"
@ -3102,11 +3062,7 @@
<RowDefinition Height="*" />
<RowDefinition Height="6" />
</Grid.RowDefinitions>
<Border
Grid.Row="1"
Grid.RowSpan="3"
Grid.Column="0"
Grid.ColumnSpan="4"
<Border Grid.Row="1" Grid.RowSpan="3" Grid.Column="0" Grid.ColumnSpan="4"
Background="{TemplateBinding Background}"
BorderBrush="Transparent"
BorderThickness="{TemplateBinding BorderThickness}"
@ -3131,21 +3087,15 @@
CornerRadius="4"/>-->
</Border>
</Border>
<Border
<Border Grid.Row="0" Grid.RowSpan="2" Grid.Column="1"
x:Name="Header"
Grid.Row="0"
Grid.RowSpan="2"
Grid.Column="1"
Padding="3,1,3,0">
<ContentPresenter
ContentSource="Header"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<ContentPresenter
Grid.Row="2"
Grid.Column="1"
Grid.ColumnSpan="2"
<ContentPresenter Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2"
Margin="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Grid>
@ -3235,19 +3185,14 @@
Style="{DynamicResource {ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle,
TypeInTargetAssembly={x:Type DataGrid}}}"
Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.All}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
<DataGridColumnHeadersPresenter
<DataGridColumnHeadersPresenter Grid.Column="1"
x:Name="PART_ColumnHeadersPresenter"
Grid.Column="1"
Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Column}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
<ScrollContentPresenter
<ScrollContentPresenter Grid.Row="1" Grid.ColumnSpan="2"
x:Name="PART_ScrollContentPresenter"
Grid.Row="1"
Grid.ColumnSpan="2"
CanContentScroll="{TemplateBinding CanContentScroll}" />
<ScrollBar
<ScrollBar Grid.Row="1" Grid.Column="2"
x:Name="PART_VerticalScrollBar"
Grid.Row="1"
Grid.Column="2"
Maximum="{TemplateBinding ScrollableHeight}"
Orientation="Vertical"
Style="{StaticResource VerticalScrollBarStyle}"
@ -3259,9 +3204,8 @@
<ColumnDefinition Width="{Binding NonFrozenColumnsViewportHorizontalOffset, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ScrollBar
<ScrollBar Grid.Column="1"
x:Name="PART_HorizontalScrollBar"
Grid.Column="1"
Maximum="{TemplateBinding ScrollableWidth}"
Orientation="Horizontal"
Style="{StaticResource HorisontalScrollBarStyle}"
@ -3384,17 +3328,13 @@
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</SelectiveScrollingGrid.RowDefinitions>
<DataGridCellsPresenter
Grid.Column="1"
<DataGridCellsPresenter Grid.Column="1"
ItemsPanel="{TemplateBinding ItemsPanel}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
<DataGridDetailsPresenter
Grid.Row="1"
Grid.Column="1"
<DataGridDetailsPresenter Grid.Row="1" Grid.Column="1"
SelectiveScrollingGrid.SelectiveScrollingOrientation="{Binding AreRowDetailsFrozen, ConverterParameter={x:Static SelectiveScrollingOrientation.Vertical}, Converter={x:Static DataGrid.RowDetailsScrollingConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"
Visibility="{TemplateBinding DetailsVisibility}" />
<DataGridRowHeader
Grid.RowSpan="2"
<DataGridRowHeader Grid.RowSpan="2"
SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical"
Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Row}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
</SelectiveScrollingGrid>
@ -3533,4 +3473,61 @@
<Style BasedOn="{StaticResource MahApps.Styles.TabControl}" TargetType="TabControl" />
<Style BasedOn="{StaticResource MahApps.Styles.TabItem}" TargetType="{x:Type TabItem}" />
<Style BasedOn="{StaticResource MahApps.Styles.ToolTip}" TargetType="ToolTip">
<Setter Property="Background" Value="{DynamicResource MahApps.Brushes.Control.Background}" />
<Setter Property="BorderBrush" Value="{DynamicResource MahApps.Brushes.Gray7}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="FontSize" Value="{DynamicResource MahApps.Font.Size.Tooltip}" />
<Setter Property="Foreground" Value="{DynamicResource MahApps.Brushes.ThemeForeground}" />
<Setter Property="Padding" Value="6,3" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToolTip}">
<Border
Name="Root"
MaxWidth="500"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Opacity="0"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}">
<Border.Resources>
<Storyboard x:Key="Visible State" />
<Storyboard x:Key="Normal State" />
</Border.Resources>
<TextBlock
Margin="5"
Text="{TemplateBinding Content}"
TextWrapping="Wrap" />
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="OpenStates">
<VisualStateGroup.Transitions>
<VisualTransition
GeneratedDuration="0:0:0.3"
From="Open"
To="Closed" />
</VisualStateGroup.Transitions>
<VisualState x:Name="Closed">
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="Root" Storyboard.TargetProperty="(UIElement.Opacity)">
<EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="0" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Open">
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="Root" Storyboard.TargetProperty="(UIElement.Opacity)">
<EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="1" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View File

@ -17,7 +17,7 @@ namespace Wabbajack
bool SupportsAfterInstallNavigation { get; }
void AfterInstallNavigation();
int ConfigVisualVerticalOffset { get; }
IObservable<bool> CanInstall { get; }
ErrorResponse CanInstall { get; }
Task<bool> Install();
IUserIntervention InterventionConverter(IUserIntervention intervention);
}

View File

@ -356,7 +356,7 @@ namespace Wabbajack
BeginCommand = ReactiveCommand.CreateFromTask(
canExecute: this.WhenAny(x => x.Installer.CanInstall)
.Switch(),
.Select(err => err.Succeeded),
execute: async () =>
{
try

View File

@ -20,7 +20,8 @@ namespace Wabbajack
{
public InstallerVM Parent { get; }
public IObservable<bool> CanInstall { get; }
private readonly ObservableAsPropertyHelper<ErrorResponse> _CanInstall;
public ErrorResponse CanInstall => _CanInstall.Value;
[Reactive]
public AInstaller ActiveInstallation { get; private set; }
@ -65,14 +66,15 @@ namespace Wabbajack
.Select(i => MO2Installer.CheckValidInstallPath(i.target, i.download))
.ObserveOnGuiThread();
CanInstall = Observable.CombineLatest(
this.WhenAny(x => x.Location.InError),
this.WhenAny(x => x.DownloadLocation.InError),
installerVM.WhenAny(x => x.ModListLocation.InError),
resultSelector: (loc, modlist, download) =>
{
return !loc && !download && !modlist;
});
_CanInstall = Observable.CombineLatest(
this.WhenAny(x => x.Location.ErrorState),
this.WhenAny(x => x.DownloadLocation.ErrorState),
installerVM.WhenAny(x => x.ModListLocation.ErrorState),
resultSelector: (loc, modlist, download) =>
{
return ErrorResponse.FirstFail(loc, modlist, download);
})
.ToProperty(this, nameof(CanInstall));
// Have Installation location updates modify the downloads location if empty
this.WhenAny(x => x.Location.TargetPath)

View File

@ -17,9 +17,8 @@
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ListBox
<ListBox Grid.Row="0"
x:Name="CpuListControl"
Grid.Row="0"
HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemTemplate>
@ -28,9 +27,8 @@
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Border
<Border Grid.Row="1"
x:Name="SettingsBar"
Grid.Row="1"
Background="{StaticResource BackgroundBrush}"
BorderBrush="{StaticResource ButtonNormalBorder}"
BorderThickness="0,1,0,0">
@ -46,21 +44,18 @@
Margin="5,0"
VerticalAlignment="Center"
Text="Percent Usage" />
<Slider
<Slider Grid.Column="1"
x:Name="TargetPercentageSlider"
Grid.Column="1"
Margin="2,0,4,0"
Maximum="1"
Minimum="0.1"
Orientation="Horizontal" />
<TextBlock
<TextBlock Grid.Column="2"
x:Name="PercentageText"
Grid.Column="2"
Margin="2,0,4,0" />
<TextBlock Grid.Column="3" Text="|" />
<TextBlock
<TextBlock Grid.Column="4"
x:Name="CpuCountText"
Grid.Column="4"
Margin="2,0,6,0" />
</Grid>
</Border>

View File

@ -64,7 +64,12 @@ namespace Wabbajack
.BindToStrict(this, x => x.CpuListControl.ItemsSource)
.DisposeWith(disposable);
this.Bind(this.ViewModel, x => x.MWVM.Settings.Performance.TargetUsage, x => x.TargetPercentageSlider.Value)
this.BindStrict(
this.ViewModel,
x => x.MWVM.Settings.Performance.TargetUsage,
x => x.TargetPercentageSlider.Value,
vmToViewConverter: p => p.Value,
viewToVmConverter: d => new Percent(d))
.DisposeWith(disposable);
this.WhenAny(x => x.ViewModel.MWVM.Settings.Performance.TargetUsage)

View File

@ -57,35 +57,22 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle
Grid.Row="0"
Grid.RowSpan="4"
Grid.Column="0"
Grid.ColumnSpan="2"
<Rectangle Grid.Row="0" Grid.RowSpan="4" Grid.Column="0" Grid.ColumnSpan="2"
Fill="{StaticResource WindowBackgroundBrush}" />
<Viewbox
Grid.Row="0"
Grid.RowSpan="4"
Grid.Column="0"
Grid.ColumnSpan="2"
<Viewbox Grid.Row="0" Grid.RowSpan="4" Grid.Column="0" Grid.ColumnSpan="2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Stretch="UniformToFill">
<Image x:Name="ModlistImage" />
</Viewbox>
<Image x:Name="BadgeImage"
Grid.Row="0"
Grid.RowSpan="4"
Grid.Column="0"
Grid.ColumnSpan="2"
<Image Grid.Row="0" Grid.RowSpan="4" Grid.Column="0" Grid.ColumnSpan="2"
x:Name="BadgeImage"
Width="60"
Height="60"
HorizontalAlignment="Left"
VerticalAlignment="Top" />
<TextBlock
<TextBlock Grid.Row="2" Grid.Column="0"
x:Name="TitleTextShadow"
Grid.Row="2"
Grid.Column="0"
Margin="-20,5,-20,-20"
Padding="40,20"
HorizontalAlignment="Left"
@ -99,10 +86,8 @@
<BlurEffect Radius="85" />
</TextBlock.Effect>
</TextBlock>
<TextBlock
<TextBlock Grid.Row="3" Grid.Column="0"
x:Name="AuthorTextShadow"
Grid.Row="3"
Grid.Column="0"
Margin="35,-10,-10,10"
Padding="30,10"
HorizontalAlignment="Left"
@ -117,9 +102,8 @@
<Run FontSize="15" Text="by" />
<Run x:Name="AuthorShadowTextRun" />
</TextBlock>
<TextBlock x:Name="TitleTextBlock"
Grid.Row="2"
Grid.Column="0"
<TextBlock Grid.Row="2" Grid.Column="0"
x:Name="TitleTextBlock"
Margin="20,25,20,0"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
@ -131,9 +115,8 @@
<DropShadowEffect />
</TextBlock.Effect>
</TextBlock>
<TextBlock x:Name="AuthorTextBlock"
Grid.Row="3"
Grid.Column="0"
<TextBlock Grid.Row="3" Grid.Column="0"
x:Name="AuthorTextBlock"
Margin="55,0,20,20"
FontFamily="Lucida Sans"
FontSize="30"
@ -145,11 +128,8 @@
<Run FontSize="15" Text="by" />
<Run x:Name="AuthorTextRun" />
</TextBlock>
<TextBlock
<TextBlock Grid.Row="2" Grid.RowSpan="2" Grid.Column="1"
x:Name="DescriptionTextShadow"
Grid.Row="2"
Grid.RowSpan="2"
Grid.Column="1"
Margin="-10,15,-5,15"
Padding="30,10"
HorizontalAlignment="Right"
@ -163,10 +143,8 @@
<BlurEffect Radius="55" />
</TextBlock.Effect>
</TextBlock>
<TextBlock x:Name="DescriptionTextBlock"
Grid.Row="2"
Grid.RowSpan="2"
Grid.Column="1"
<TextBlock Grid.Row="2" Grid.RowSpan="2" Grid.Column="1"
x:Name="DescriptionTextBlock"
Margin="20,25,25,25"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
@ -178,12 +156,8 @@
<DropShadowEffect />
</TextBlock.Effect>
</TextBlock>
<Rectangle
<Rectangle Grid.Row="2" Grid.RowSpan="2" Grid.Column="0" Grid.ColumnSpan="2"
x:Name="TextHoverTrigger"
Grid.Row="2"
Grid.RowSpan="2"
Grid.Column="0"
Grid.ColumnSpan="2"
Fill="Transparent" />
</Grid>
</local:UserControlRx>

View File

@ -1,4 +1,4 @@
<UserControl
<UserControl
x:Class="Wabbajack.FilePicker"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
@ -10,26 +10,54 @@
d:DesignWidth="400"
BorderBrush="{StaticResource DarkBackgroundBrush}"
mc:Ignorable="d">
<Grid ClipToBounds="True">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="36" />
</Grid.ColumnDefinitions>
<Border
<Rectangle Grid.Column="0" Grid.ColumnSpan="2"
x:Name="ErrorGlow"
Fill="{StaticResource WarningBrush}"
Opacity="0.3"
Visibility="{Binding PickerVM.InError, Converter={StaticResource bool2VisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}">
<Rectangle.Effect>
<BlurEffect Radius="15" />
</Rectangle.Effect>
<Rectangle.Style>
<Style TargetType="Rectangle">
<Style.Triggers>
<DataTrigger Binding="{Binding PickerVM.InError, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
AutoReverse="True"
RepeatBehavior="Forever"
Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)"
To="{StaticResource YellowDark}"
Duration="0:0:0.8" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Rectangle.Style>
</Rectangle>
<Border Grid.Column="0" Grid.ColumnSpan="2"
x:Name="BackgroundCornerFillIn"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="0,0,5,0"
Background="{StaticResource TextBoxBackground}"
CornerRadius="3" />
<TextBox
Grid.Column="0"
<TextBox Grid.Column="0"
Margin="5,1,-2,1"
VerticalContentAlignment="Center"
Background="{StaticResource DarkBackgroundBrush}"
Text="{Binding PickerVM.TargetPath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}, Converter={StaticResource AbsolutePathToStringConverter}}"
Visibility="{Binding PickerVM.ShowTextBoxInput, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
<Grid Grid.Column="1" HorizontalAlignment="Right">
<Grid Grid.Column="1"
HorizontalAlignment="Right"
ClipToBounds="True">
<Border
Margin="3,1,0,1"
HorizontalAlignment="Right"
@ -95,5 +123,34 @@
</Border.Effect>
</Border>
</Grid>
<Border Grid.Column="0" Grid.ColumnSpan="2"
x:Name="ErrorBorder"
Background="Transparent"
BorderBrush="{StaticResource WarningBrush}"
BorderThickness="1"
CornerRadius="3"
IsHitTestVisible="False"
Visibility="{Binding PickerVM.InError, Converter={StaticResource bool2VisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}">
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding PickerVM.InError, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
AutoReverse="True"
RepeatBehavior="Forever"
Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)"
To="{StaticResource YellowDark}"
Duration="0:0:0.8" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Grid>
</UserControl>

View File

@ -18,9 +18,8 @@
<RowDefinition Height="5" />
<RowDefinition Height="25" />
</Grid.RowDefinitions>
<Rectangle
<Rectangle Grid.Row="2"
x:Name="OverhangShadowRect"
Grid.Row="2"
Height="25"
VerticalAlignment="Top"
IsHitTestVisible="False">
@ -32,10 +31,8 @@
</Rectangle.Fill>
</Rectangle>
<Rectangle Grid.Row="1" Fill="{StaticResource BackgroundBrush}" />
<mahapps:MetroProgressBar
<mahapps:MetroProgressBar Grid.Row="1" Grid.RowSpan="2"
x:Name="BottomProgressBarDarkGlow"
Grid.Row="1"
Grid.RowSpan="2"
Height="16"
Margin="-4"
VerticalAlignment="Top"
@ -53,10 +50,8 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<mahapps:MetroProgressBar
<mahapps:MetroProgressBar Grid.Column="0" Grid.ColumnSpan="4"
x:Name="LargeProgressBar"
Grid.Column="0"
Grid.ColumnSpan="4"
Background="#AA121212"
BorderThickness="0"
Maximum="1">
@ -67,10 +62,8 @@
</LinearGradientBrush>
</mahapps:MetroProgressBar.Foreground>
</mahapps:MetroProgressBar>
<mahapps:MetroProgressBar
<mahapps:MetroProgressBar Grid.Column="0" Grid.ColumnSpan="4"
x:Name="LargeProgressBarTopGlow"
Grid.Column="0"
Grid.ColumnSpan="4"
Background="Transparent"
BorderThickness="0"
Maximum="1">
@ -81,9 +74,8 @@
</LinearGradientBrush>
</mahapps:MetroProgressBar.Foreground>
</mahapps:MetroProgressBar>
<TextBlock
<TextBlock Grid.Column="0"
x:Name="StatePrefixText"
Grid.Column="0"
Width="130"
Margin="0,0,0,0"
VerticalAlignment="Center"
@ -91,13 +83,11 @@
FontWeight="Black"
Foreground="{StaticResource ComplementaryBrush}"
TextAlignment="Right" />
<Rectangle
<Rectangle Grid.Column="0"
x:Name="PrefixSpacerRect"
Grid.Column="0"
Width="50" />
<TextBlock
<TextBlock Grid.Column="1"
x:Name="TitleText"
Grid.Column="1"
Margin="15,0,0,0"
VerticalAlignment="Center"
FontFamily="Lucida Sans"
@ -105,10 +95,8 @@
FontWeight="Black" />
<ContentControl Grid.Column="2" />
</Grid>
<mahapps:MetroProgressBar
<mahapps:MetroProgressBar Grid.Row="1" Grid.RowSpan="2"
x:Name="BottomProgressBarBrightGlow1"
Grid.Row="1"
Grid.RowSpan="2"
Height="5"
VerticalAlignment="Top"
Background="Transparent"
@ -119,10 +107,8 @@
<BlurEffect Radius="8" />
</mahapps:MetroProgressBar.Effect>
</mahapps:MetroProgressBar>
<mahapps:MetroProgressBar
<mahapps:MetroProgressBar Grid.Row="1" Grid.RowSpan="2"
x:Name="BottomProgressBarBrightGlow2"
Grid.Row="1"
Grid.RowSpan="2"
Height="5"
VerticalAlignment="Top"
Background="Transparent"
@ -133,20 +119,16 @@
<BlurEffect Radius="15" />
</mahapps:MetroProgressBar.Effect>
</mahapps:MetroProgressBar>
<mahapps:MetroProgressBar
<mahapps:MetroProgressBar Grid.Row="1" Grid.RowSpan="2"
x:Name="BottomProgressBar"
Grid.Row="1"
Grid.RowSpan="2"
Height="5"
VerticalAlignment="Top"
Background="Transparent"
BorderBrush="Transparent"
Foreground="{StaticResource SecondaryBrush}"
Maximum="1" />
<mahapps:MetroProgressBar
<mahapps:MetroProgressBar Grid.Row="1" Grid.RowSpan="2"
x:Name="BottomProgressBarHighlight"
Grid.Row="1"
Grid.RowSpan="2"
Height="5"
VerticalAlignment="Top"
Background="Transparent"

View File

@ -26,8 +26,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<Rectangle
Grid.Row="0"
<Rectangle Grid.Row="0"
Height="65"
Fill="{StaticResource LinesBrush}">
<Rectangle.Effect>
@ -37,24 +36,21 @@
ShadowDepth="10" />
</Rectangle.Effect>
</Rectangle>
<Grid
Grid.Row="1"
<Grid Grid.Row="1"
Margin="30"
Visibility="{Binding ShowHelp, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}, Converter={StaticResource bool2VisibilityConverter}}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock
Grid.Row="0"
<TextBlock Grid.Row="0"
Margin="0,0,0,10"
FontFamily="Lucida Sans"
FontSize="30"
FontWeight="Bold"
Foreground="{StaticResource YellowBrush}"
Text="UNDER MAINTENANCE" />
<TextBlock
Grid.Row="1"
<TextBlock Grid.Row="1"
FontFamily="Lucida Sans"
FontSize="15"
FontWeight="Bold"
@ -62,8 +58,7 @@
Text="When mods are updated and the old versions are taken down, Wabbajack can no longer install the modlist for you. &#x0a; &#x0a;Modlist authors need to download the new mod and confirm its correctness before the modlist can be made available again."
TextWrapping="WrapWithOverflow" />
</Grid>
<Viewbox
Grid.Row="1"
<Viewbox Grid.Row="1"
Margin="20"
VerticalAlignment="Top"
Visibility="{Binding ShowHelp, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}, Converter={StaticResource bool2VisibilityConverter}, ConverterParameter=False}">
@ -76,8 +71,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock
Grid.Row="0"
<TextBlock Grid.Row="0"
FontFamily="Lucida Sans"
FontSize="100"
FontWeight="Bold"
@ -90,8 +84,7 @@
ShadowDepth="10" />
</TextBlock.Effect>
</TextBlock>
<Button
Grid.Row="0"
<Button Grid.Row="0"
Width="45"
Height="45"
Margin="0,10"
@ -108,8 +101,7 @@
Height="35"
Kind="HelpCircle" />
</Button>
<TextBlock
Grid.Row="1"
<TextBlock Grid.Row="1"
FontFamily="Lucida Sans"
FontSize="100"
FontWeight="Bold"

View File

@ -22,11 +22,8 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock
<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3"
x:Name="TitleText"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="3"
HorizontalAlignment="Center"
VerticalAlignment="Bottom"
FontFamily="Lucida Sans"
@ -36,17 +33,14 @@
<DropShadowEffect BlurRadius="25" Opacity="0.5" />
</TextBlock.Effect>
</TextBlock>
<Grid
Grid.Row="1"
Grid.Column="0"
<Grid Grid.Row="1" Grid.Column="0"
VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Button
<Button Grid.Row="0"
x:Name="BackButton"
Grid.Row="0"
Width="55"
Height="55"
Style="{StaticResource CircleButtonStyle}">
@ -56,15 +50,12 @@
Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type Button}}}"
Kind="ArrowLeft" />
</Button>
<TextBlock
Grid.Row="1"
<TextBlock Grid.Row="1"
Margin="0,10,0,0"
HorizontalAlignment="Center"
Text="Main Menu" />
</Grid>
<Grid
Grid.Row="1"
Grid.Column="1"
<Grid Grid.Row="1" Grid.Column="1"
VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
@ -81,15 +72,12 @@
Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type Button}}}"
Kind="FolderMove" />
</Button>
<TextBlock
Grid.Row="1"
<TextBlock Grid.Row="1"
x:Name="ActionText"
Margin="0,10,0,0"
HorizontalAlignment="Center"
x:Name="ActionText" />
HorizontalAlignment="Center" />
</Grid>
<Grid
Grid.Row="1"
Grid.Column="2"
<Grid Grid.Row="1" Grid.Column="2"
VerticalAlignment="Center"
Background="Transparent">
<Grid.RowDefinitions>
@ -129,8 +117,7 @@
Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type Button}}}"
Kind="Check" />
</Button>
<TextBlock
Grid.Row="1"
<TextBlock Grid.Row="1"
Margin="0,10,0,0"
HorizontalAlignment="Center"
Text="Close" />

View File

@ -28,17 +28,10 @@
<ColumnDefinition Width="5*" />
<ColumnDefinition Width="5" />
</Grid.ColumnDefinitions>
<local:HeatedBackgroundView
x:Name="HeatedBackground"
Grid.Row="0"
Grid.RowSpan="3"
Grid.Column="0"
Grid.ColumnSpan="5" />
<Border
<local:HeatedBackgroundView Grid.Row="0" Grid.RowSpan="3" Grid.Column="0" Grid.ColumnSpan="5"
x:Name="HeatedBackground" />
<Border Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2"
x:Name="ModlistDetailsBackground"
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="2"
Margin="1,1,5,0"
Background="{StaticResource WindowBackgroundBrush}"
BorderThickness="0,0,1,1">
@ -49,34 +42,22 @@
</LinearGradientBrush>
</Border.BorderBrush>
</Border>
<Border
<Border Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2"
x:Name="ModlistDetailsHeatBorder"
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="2"
Margin="1,1,5,0"
BorderBrush="{StaticResource HeatedBorderBrush}"
BorderThickness="1" />
<Border
Grid.Row="1"
Grid.Column="3"
<Border Grid.Row="1" Grid.Column="3"
BorderBrush="{StaticResource BorderInterestBrush}"
BorderThickness="1,0,1,1">
<local:DetailImageView x:Name="DetailImage" BorderThickness="0" />
</Border>
<!-- Comes after image area so shadow can overlay -->
<local:TopProgressView
<local:TopProgressView Grid.Row="0" Grid.RowSpan="2" Grid.Column="0" Grid.ColumnSpan="5"
x:Name="TopProgressBar"
Grid.Row="0"
Grid.RowSpan="2"
Grid.Column="0"
Grid.ColumnSpan="5"
OverhangShadow="True" />
<Button
<Button Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="5"
x:Name="BackButton"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="5"
Width="30"
Height="30"
Margin="12,5,0,0"
@ -86,10 +67,8 @@
ToolTip="Back to main menu">
<icon:PackIconMaterial Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Kind="ArrowLeft" />
</Button>
<ScrollViewer
<ScrollViewer Grid.Row="1" Grid.Column="1"
x:Name="SettingsScrollViewer"
Grid.Row="1"
Grid.Column="1"
Margin="5"
Background="Transparent"
HorizontalScrollBarVisibility="Disabled"
@ -122,7 +101,10 @@
<TextBlock Margin="{StaticResource TitleMargin}" Text="ModList Name" />
<TextBox x:Name="ModListNameSetting" Style="{StaticResource ValueStyle}" />
<TextBlock Margin="{StaticResource TitleMargin}" Text="Version" />
<TextBox x:Name="VersionSetting" Style="{StaticResource ValueStyle}" MaxLength="9" />
<TextBox
x:Name="VersionSetting"
MaxLength="9"
Style="{StaticResource ValueStyle}" />
<TextBlock Margin="{StaticResource TitleMargin}" Text="Author" />
<TextBox x:Name="AuthorNameSetting" Style="{StaticResource ValueStyle}" />
<TextBlock Margin="{StaticResource TitleMargin}" Text="Description" />
@ -146,23 +128,18 @@
Margin="{StaticResource TitleMargin}"
Text="Readme"
ToolTip="Link to the Readme." />
<TextBox x:Name="ReadmeSetting" Style="{StaticResource ValueStyle}"/>
<CheckBox x:Name="NSFWSetting"
Content="NSFW"
ToolTip="Select this if your Modlist has adult themed content such as SexLab or other mods involving sexual acts. Nude body replacer do not fall under this category neither do revealing outfits or gore."/>
<TextBox x:Name="ReadmeSetting" Style="{StaticResource ValueStyle}" />
<CheckBox
x:Name="NSFWSetting"
Content="NSFW"
ToolTip="Select this if your Modlist has adult themed content such as SexLab or other mods involving sexual acts. Nude body replacer do not fall under this category neither do revealing outfits or gore." />
</StackPanel>
</ScrollViewer>
<Border
<Border Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="5"
x:Name="BottomBarBackground"
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="5"
Margin="5"
Background="{StaticResource WindowBackgroundBrush}" />
<Grid
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="5"
<Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="5"
MaxWidth="1000">
<Grid
x:Name="BottomCompilerSettingsGrid"
@ -180,19 +157,15 @@
<ColumnDefinition Width="20" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid
Grid.Row="0"
Grid.RowSpan="5"
Grid.Column="0"
<Grid Grid.Row="0" Grid.RowSpan="5" Grid.Column="0"
Margin="15"
VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<local:ImageRadioButtonView
<local:ImageRadioButtonView Grid.Row="0"
x:Name="MO2CompilerButton"
Grid.Row="0"
Height="35"
Margin="4"
IsChecked="{Binding SelectedCompilerType, Converter={StaticResource EqualsToBoolConverter}, ConverterParameter={x:Static wabbacommon:ModManager.MO2}}">
@ -201,28 +174,20 @@
</local:ImageRadioButtonView.Image>
</local:ImageRadioButtonView>
</Grid>
<ContentPresenter
x:Name="CustomCompilerSettingsPresenter"
Grid.Row="1"
Grid.Column="1">
<ContentPresenter Grid.Row="1" Grid.Column="1"
x:Name="CustomCompilerSettingsPresenter">
<ContentPresenter.Resources>
<DataTemplate DataType="{x:Type local:MO2CompilerVM}">
<local:MO2CompilerConfigView />
</DataTemplate>
</ContentPresenter.Resources>
</ContentPresenter>
<local:BeginButton
x:Name="BeginButton"
Grid.Row="0"
Grid.RowSpan="3"
Grid.Column="5" />
<local:BeginButton Grid.Row="0" Grid.RowSpan="3" Grid.Column="5"
x:Name="BeginButton" />
</Grid>
</Grid>
<Grid
<Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="5"
x:Name="MidCompilationGrid"
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="5"
Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4*" />
@ -230,18 +195,16 @@
<ColumnDefinition Width="3*" />
</Grid.ColumnDefinitions>
<local:LogView x:Name="LogView" Grid.Column="0" />
<local:CpuView
<local:CpuView Grid.Column="2"
x:Name="CpuView"
Grid.Column="2"
ViewModel="{Binding}" />
<local:AttentionBorder x:Name="UserInterventionsControl" Grid.Column="2">
<Grid>
<local:ConfirmationInterventionView DataContext="{Binding ActiveGlobalUserIntervention}" Visibility="{Binding ActiveGlobalUserIntervention, Converter={StaticResource IsTypeVisibilityConverter}, ConverterParameter={x:Type common:ConfirmationIntervention}}" />
</Grid>
</local:AttentionBorder>
<local:CompilationCompleteView
<local:CompilationCompleteView Grid.Column="2"
x:Name="CompilationComplete"
Grid.Column="2"
ViewModel="{Binding}" />
</Grid>
</Grid>

View File

@ -20,56 +20,44 @@
<RowDefinition Height="40" />
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<TextBlock
Grid.Row="0"
Grid.Column="0"
<TextBlock Grid.Row="0" Grid.Column="0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
FontSize="14"
Text="Modlist Location"
TextAlignment="Center"
ToolTip="The MO2 modlist.txt file you want to use as your source" />
<local:FilePicker
Grid.Row="0"
Grid.Column="2"
<local:FilePicker Grid.Row="0" Grid.Column="2"
Height="30"
VerticalAlignment="Center"
PickerVM="{Binding ModListLocation}"
FontSize="14"
PickerVM="{Binding ModListLocation}"
ToolTip="The MO2 modlist.txt file you want to use as your source" />
<TextBlock
Grid.Row="1"
Grid.Column="0"
<TextBlock Grid.Row="1" Grid.Column="0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
FontSize="14"
Text="Download Location"
TextAlignment="Center"
ToolTip="The folder where MO2 downloads your mods." />
<local:FilePicker
Grid.Row="1"
Grid.Column="2"
<local:FilePicker Grid.Row="1" Grid.Column="2"
Height="30"
VerticalAlignment="Center"
PickerVM="{Binding DownloadLocation}"
FontSize="14"
PickerVM="{Binding DownloadLocation}"
ToolTip="The folder where MO2 downloads your mods." />
<TextBlock
Grid.Row="2"
Grid.Column="0"
<TextBlock Grid.Row="2" Grid.Column="0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
FontSize="14"
Text="Output Location"
TextAlignment="Center"
ToolTip="The folder to place the resulting modlist.wabbajack file" />
<local:FilePicker
Grid.Row="2"
Grid.Column="2"
<local:FilePicker Grid.Row="2" Grid.Column="2"
Height="30"
VerticalAlignment="Center"
PickerVM="{Binding Parent.OutputLocation}"
FontSize="14"
PickerVM="{Binding Parent.OutputLocation}"
ToolTip="The folder to place the resulting modlist.wabbajack file" />
</Grid>
</UserControl>

View File

@ -23,11 +23,8 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock
<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4"
x:Name="TitleText"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="4"
HorizontalAlignment="Center"
VerticalAlignment="Bottom"
FontFamily="Lucida Sans"
@ -37,17 +34,14 @@
<DropShadowEffect BlurRadius="25" Opacity="0.5" />
</TextBlock.Effect>
</TextBlock>
<Grid
Grid.Row="1"
Grid.Column="0"
<Grid Grid.Row="1" Grid.Column="0"
VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Button
<Button Grid.Row="0"
x:Name="BackButton"
Grid.Row="0"
Width="50"
Height="50"
Style="{StaticResource CircleButtonStyle}">
@ -57,15 +51,12 @@
Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type Button}}}"
Kind="ArrowLeft" />
</Button>
<TextBlock
Grid.Row="1"
<TextBlock Grid.Row="1"
Margin="0,10,0,0"
HorizontalAlignment="Center"
Text="Main Menu" />
</Grid>
<Grid
Grid.Row="1"
Grid.Column="1"
<Grid Grid.Row="1" Grid.Column="1"
VerticalAlignment="Center"
Visibility="{Binding InstallerSupportsAfterInstallNavigation, Converter={StaticResource bool2VisibilityConverter}}">
<Grid.RowDefinitions>
@ -83,15 +74,12 @@
Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type Button}}}"
Kind="FolderMove" />
</Button>
<TextBlock
Grid.Row="1"
<TextBlock Grid.Row="1"
Margin="0,10,0,0"
HorizontalAlignment="Center"
Text="Install Folder" />
</Grid>
<Grid
Grid.Row="1"
Grid.Column="2"
<Grid Grid.Row="1" Grid.Column="2"
VerticalAlignment="Center"
Background="Transparent">
<Grid.RowDefinitions>
@ -109,15 +97,12 @@
Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type Button}}}"
Kind="ReadmeBrands" />
</Button>
<TextBlock
Grid.Row="1"
<TextBlock Grid.Row="1"
Margin="0,10,0,0"
HorizontalAlignment="Center"
Text="Readme" />
</Grid>
<Grid
Grid.Row="1"
Grid.Column="3"
<Grid Grid.Row="1" Grid.Column="3"
VerticalAlignment="Center"
Background="Transparent">
<Grid.RowDefinitions>
@ -135,8 +120,7 @@
Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type Button}}}"
Kind="Check" />
</Button>
<TextBlock
Grid.Row="1"
<TextBlock Grid.Row="1"
Margin="0,10,0,0"
HorizontalAlignment="Center"
Text="Close" />

View File

@ -0,0 +1,99 @@
<rxui:ReactiveUserControl
x:Class="Wabbajack.InstallationConfigurationView"
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:icon="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:local="clr-namespace:Wabbajack"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:rxui="http://reactiveui.net"
d:DesignHeight="450"
d:DesignWidth="800"
x:TypeArguments="local:InstallerVM"
mc:Ignorable="d">
<Grid Background="{StaticResource WindowBackgroundBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0"
Margin="5"
VerticalAlignment="Center"
Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="5" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="120" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Rectangle x:Name="InstallConfigSpacer" Grid.Row="0" />
<TextBlock Grid.Row="1" Grid.Column="0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
FontSize="14"
Text="Target Modlist"
TextAlignment="Center" />
<local:FilePicker Grid.Row="1" Grid.Column="2"
x:Name="ModListLocationPicker"
Height="30"
VerticalAlignment="Center"
FontSize="14" />
<ContentPresenter Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="3"
x:Name="InstallerCustomizationContent"
VerticalAlignment="Top">
<ContentPresenter.Resources>
<DataTemplate DataType="{x:Type local:MO2InstallerVM}">
<local:MO2InstallerConfigView />
</DataTemplate>
</ContentPresenter.Resources>
<ContentPresenter.Style>
<Style TargetType="ContentPresenter">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=Content}" Value="{x:Null}">
<Setter Property="ContentPresenter.ContentTemplate">
<Setter.Value>
<DataTemplate>
<Rectangle Height="74" />
</DataTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentPresenter.Style>
</ContentPresenter>
</Grid>
<Grid Grid.Column="2" Margin="0,0,25,0">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<local:BeginButton Grid.Row="1"
x:Name="BeginButton"
HorizontalAlignment="Right"
VerticalAlignment="Center" />
<icon:PackIconFontAwesome Grid.Row="2"
x:Name="ErrorSummaryIconGlow"
HorizontalAlignment="Center"
Foreground="{StaticResource WarningBrush}"
Kind="ExclamationTriangleSolid"
Opacity="0.6">
<icon:PackIconFontAwesome.Effect>
<BlurEffect Radius="15" />
</icon:PackIconFontAwesome.Effect>
</icon:PackIconFontAwesome>
<icon:PackIconFontAwesome Grid.Row="2"
x:Name="ErrorSummaryIcon"
HorizontalAlignment="Center"
Foreground="{StaticResource WarningBrush}"
Kind="ExclamationTriangleSolid" />
</Grid>
</Grid>
</rxui:ReactiveUserControl>

View File

@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using ReactiveUI;
namespace Wabbajack
{
/// <summary>
/// Interaction logic for InstallationConfigurationView.xaml
/// </summary>
public partial class InstallationConfigurationView : ReactiveUserControl<InstallerVM>
{
public InstallationConfigurationView()
{
InitializeComponent();
this.WhenActivated(dispose =>
{
this.WhenAny(x => x.ViewModel.Installer.ConfigVisualVerticalOffset)
.Select(i => (double)i)
.BindToStrict(this, x => x.InstallConfigSpacer.Height)
.DisposeWith(dispose);
this.WhenAny(x => x.ViewModel.ModListLocation)
.BindToStrict(this, x => x.ModListLocationPicker.PickerVM)
.DisposeWith(dispose);
this.WhenAny(x => x.ViewModel.Installer)
.BindToStrict(this, x => x.InstallerCustomizationContent.Content)
.DisposeWith(dispose);
this.WhenAny(x => x.ViewModel.BeginCommand)
.BindToStrict(this, x => x.BeginButton.Command)
.DisposeWith(dispose);
// Error icon display
var vis = this.WhenAny(x => x.ViewModel.Installer.CanInstall)
.Select(err => err.Failed ? Visibility.Visible : Visibility.Hidden)
.Replay(1)
.RefCount();
vis.BindToStrict(this, x => x.ErrorSummaryIconGlow.Visibility)
.DisposeWith(dispose);
vis.BindToStrict(this, x => x.ErrorSummaryIcon.Visibility)
.DisposeWith(dispose);
this.WhenAny(x => x.ViewModel.Installer.CanInstall)
.Select(x => x.Reason)
.BindToStrict(this, x => x.ErrorSummaryIcon.ToolTip)
.DisposeWith(dispose);
});
}
}
}

View File

@ -31,10 +31,8 @@
<RowDefinition Height="4*" />
<RowDefinition Height="*" MinHeight="175" />
</Grid.RowDefinitions>
<Rectangle
x:Name="BorderEdgeFadeDown"
Grid.Row="1"
Grid.RowSpan="2">
<Rectangle Grid.Row="1" Grid.RowSpan="2"
x:Name="BorderEdgeFadeDown">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="#191919" />
@ -42,13 +40,10 @@
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<local:HeatedBackgroundView
x:Name="HeatedBackground"
Grid.Row="0"
Grid.RowSpan="3" />
<Grid
<local:HeatedBackgroundView Grid.Row="0" Grid.RowSpan="3"
x:Name="HeatedBackground" />
<Grid Grid.Row="1"
x:Name="Slideshow"
Grid.Row="1"
Margin="5,0,5,5">
<Border BorderBrush="{StaticResource BorderInterestBrush}" BorderThickness="1,0,1,1">
<Grid>
@ -105,9 +100,8 @@
</Style.Triggers>
</Style>
</Grid.Style>
<Button
<Button Grid.Column="3"
x:Name="SkipSlideButton"
Grid.Column="3"
Width="60"
Height="60"
Margin="6"
@ -119,9 +113,8 @@
Height="28"
Kind="ChevronRightSolid" />
</Button>
<ToggleButton
<ToggleButton Grid.Column="2"
x:Name="PlayPauseButton"
Grid.Column="2"
Margin="6"
Background="{StaticResource BackgroundBrush}"
Style="{StaticResource SlideshowButton}">
@ -138,9 +131,8 @@
</icon:PackIconMaterial.Style>
</icon:PackIconMaterial>
</ToggleButton>
<Button
<Button Grid.Column="1"
x:Name="OpenWebsite"
Grid.Column="1"
Margin="6"
Background="{StaticResource BackgroundBrush}"
Style="{StaticResource SlideshowButton}"
@ -150,9 +142,8 @@
Height="28"
Kind="Web" />
</Button>
<ToggleButton
<ToggleButton Grid.Column="0"
x:Name="ShowNSFWButton"
Grid.Column="0"
Background="{StaticResource BackgroundBrush}"
Style="{StaticResource SlideshowButton}">
<Grid>
@ -177,10 +168,8 @@
</Grid>
</Grid>
<!-- Comes after slideshow control, so that any effects/overlap goes on top -->
<local:TopProgressView
x:Name="TopProgressBar"
Grid.Row="0"
Grid.RowSpan="2">
<local:TopProgressView Grid.Row="0" Grid.RowSpan="2"
x:Name="TopProgressBar">
<!-- Readd when Pause/Stop implementations added -->
<!--<Button Grid.Column="2"
ToolTip="Pause Installation"
@ -201,10 +190,8 @@
Kind="TimesCircleSolid" />
</Button>-->
</local:TopProgressView>
<Button
<Button Grid.Row="0" Grid.RowSpan="2"
x:Name="BackButton"
Grid.Row="0"
Grid.RowSpan="2"
Width="30"
Height="30"
Margin="7,5,0,0"
@ -215,9 +202,8 @@
<icon:PackIconMaterial Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Kind="ArrowLeft" />
</Button>
<!-- Bottom Area -->
<Grid
<Grid Grid.Row="2"
x:Name="BottomButtonInputGrid"
Grid.Row="2"
Margin="5,0,5,5"
ClipToBounds="True">
<Grid.ColumnDefinitions>
@ -231,9 +217,8 @@
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Button
<Button Grid.Row="0"
x:Name="OpenReadmePreInstallButton"
Grid.Row="0"
Margin="30,5"
FontSize="20"
Style="{StaticResource LargeButtonStyle}"
@ -243,22 +228,19 @@
<ColumnDefinition Width="30" />
<ColumnDefinition Width="82" />
</Grid.ColumnDefinitions>
<icon:PackIconFontAwesome
Grid.Column="0"
<icon:PackIconFontAwesome Grid.Column="0"
Width="30"
Height="30"
VerticalAlignment="Center"
Kind="ReadmeBrands" />
<TextBlock
Grid.Column="1"
<TextBlock Grid.Column="1"
Margin="10,0,0,0"
VerticalAlignment="Center"
Text="Readme" />
</Grid>
</Button>
<Button
<Button Grid.Row="1"
x:Name="VisitWebsitePreInstallButton"
Grid.Row="1"
Margin="30,5"
FontSize="20"
Style="{StaticResource LargeButtonStyle}"
@ -268,22 +250,19 @@
<ColumnDefinition Width="30" />
<ColumnDefinition Width="82" />
</Grid.ColumnDefinitions>
<icon:PackIconMaterial
Grid.Column="0"
<icon:PackIconMaterial Grid.Column="0"
Width="30"
Height="30"
VerticalAlignment="Center"
Kind="Web" />
<TextBlock
Grid.Column="1"
<TextBlock Grid.Column="1"
Margin="10,0,0,0"
VerticalAlignment="Center"
Text="Website" />
</Grid>
</Button>
<Button
<Button Grid.Row="2"
x:Name="ShowManifestPreInstallButton"
Grid.Row="2"
Margin="30,5"
FontSize="20"
Style="{StaticResource LargeButtonStyle}"
@ -293,100 +272,24 @@
<ColumnDefinition Width="30" />
<ColumnDefinition Width="82" />
</Grid.ColumnDefinitions>
<icon:PackIconOcticons
Grid.Column="0"
<icon:PackIconOcticons Grid.Column="0"
Width="30"
Height="30"
VerticalAlignment="Center"
Kind="Checklist" />
<TextBlock
Grid.Column="1"
<TextBlock Grid.Column="1"
Margin="10,0,0,0"
VerticalAlignment="Center"
Text="Manifest" />
</Grid>
</Button>
</Grid>
<Grid
<local:InstallationConfigurationView Grid.Column="2"
x:Name="InstallationConfigurationView"
Grid.Column="2"
Background="{StaticResource WindowBackgroundBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid
Grid.Column="0"
Margin="5"
VerticalAlignment="Center"
Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="5" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="120" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Rectangle x:Name="InstallConfigSpacer" Grid.Row="0" />
<TextBlock
Grid.Row="1"
Grid.Column="0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
FontSize="14"
Text="Target Modlist"
TextAlignment="Center" />
<local:FilePicker
x:Name="ModListLocationPicker"
Grid.Row="1"
Grid.Column="2"
Height="30"
VerticalAlignment="Center"
FontSize="14" />
<ContentPresenter
x:Name="InstallerCustomizationContent"
Grid.Row="3"
Grid.Column="0"
Grid.ColumnSpan="3"
VerticalAlignment="Top">
<ContentPresenter.Resources>
<DataTemplate DataType="{x:Type local:MO2InstallerVM}">
<local:MO2InstallerConfigView />
</DataTemplate>
</ContentPresenter.Resources>
<ContentPresenter.Style>
<Style TargetType="ContentPresenter">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=Content}" Value="{x:Null}">
<Setter Property="ContentPresenter.ContentTemplate">
<Setter.Value>
<DataTemplate>
<Rectangle Height="74" />
</DataTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentPresenter.Style>
</ContentPresenter>
</Grid>
<local:BeginButton
x:Name="BeginButton"
Grid.Column="2"
Margin="0,0,25,0"
HorizontalAlignment="Right"
VerticalAlignment="Center" />
</Grid>
ViewModel="{Binding}" />
</Grid>
<Grid
<Grid Grid.Row="2"
x:Name="MidInstallDisplayGrid"
Grid.Row="2"
Margin="5,0,5,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4*" />
@ -394,13 +297,11 @@
<ColumnDefinition Width="3*" />
</Grid.ColumnDefinitions>
<local:LogView x:Name="LogView" Grid.Column="0" />
<local:CpuView
<local:CpuView Grid.Column="2"
x:Name="CpuView"
Grid.Column="2"
ViewModel="{Binding}" />
<local:AttentionBorder
<local:AttentionBorder Grid.Column="2"
x:Name="UserInterventionsControl"
Grid.Column="2"
Content="{Binding ActiveGlobalUserIntervention}">
<local:AttentionBorder.Resources>
<DataTemplate DataType="{x:Type common:ConfirmationIntervention}">
@ -411,9 +312,8 @@
</DataTemplate>
</local:AttentionBorder.Resources>
</local:AttentionBorder>
<local:InstallationCompleteView
<local:InstallationCompleteView Grid.Column="2"
x:Name="InstallComplete"
Grid.Column="2"
ViewModel="{Binding}" />
</Grid>
</Grid>

View File

@ -110,19 +110,6 @@ namespace Wabbajack
.Select(started => started ? Visibility.Collapsed : Visibility.Visible)
.BindToStrict(this, x => x.InstallationConfigurationView.Visibility)
.DisposeWith(dispose);
this.WhenAny(x => x.ViewModel.Installer.ConfigVisualVerticalOffset)
.Select(i => (double)i)
.BindToStrict(this, x => x.InstallConfigSpacer.Height)
.DisposeWith(dispose);
this.WhenAny(x => x.ViewModel.ModListLocation)
.BindToStrict(this, x => x.ModListLocationPicker.PickerVM)
.DisposeWith(dispose);
this.WhenAny(x => x.ViewModel.Installer)
.BindToStrict(this, x => x.InstallerCustomizationContent.Content)
.DisposeWith(dispose);
this.WhenAny(x => x.ViewModel.BeginCommand)
.BindToStrict(this, x => x.BeginButton.Command)
.DisposeWith(dispose);
// Bottom mid-install display
this.WhenAny(x => x.ViewModel.StartedInstallation)

View File

@ -20,39 +20,29 @@
<RowDefinition Height="40" />
<RowDefinition Height="20" />
</Grid.RowDefinitions>
<TextBlock
Grid.Row="0"
Grid.Column="0"
<TextBlock Grid.Row="0" Grid.Column="0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
FontSize="14"
Text="Installation Location"
TextAlignment="Center" />
<local:FilePicker
Grid.Row="0"
Grid.Column="2"
<local:FilePicker Grid.Row="0" Grid.Column="2"
Height="30"
VerticalAlignment="Center"
FontSize="14"
PickerVM="{Binding Location}" />
<TextBlock
Grid.Row="1"
Grid.Column="0"
<TextBlock Grid.Row="1" Grid.Column="0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
FontSize="14"
Text="Download Location"
TextAlignment="Center" />
<local:FilePicker
Grid.Row="1"
Grid.Column="2"
<local:FilePicker Grid.Row="1" Grid.Column="2"
Height="30"
VerticalAlignment="Center"
FontSize="14"
PickerVM="{Binding DownloadLocation}" />
<CheckBox
Grid.Row="2"
Grid.Column="2"
<CheckBox Grid.Row="2" Grid.Column="2"
HorizontalAlignment="Right"
Content="Overwrite Installation"
IsChecked="{Binding AutomaticallyOverwrite}"

View File

@ -1,12 +1,14 @@
<UserControl x:Class="Wabbajack.BethesdaNetLoginView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:wabbajack="clr-namespace:Wabbajack"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl
x:Class="Wabbajack.BethesdaNetLoginView"
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:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:wabbajack="clr-namespace:Wabbajack"
d:DesignHeight="450"
d:DesignWidth="800"
mc:Ignorable="d">
<UserControl.Resources>
<Color x:Key="TextBackgroundFill">#92000000</Color>
<SolidColorBrush x:Key="TextBackgroundFillBrush" Color="{StaticResource TextBackgroundFill}" />
@ -46,14 +48,11 @@
<RowDefinition Height="47" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<wabbajack:TopProgressView
<wabbajack:TopProgressView Grid.Row="0" Grid.RowSpan="2"
Title="{Binding Instructions}"
Grid.Row="0"
Grid.RowSpan="2"
ShadowMargin="False" />
<Button
<Button Grid.Row="0"
x:Name="BackButton"
Grid.Row="0"
Width="30"
Height="30"
Margin="7,5,0,0"
@ -66,15 +65,20 @@
</Button>
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="100"></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition Height="100" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock TextWrapping="Wrap" Margin = "10" Grid.Row="0" Grid.ColumnSpan="2" FontSize="20" Text="Login with your game of choice. Clicking the button will launch the game. Once at the main menu, load the `Mods` menu. The game will close once you've logged into Bethesda.NET"></TextBlock>
<Button Grid.Row="1" Grid.Column="0" Command="{Binding LoginViaSkyrimSE}">
<TextBlock Grid.Row="0" Grid.ColumnSpan="2"
Margin="10"
FontSize="20"
Text="Login with your game of choice. Clicking the button will launch the game. Once at the main menu, load the `Mods` menu. The game will close once you've logged into Bethesda.NET"
TextWrapping="Wrap" />
<Button Grid.Row="1" Grid.Column="0"
Command="{Binding LoginViaSkyrimSE}">
<Image Source="../../Resources/GameGridIcons/SkyrimSpecialEdition.png">
<Image.Style>
<Style TargetType="Image">
@ -87,7 +91,8 @@
</Image.Style>
</Image>
</Button>
<Button Grid.Row="1" Grid.Column="1" Command="{Binding LoginViaFallout4}">
<Button Grid.Row="1" Grid.Column="1"
Command="{Binding LoginViaFallout4}">
<Image Source="../../Resources/GameGridIcons/Fallout4.png">
<Image.Style>
<Style TargetType="Image">

View File

@ -23,40 +23,28 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<TextBlock
<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3"
x:Name="ShortDescription"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="3"
Margin="0,0,0,5"
FontFamily="Lucida Sans"
FontSize="14"
FontWeight="Bold"
TextWrapping="WrapWithOverflow" />
<TextBlock
<TextBlock Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3"
x:Name="ExtendedDescription"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="3"
TextWrapping="WrapWithOverflow" />
<CheckBox
<CheckBox Grid.Row="2" Grid.Column="2"
x:Name="AutoOverwriteCheckbox"
Grid.Row="2"
Grid.Column="2"
Margin="4"
HorizontalAlignment="Right"
Content="Remember"
IsChecked="{Binding Installer.AutomaticallyOverwrite}"
ToolTip="If installing over an existing installation next time, automatically replace it without asking permission." />
<Button
<Button Grid.Row="3" Grid.Column="0"
x:Name="CancelButton"
Grid.Row="3"
Grid.Column="0"
Content="Cancel" />
<Button
<Button Grid.Row="3" Grid.Column="2"
x:Name="ConfirmButton"
Grid.Row="3"
Grid.Column="2"
Content="Confirm" />
</Grid>
</rxui:ReactiveUserControl>

View File

@ -22,31 +22,21 @@
<RowDefinition Height="4*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock
<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3"
x:Name="ShortDescription"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="3"
Margin="0,0,0,5"
FontFamily="Lucida Sans"
FontSize="14"
FontWeight="Bold"
TextWrapping="WrapWithOverflow" />
<TextBlock
<TextBlock Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3"
x:Name="ExtendedDescription"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="3"
TextWrapping="WrapWithOverflow" />
<Button
<Button Grid.Row="2" Grid.Column="0"
x:Name="CancelButton"
Grid.Row="2"
Grid.Column="0"
Content="Cancel" />
<Button
<Button Grid.Row="2" Grid.Column="2"
x:Name="ConfirmButton"
Grid.Row="2"
Grid.Column="2"
Content="Confirm" />
</Grid>
</rxui:ReactiveUserControl>

View File

@ -13,8 +13,7 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button
Grid.Column="0"
<Button Grid.Column="0"
Width="40"
Height="35"
Click="GitHub_Click"
@ -24,8 +23,7 @@
Height="25"
Kind="GitHub" />
</Button>
<Button
Grid.Column="1"
<Button Grid.Column="1"
Width="40"
Height="35"
Margin="4,0,0,0"
@ -36,8 +34,7 @@
Height="25"
Kind="Patreon" />
</Button>
<Button
Grid.Column="2"
<Button Grid.Column="2"
Width="40"
Height="35"
Click="Discord_Click"

View File

@ -39,7 +39,7 @@
</DataTemplate>
<DataTemplate DataType="{x:Type local:BethesdaNetLoginVM}">
<local:BethesdaNetLoginView />
</DataTemplate>
</DataTemplate>
<DataTemplate DataType="{x:Type local:SettingsVM}">
<local:SettingsView ViewModel="{Binding}" />
</DataTemplate>
@ -61,8 +61,7 @@
Click to copy to clipboard</TextBlock>
</Button.ToolTip>
</Button>
<Button
Grid.Column="1"
<Button Grid.Column="1"
Margin="5,0"
Command="{Binding OpenSettingsCommand}">
<icon:PackIconMaterial
@ -70,8 +69,7 @@
Height="17"
Kind="Cog" />
</Button>
<Button
Grid.Column="1"
<Button Grid.Column="1"
Margin="5,0"
Command="{Binding OpenTerminalCommand}">
<icon:PackIconMaterial

View File

@ -1,78 +1,131 @@
<reactiveUi:ReactiveUserControl x:TypeArguments="local:ManifestVM" x:Class="Wabbajack.ManifestView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Wabbajack"
xmlns:reactiveUi="http://reactiveui.net"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<reactiveUi:ReactiveUserControl
x:Class="Wabbajack.ManifestView"
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"
xmlns:reactiveUi="http://reactiveui.net"
d:DesignHeight="450"
d:DesignWidth="800"
x:TypeArguments="local:ManifestVM"
mc:Ignorable="d">
<Grid>
<ScrollViewer MouseDown="ScrollViewer_MouseDown" MouseUp="ScrollViewer_MouseUp" MouseMove="ScrollViewer_MouseMove">
<ScrollViewer.Resources>
<Style x:Key="HeaderStyle" TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="#03DAC6"/>
</Style>
<Style x:Key="HyperlinkStyle" TargetType="{x:Type Hyperlink}">
<Setter Property="Foreground" Value="#BB76FC"/>
</Style>
<Style x:Key="ModTitleStyle" TargetType="{x:Type TextBox}">
<Setter Property="Foreground" Value="#C7FC86"/>
<Setter Property="Background" Value="Transparent"/>
</Style>
<SolidColorBrush x:Key="SearchBarBrush" Color="White" Opacity="50"/>
</ScrollViewer.Resources>
<StackPanel Margin="8" x:Name="DynamicStackPanel">
<TextBlock x:Name="Name" FontSize="32" HorizontalAlignment="Center" Style="{StaticResource HeaderStyle}"/>
<TextBlock x:Name="Version" FontSize="14" Padding="0 12 0 3"/>
<TextBlock x:Name="Author" FontSize="14" Padding="0 3 0 3"/>
<TextBlock x:Name="Description" FontSize="18" TextWrapping="Wrap"/>
<ScrollViewer
MouseDown="ScrollViewer_MouseDown"
MouseMove="ScrollViewer_MouseMove"
MouseUp="ScrollViewer_MouseUp">
<ScrollViewer.Resources>
<Style x:Key="HeaderStyle" TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="#03DAC6" />
</Style>
<Style x:Key="HyperlinkStyle" TargetType="{x:Type Hyperlink}">
<Setter Property="Foreground" Value="#BB76FC" />
</Style>
<Style x:Key="ModTitleStyle" TargetType="{x:Type TextBox}">
<Setter Property="Foreground" Value="#C7FC86" />
<Setter Property="Background" Value="Transparent" />
</Style>
<SolidColorBrush
x:Key="SearchBarBrush"
Opacity="50"
Color="White" />
</ScrollViewer.Resources>
<StackPanel x:Name="DynamicStackPanel" Margin="8">
<TextBlock
x:Name="Name"
HorizontalAlignment="Center"
FontSize="32"
Style="{StaticResource HeaderStyle}" />
<TextBlock
x:Name="Version"
Padding="0,12,0,3"
FontSize="14" />
<TextBlock
x:Name="Author"
Padding="0,3,0,3"
FontSize="14" />
<TextBlock
x:Name="Description"
FontSize="18"
TextWrapping="Wrap" />
<TextBlock x:Name="InstallSize" Padding="0 24 0 0" FontSize="24"/>
<TextBlock x:Name="DownloadSize" FontSize="24" Padding="0 0 0 12"/>
<TextBlock
x:Name="InstallSize"
Padding="0,24,0,0"
FontSize="24" />
<TextBlock
x:Name="DownloadSize"
Padding="0,0,0,12"
FontSize="24" />
<TextBlock Padding="6 0 0 0" FontSize="20" Text="Search:"/>
<TextBox x:Name="SearchBar" BorderThickness="2" BorderBrush="{StaticResource SearchBarBrush}" FontSize="16" MaxLength="100"/>
<TextBlock
Padding="6,0,0,0"
FontSize="20"
Text="Search:" />
<TextBox
x:Name="SearchBar"
BorderBrush="{StaticResource SearchBarBrush}"
BorderThickness="2"
FontSize="16"
MaxLength="100" />
<StackPanel Margin="6 6 0 0" Orientation="Horizontal">
<TextBlock Padding="0 1 0 0" FontSize="14">Order by: </TextBlock>
<Button x:Name="OrderByNameButton" Padding="4 0 4 0">
<TextBlock FontSize="14">Name</TextBlock>
</Button>
<Button x:Name="OrderBySizeButton">
<TextBlock FontSize="14">Size</TextBlock>
</Button>
<StackPanel Margin="6,6,0,0" Orientation="Horizontal">
<TextBlock Padding="0,1,0,0" FontSize="14">Order by:</TextBlock>
<Button x:Name="OrderByNameButton" Padding="4,0,4,0">
<TextBlock FontSize="14">Name</TextBlock>
</Button>
<Button x:Name="OrderBySizeButton">
<TextBlock FontSize="14">Size</TextBlock>
</Button>
</StackPanel>
<ItemsControl x:Name="ModsList" Padding="0,3,0,6">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Margin="0,6,0,6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBox Grid.Row="0" Grid.Column="0"
Padding="6,0,0,0"
BorderThickness="0"
FontSize="18"
IsReadOnly="True"
Style="{StaticResource ModTitleStyle}"
Text="{Binding Path=Name}" />
<TextBlock Grid.Row="0" Grid.Column="1"
Padding="3,0,0,0"
FontSize="18">
<Hyperlink
NavigateUri="{Binding Path=Name}"
RequestNavigate="Hyperlink_OnRequestNavigate"
Style="{StaticResource HyperlinkStyle}">
Link
</Hyperlink>
</TextBlock>
<TextBox Grid.Row="1" Grid.Column="0"
Padding="6,0,0,0"
FontSize="15"
IsReadOnly="True"
Text="{Binding Path=Hash}" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
<ItemsControl Padding="0 3 0 6" x:Name="ModsList">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Margin="0 6 0 6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBox Padding="6 0 0 0" Grid.Column="0" Grid.Row="0" FontSize="18" Text="{Binding Path=Name}" Style="{StaticResource ModTitleStyle}" IsReadOnly="True" BorderThickness="0"/>
<TextBlock Padding="3 0 0 0" Grid.Column="1" Grid.Row="0" FontSize="18">
<Hyperlink NavigateUri="{Binding Path=Name}" Style="{StaticResource HyperlinkStyle}" RequestNavigate="Hyperlink_OnRequestNavigate">Link</Hyperlink>
</TextBlock>
<TextBox Padding="6 0 0 0" Grid.Column="0" Grid.Row="1" FontSize="15" Text="{Binding Path=Hash}" IsReadOnly="True"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</ScrollViewer>
<Canvas x:Name="TopLayer" IsHitTestVisible="False"/>
</ScrollViewer>
<Canvas x:Name="TopLayer" IsHitTestVisible="False" />
</Grid>
</reactiveUi:ReactiveUserControl>

View File

@ -1,22 +1,22 @@
<mah:MetroWindow x:Class="Wabbajack.ManifestWindow"
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:Wabbajack"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
mc:Ignorable="d"
Title="Manifest"
Width="1280"
Height="960"
MinWidth="850"
MinHeight="650"
ResizeMode="CanResize"
TitleBarHeight="25"
UseLayoutRounding="True"
WindowTitleBrush="{StaticResource MahApps.Brushes.Accent}"
Style="{StaticResource {x:Type Window}}"
d:DataContext="{d:DesignInstance local:ManifestWindow }">
<Grid x:Name="Grid">
</Grid>
<mah:MetroWindow
x:Class="Wabbajack.ManifestWindow"
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:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="Manifest"
Width="1280"
Height="960"
MinWidth="850"
MinHeight="650"
d:DataContext="{d:DesignInstance local:ManifestWindow}"
ResizeMode="CanResize"
Style="{StaticResource {x:Type Window}}"
TitleBarHeight="25"
UseLayoutRounding="True"
WindowTitleBrush="{StaticResource MahApps.Brushes.Accent}"
mc:Ignorable="d">
<Grid x:Name="Grid" />
</mah:MetroWindow>

View File

@ -18,9 +18,7 @@
<RowDefinition Height="47" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Rectangle
Grid.Row="1"
Grid.RowSpan="3"
<Rectangle Grid.Row="1" Grid.RowSpan="3"
Margin="6,0">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
@ -29,8 +27,7 @@
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<Border
Grid.Row="1"
<Border Grid.Row="1"
BorderBrush="Transparent"
BorderThickness="1,0,1,1">
<ScrollViewer Background="Transparent" VerticalScrollBarVisibility="Auto">
@ -52,13 +49,11 @@
</ItemsControl>
</ScrollViewer>
</Border>
<mahapps:ProgressRing
<mahapps:ProgressRing Grid.Row="1"
x:Name="LoadingRing"
Grid.Row="1"
Visibility="Collapsed" />
<StackPanel
<StackPanel Grid.Row="1"
x:Name="NoneFound"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Vertical"
@ -75,9 +70,8 @@
Foreground="{StaticResource ForegroundBrush}"
Text="No Matches" />
</StackPanel>
<iconPacks:PackIconControl
<iconPacks:PackIconControl Grid.Row="1"
x:Name="ErrorIcon"
Grid.Row="1"
Width="55"
Height="55"
HorizontalAlignment="Center"
@ -86,13 +80,10 @@
Kind="{x:Static iconPacks:PackIconMaterialKind.AlertCircle}"
ToolTip="Error loading modlist gallery"
Visibility="Collapsed" />
<local:TopProgressView
<local:TopProgressView Grid.Row="0" Grid.RowSpan="2"
Title="Browsing Modlists"
Grid.Row="0"
Grid.RowSpan="2"
ShadowMargin="False" />
<WrapPanel
Grid.Row="0"
<WrapPanel Grid.Row="0"
Height="25"
Margin="5,5,5,10"
HorizontalAlignment="Right"
@ -102,14 +93,14 @@
VerticalAlignment="Center"
Content="Game" />
<ComboBox
Margin="0,0,10,0"
Width="130"
Margin="0,0,10,0"
VerticalAlignment="Center"
Foreground="{StaticResource ForegroundBrush}"
IsEnabled="{Binding OnlyInstalled, Converter={StaticResource InverseBooleanConverter}}"
ItemsSource="{Binding Path=GameTypeEntries}"
SelectedItem="{Binding GameType, Mode=TwoWay}"
ToolTip="Select a game"
IsEnabled="{Binding OnlyInstalled, Converter={StaticResource InverseBooleanConverter}}"
Width="130" />
ToolTip="Select a game" />
<TextBlock
Margin="0,0,5,0"
VerticalAlignment="Center"
@ -124,7 +115,7 @@
Margin="10,0,10,0"
VerticalAlignment="Center"
Content="Show NSFW"
Foreground="{StaticResource ForegroundBrush}"/>
Foreground="{StaticResource ForegroundBrush}" />
<CheckBox
x:Name="OnlyInstalledCheckbox"
Margin="10,0,10,0"
@ -139,9 +130,8 @@
<iconPacks:Material Kind="FilterRemove" />
</Button>
</WrapPanel>
<Button
<Button Grid.Row="0"
x:Name="BackButton"
Grid.Row="0"
Width="30"
Height="30"
Margin="7,5,0,0"

View File

@ -79,10 +79,7 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="2"
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
BorderBrush="{StaticResource ButtonNormalBorder}"
BorderThickness="0,0,0,1">
<Grid ClipToBounds="True">
@ -149,33 +146,31 @@
<ItemsControl ItemsSource="{Binding ModListTagList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel/>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border
BorderThickness="1"
Grid.Row="0"
Grid.ColumnSpan="2"
CornerRadius="7,7,7,7"
Opacity="0.90"
<Border Grid.Row="0" Grid.ColumnSpan="2"
Margin="10,5,0,5"
Background="{StaticResource Analogous1Brush}"
Margin="10,5,0,5">
<TextBlock
BorderThickness="1"
CornerRadius="7,7,7,7"
Opacity="0.90">
<TextBlock
Margin="5,5,5,5"
FontSize="15"
Text="{Binding Name}"/>
Text="{Binding Name}" />
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<Label
Content="{Binding DownloadSizeText}"
HorizontalAlignment="Left"
Margin="10,257,0,0"
<Label
Margin="10,257,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Opacity="0" >
Content="{Binding DownloadSizeText}"
Opacity="0">
<Label.Style>
<Style TargetType="Label">
<Style.Triggers>
@ -205,12 +200,12 @@
</Style>
</Label.Style>
</Label>
<Label
Content="{Binding InstallSizeText}"
HorizontalAlignment="Left"
Margin="10,272,0,0"
<Label
Margin="10,272,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Opacity="0" >
Content="{Binding InstallSizeText}"
Opacity="0">
<Label.Style>
<Style TargetType="Label">
<Style.Triggers>
@ -242,17 +237,11 @@
</Label>
</Grid>
</Border>
<local:UnderMaintenanceOverlay
<local:UnderMaintenanceOverlay Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
x:Name="Overlay"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="2"
Visibility="Collapsed" />
<TextBlock
<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
x:Name="DescriptionTextShadow"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="5"
HorizontalAlignment="Center"
VerticalAlignment="Bottom"
@ -265,11 +254,8 @@
<BlurEffect Radius="25" />
</TextBlock.Effect>
</TextBlock>
<TextBlock
<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
x:Name="ModListTitleShadow"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="5"
HorizontalAlignment="Center"
VerticalAlignment="Bottom"
@ -281,21 +267,16 @@
<DropShadowEffect />
</TextBlock.Effect>
</TextBlock>
<mahapps:MetroProgressBar
<mahapps:MetroProgressBar Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
x:Name="DownloadProgressBar"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="2"
Height="3"
VerticalAlignment="Bottom"
Background="{StaticResource BackgroundBrush}"
Foreground="{StaticResource SecondaryBrush}"
Maximum="1"
Visibility="{Binding IsEnabled, ElementName=ExecuteButton, Converter={StaticResource bool2VisibilityHiddenConverter}, ConverterParameter=False}" />
<TextBlock
<TextBlock Grid.Row="1" Grid.Column="0"
x:Name="MetadataDescription"
Grid.Row="1"
Grid.Column="0"
Margin="8,5"
VerticalAlignment="Center"
FontSize="14"
@ -305,9 +286,8 @@
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Button
<Button Grid.Row="0"
x:Name="OpenWebsiteButton"
Grid.Row="0"
Width="40"
Height="40"
Margin="5,0"
@ -318,9 +298,8 @@
Height="20"
Kind="Web" />
</Button>
<Button
<Button Grid.Row="1"
x:Name="ExecuteButton"
Grid.Row="1"
Width="40"
Height="40"
Margin="5,0"

View File

@ -17,10 +17,8 @@
<RowDefinition Height="1*" />
<RowDefinition Height="15" />
</Grid.RowDefinitions>
<Viewbox
<Viewbox Grid.Row="0" Grid.RowSpan="3"
Name="Banner"
Grid.Row="0"
Grid.RowSpan="3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Stretch="UniformToFill">
@ -40,10 +38,8 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button
<Button Grid.Row="1" Grid.Column="0"
x:Name="BrowseButton"
Grid.Row="1"
Grid.Column="0"
Margin="15,0"
Background="Transparent"
BorderBrush="Transparent"
@ -176,8 +172,7 @@
</icon:PackIconFontAwesome>
</Grid>
</Viewbox>
<TextBlock
Grid.Row="2"
<TextBlock Grid.Row="2"
HorizontalAlignment="Center"
VerticalAlignment="Top"
FontSize="25"
@ -195,10 +190,8 @@
</TextBlock>
</Grid>
</Button>
<Button
<Button Grid.Row="1" Grid.Column="1"
x:Name="InstallButton"
Grid.Row="1"
Grid.Column="1"
Margin="15,0"
Background="Transparent"
BorderBrush="Transparent"
@ -331,8 +324,7 @@
</icon:PackIconFontAwesome>
</Grid>
</Viewbox>
<TextBlock
Grid.Row="2"
<TextBlock Grid.Row="2"
HorizontalAlignment="Center"
VerticalAlignment="Top"
FontSize="25"
@ -350,13 +342,11 @@
</TextBlock>
</Grid>
</Button>
<Button
Grid.Row="1"
Grid.Column="2"
<Button Grid.Row="1" Grid.Column="2"
x:Name="CompileButton"
Margin="15,0"
Background="Transparent"
BorderBrush="Transparent"
x:Name="CompileButton"
ClipToBounds="False">
<Button.Template>
<ControlTemplate TargetType="Button">
@ -486,8 +476,7 @@
</icon:PackIconFontAwesome>
</Grid>
</Viewbox>
<TextBlock
Grid.Row="2"
<TextBlock Grid.Row="2"
HorizontalAlignment="Center"
VerticalAlignment="Top"
FontSize="25"
@ -506,10 +495,7 @@
</Grid>
</Button>
</Grid>
<local:LinksView
Grid.Row="0"
Grid.RowSpan="3"
Grid.Column="0"
<local:LinksView Grid.Row="0" Grid.RowSpan="3" Grid.Column="0"
Margin="10"
HorizontalAlignment="Right"
VerticalAlignment="Top" />

View File

@ -11,41 +11,54 @@
x:TypeArguments="local:AuthorFilesVM"
mc:Ignorable="d">
<Border
Visibility="{Binding AuthorFile.IsVisible}"
x:Name="AuthorFiles"
Margin="5"
Background="{StaticResource BackgroundBrush}"
BorderBrush="{StaticResource ButtonNormalBorder}"
BorderThickness="1">
BorderThickness="1"
Visibility="{Binding AuthorFile.IsVisible}">
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"></ColumnDefinition>
<ColumnDefinition Width="300"></ColumnDefinition>
<ColumnDefinition Width="300" />
<ColumnDefinition Width="300" />
</Grid.ColumnDefinitions>
<TextBlock
Grid.ColumnSpan="2"
Margin="5,0"
FontFamily="Lucida Sans"
FontSize="20"
FontWeight="Bold"
Text="File Uploader" />
<TextBlock Margin="5" Grid.Row="1" Grid.ColumnSpan="2" Text="{Binding AuthorFile.Picker.TargetPath}"></TextBlock>
<ProgressBar Margin="5" Grid.Row="2" Grid.ColumnSpan="2" Value="{Binding AuthorFile.UploadProgress, Mode=OneWay}" Minimum="0" Maximum="1"></ProgressBar>
<TextBlock Margin="5" Grid.Row="3" Grid.ColumnSpan="2">
<Hyperlink Command="{Binding AuthorFile.HyperlinkCommand}">
<TextBlock Text="{Binding AuthorFile.FinalUrl}"></TextBlock>
</Hyperlink>
</TextBlock>
<Button Margin="5" Grid.Row="4" Grid.Column="0" Command="{Binding AuthorFile.SelectFile, Mode=OneTime}">Select</Button>
<Button Margin="5" Grid.Row="4" Grid.Column="1" Command="{Binding AuthorFile.Upload}">Upload</Button>
</Grid>
</Border>
<TextBlock Grid.ColumnSpan="2"
Margin="5,0"
FontFamily="Lucida Sans"
FontSize="20"
FontWeight="Bold"
Text="File Uploader" />
<TextBlock Grid.Row="1" Grid.ColumnSpan="2"
Margin="5"
Text="{Binding AuthorFile.Picker.TargetPath}" />
<ProgressBar Grid.Row="2" Grid.ColumnSpan="2"
Margin="5"
Maximum="1"
Minimum="0"
Value="{Binding AuthorFile.UploadProgress, Mode=OneWay}" />
<TextBlock Grid.Row="3" Grid.ColumnSpan="2"
Margin="5">
<Hyperlink Command="{Binding AuthorFile.HyperlinkCommand}">
<TextBlock Text="{Binding AuthorFile.FinalUrl}" />
</Hyperlink>
</TextBlock>
<Button Grid.Row="4" Grid.Column="0"
Margin="5"
Command="{Binding AuthorFile.SelectFile, Mode=OneTime}">
Select
</Button>
<Button Grid.Row="4" Grid.Column="1"
Margin="5"
Command="{Binding AuthorFile.Upload}">
Upload
</Button>
</Grid>
</Border>
</rxui:ReactiveUserControl>

View File

@ -1,42 +1,70 @@
<rxui:ReactiveUserControl
<rxui:ReactiveUserControl
x:Class="Wabbajack.CredentialsLoginView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Wabbajack"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:rxui="http://reactiveui.net"
d:DesignHeight="450"
d:DesignWidth="800"
x:TypeArguments="local:CredentialsLoginVM"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
mc:Ignorable="d">
<Grid Margin="16">
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition Height="60"/>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
<RowDefinition Height="*"/>
<RowDefinition Height="40" />
<RowDefinition Height="60" />
<RowDefinition Height="40" />
<RowDefinition Height="40" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="120" />
</Grid.ColumnDefinitions>
<TextBlock FontSize="20" Grid.Row="0" Grid.Column="0" Margin="0 16 8 0">Email:</TextBlock>
<TextBox FontSize="20" x:Name="Username" Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2"/>
<TextBlock Grid.Row="0" Grid.Column="0"
Margin="0,16,8,0"
FontSize="20">
Email:
</TextBlock>
<TextBox Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2"
x:Name="Username"
FontSize="20" />
<TextBlock FontSize="20" Grid.Row="1" Grid.Column="0" Margin="0 16 8 0">Password:</TextBlock>
<PasswordBox Margin="0 16 0 8" FontSize="20" x:Name="Password" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2"/>
<TextBlock Grid.Row="1" Grid.Column="0"
Margin="0,16,8,0"
FontSize="20">
Password:
</TextBlock>
<PasswordBox Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2"
x:Name="Password"
Margin="0,16,0,8"
FontSize="20" />
<TextBlock FontSize="20" Grid.Row="2" Grid.Column="0" Margin="0 16 8 0" x:Name="MFAText">MFA Key:</TextBlock>
<TextBox FontSize="20" x:Name="MFA" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2"/>
<TextBlock Grid.Row="2" Grid.Column="0"
x:Name="MFAText"
Margin="0,16,8,0"
FontSize="20">
MFA Key:
</TextBlock>
<TextBox Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2"
x:Name="MFA"
FontSize="20" />
<Button Margin="8 8 0 0" x:Name="LoginButton" Grid.Row="3" Grid.Column="3" Click="LoginButton_OnClick">
<Button Grid.Row="3" Grid.Column="3"
x:Name="LoginButton"
Margin="8,8,0,0"
Click="LoginButton_OnClick">
<TextBlock FontSize="14">Login</TextBlock>
</Button>
<TextBlock x:Name="Message" FontSize="20" Margin="0 16 0 0" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3" TextWrapping="Wrap"/>
<TextBlock Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3"
x:Name="Message"
Margin="0,16,0,0"
FontSize="20"
TextWrapping="Wrap" />
</Grid>
</rxui:ReactiveUserControl>

View File

@ -12,34 +12,29 @@
mc:Ignorable="d">
<Grid Height="30" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="32"/>
<ColumnDefinition Width="32" />
<ColumnDefinition Width="Auto" MinWidth="150" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image
Margin="4"
<Image Grid.Column="0"
x:Name="Favicon"
Grid.Column="0"
VerticalAlignment="Center"/>
<TextBlock
x:Name="SiteNameText"
Grid.Column="1"
Margin="4"
VerticalAlignment="Center" />
<Button
<TextBlock Grid.Column="1"
x:Name="SiteNameText"
VerticalAlignment="Center" />
<Button Grid.Column="2"
x:Name="LoginButton"
Grid.Column="2"
Margin="5"
Content="Login" />
<Button
<Button Grid.Column="3"
x:Name="LogoutButton"
Grid.Column="3"
Margin="5"
Content="Logout" />
<TextBlock
<TextBlock Grid.Column="4"
x:Name="MetaText"
Grid.Column="4"
FontSize="14" />
</Grid>
</rxui:ReactiveUserControl>

View File

@ -38,9 +38,8 @@
FontSize="20"
FontWeight="Bold"
Text="Logins" />
<ItemsControl
<ItemsControl Grid.Row="1"
x:Name="DownloadersList"
Grid.Row="1"
Margin="5"
Background="{StaticResource BackgroundBrush}">
<ItemsControl.ItemTemplate>

View File

@ -1,16 +1,17 @@
<mah:MetroWindow x:Class="Wabbajack.LoginWindowView"
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:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Wabbajack"
mc:Ignorable="d"
WindowTitleBrush="{StaticResource MahApps.Brushes.Accent}"
Style="{StaticResource {x:Type Window}}"
d:DataContext="{d:DesignInstance local:LoginWindowView }"
Title="Login" Height="450" Width="800">
<Grid x:Name="Grid">
</Grid>
<mah:MetroWindow
x:Class="Wabbajack.LoginWindowView"
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:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="Login"
Width="800"
Height="450"
d:DataContext="{d:DesignInstance local:LoginWindowView}"
Style="{StaticResource {x:Type Window}}"
WindowTitleBrush="{StaticResource MahApps.Brushes.Accent}"
mc:Ignorable="d">
<Grid x:Name="Grid" />
</mah:MetroWindow>

View File

@ -32,20 +32,15 @@
<ColumnDefinition Width="5" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock
Grid.Column="0"
Grid.ColumnSpan="2"
<TextBlock Grid.Column="0" Grid.ColumnSpan="2"
FontFamily="Lucida Sans"
FontSize="20"
FontWeight="Bold"
Text="Misc Settings" />
<Grid
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="3">
<Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.Resources>
<Style BasedOn="{StaticResource MainButtonStyle}" TargetType="Button">
@ -58,12 +53,20 @@
</Style.Triggers>
</Style>
</Grid.Resources>
<CheckBox Name="FilterPersistCheckBox" Content="Gallery filters are saved on exit" HorizontalAlignment="Left" Margin="0,5,0,0" VerticalAlignment="Top" Grid.Row = "0">
<CheckBox Grid.Row="0"
Name="FilterPersistCheckBox"
Margin="0,5,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Content="Gallery filters are saved on exit">
<CheckBox.LayoutTransform>
<ScaleTransform ScaleX="1.2" ScaleY="1.2" />
</CheckBox.LayoutTransform>
</CheckBox>
<Button Name="ClearCefCache" Content="Clear In-App Browser Cache" Margin="0,5,0,0" Grid.Row="1"></Button>
<Button Grid.Row="1"
Name="ClearCefCache"
Margin="0,5,0,0"
Content="Clear In-App Browser Cache" />
</Grid>
</Grid>
</Border>

View File

@ -32,17 +32,12 @@
<ColumnDefinition Width="5" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock
Grid.Column="0"
Grid.ColumnSpan="2"
<TextBlock Grid.Column="0" Grid.ColumnSpan="2"
FontFamily="Lucida Sans"
FontSize="20"
FontWeight="Bold"
Text="Performance" />
<Grid
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="3"
<Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3"
Height="25"
Margin="0,0,0,10">
<Grid.Resources>
@ -61,43 +56,33 @@
<ColumnDefinition Width="5" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button
<Button Grid.Column="0"
x:Name="ManualButton"
Grid.Column="0"
Content="Manual"
ToolTip="Control the number of cores by setting the max limit manually" />
<Button
<Button Grid.Column="2"
x:Name="AutoButton"
Grid.Column="2"
Content="Auto"
ToolTip="Control the number of cores by scaling it to a percentage of what WJ would use at full speed" />
</Grid>
<TextBlock
<TextBlock Grid.Row="3" Grid.Column="0"
x:Name="MaxCoresLabel"
Grid.Row="3"
Grid.Column="0"
VerticalAlignment="Center"
Text="Max Cores" />
<xwpf:IntegerUpDown
<xwpf:IntegerUpDown Grid.Row="3" Grid.Column="2"
x:Name="MaxCoresSpinner"
Grid.Row="3"
Grid.Column="2"
MinWidth="75"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Foreground="White"
Maximum="255"
Minimum="1" />
<TextBlock
<TextBlock Grid.Row="3" Grid.Column="0"
x:Name="TargetUsageLabel"
Grid.Row="3"
Grid.Column="0"
VerticalAlignment="Center"
Text="Target Percent Usage" />
<xwpf:DoubleUpDown
<xwpf:DoubleUpDown Grid.Row="3" Grid.Column="2"
x:Name="TargetUsageSpinner"
Grid.Row="3"
Grid.Column="2"
MinWidth="75"
HorizontalAlignment="Right"
VerticalAlignment="Center"
@ -106,11 +91,8 @@
Increment="0.1"
Maximum="1"
Minimum="0.1" />
<Slider
<Slider Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3"
x:Name="TargetUsageSlider"
Grid.Row="4"
Grid.Column="0"
Grid.ColumnSpan="3"
IsSnapToTickEnabled="True"
LargeChange="0.1"
Maximum="1"

View File

@ -23,14 +23,11 @@
<RowDefinition Height="47" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<local:TopProgressView
<local:TopProgressView Grid.Row="0" Grid.RowSpan="2"
Title="Settings"
Grid.Row="0"
Grid.RowSpan="2"
ShadowMargin="False" />
<Button
<Button Grid.Row="0"
x:Name="BackButton"
Grid.Row="0"
Width="30"
Height="30"
Margin="7,5,0,0"
@ -40,15 +37,14 @@
ToolTip="Back to main menu">
<iconPacks:PackIconMaterial Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Kind="ArrowLeft" />
</Button>
<ScrollViewer
Grid.Row="1"
<ScrollViewer Grid.Row="1"
Focusable="False"
VerticalScrollBarVisibility="Auto">
<WrapPanel>
<local:LoginSettingsView x:Name="LoginView" />
<local:PerformanceSettingsView x:Name="PerformanceView" />
<local:ModlistGallerySettingsView x:Name="ModlistGalleryView" />
<local:AuthorFilesView x:Name="AuthorFilesView"></local:AuthorFilesView>
<local:AuthorFilesView x:Name="AuthorFilesView" />
</WrapPanel>
</ScrollViewer>
</Grid>

View File

@ -1,12 +1,14 @@
<UserControl x:Class="Wabbajack.WebBrowserView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:wabbajack="clr-namespace:Wabbajack"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl
x:Class="Wabbajack.WebBrowserView"
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:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:wabbajack="clr-namespace:Wabbajack"
d:DesignHeight="450"
d:DesignWidth="800"
mc:Ignorable="d">
<UserControl.Resources>
<Color x:Key="TextBackgroundFill">#92000000</Color>
<SolidColorBrush x:Key="TextBackgroundFillBrush" Color="{StaticResource TextBackgroundFill}" />
@ -46,15 +48,12 @@
<RowDefinition Height="47" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<wabbajack:TopProgressView
Background="#92000000"
<wabbajack:TopProgressView Grid.Row="0" Grid.RowSpan="1"
Title="{Binding Instructions}"
Grid.Row="0"
Grid.RowSpan="1"
Background="#92000000"
ShadowMargin="False" />
<Button
<Button Grid.Row="0"
x:Name="BackButton"
Grid.Row="0"
Width="30"
Height="30"
Margin="7,5,0,0"
@ -65,7 +64,7 @@
ToolTip="Back to main menu">
<iconPacks:PackIconMaterial Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Kind="ArrowLeft" />
</Button>
<!-- Do it this way so we can access the browser directly from the VM -->
<ContentControl Grid.Row="1" Content="{Binding Browser}"></ContentControl>
<!-- Do it this way so we can access the browser directly from the VM -->
<ContentControl Grid.Row="1" Content="{Binding Browser}" />
</Grid>
</UserControl>