diff --git a/; b/;
index e9cb9dde..4bef29e0 100644
--- a/;
+++ b/;
@@ -1,12 +1,144 @@
-using System.Windows.Input;
-using Wabbajack.Messages;
-
-namespace Wabbajack.App.Wpf.Models.NavigationItems
-{
- public interface INavigationItem
- {
- public ICommand GoToCommand { get; }
- public NavigateToGlobal.ScreenType Screen { get; }
- public bool MainMenuItem { get; }
- }
-}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Wabbajack.App.Wpf/Messages/LoadModlistForCompiling.cs b/Wabbajack.App.Wpf/Messages/LoadModlistForCompiling.cs
new file mode 100644
index 00000000..14bb0fef
--- /dev/null
+++ b/Wabbajack.App.Wpf/Messages/LoadModlistForCompiling.cs
@@ -0,0 +1,18 @@
+using ReactiveUI;
+using Wabbajack.Compiler;
+
+namespace Wabbajack.Messages;
+
+public class LoadModlistForCompiling
+{
+ public CompilerSettings CompilerSettings { get; set; }
+ public LoadModlistForCompiling(CompilerSettings cs)
+ {
+ CompilerSettings = cs;
+ }
+
+ public static void Send(CompilerSettings cs)
+ {
+ MessageBus.Current.SendMessage(new LoadModlistForCompiling(cs));
+ }
+}
\ No newline at end of file
diff --git a/Wabbajack.App.Wpf/ViewModels/Compilers/CompilerVM.cs b/Wabbajack.App.Wpf/ViewModels/Compilers/CompilerVM.cs
index 63ac5bcd..b9c0ba34 100644
--- a/Wabbajack.App.Wpf/ViewModels/Compilers/CompilerVM.cs
+++ b/Wabbajack.App.Wpf/ViewModels/Compilers/CompilerVM.cs
@@ -114,6 +114,10 @@ namespace Wabbajack
_inferencer = inferencer;
_wjClient = wjClient;
+ MessageBus.Current.Listen()
+ .Subscribe(msg => LoadCompilerSettings(msg.CompilerSettings))
+ .DisposeWith(CompositeDisposable);
+
StatusText = "Compiler Settings";
StatusProgress = Percent.Zero;
@@ -186,7 +190,7 @@ namespace Wabbajack
.BindToStrict(this, vm => vm.ErrorState)
.DisposeWith(disposables);
- LoadLastSavedSettings().FireAndForget();
+ //LoadLastSavedSettings().FireAndForget();
});
}
@@ -240,6 +244,16 @@ namespace Wabbajack
return;
}
+ LoadCompilerSettings(settings);
+
+ if (path.FileName == "modlist.txt".ToRelativePath())
+ {
+ await LoadLastSavedSettings();
+ }
+ }
+
+ private void LoadCompilerSettings(CompilerSettings settings)
+ {
BaseGame = settings.Game;
ModListName = settings.ModListName;
Version = settings.Version?.ToString() ?? "";
@@ -249,7 +263,7 @@ namespace Wabbajack
Website = settings.ModListWebsite?.ToString() ?? "";
Readme = settings.ModListReadme?.ToString() ?? "";
IsNSFW = settings.ModlistIsNSFW;
-
+
Source = settings.Source;
DownloadLocation.TargetPath = settings.Downloads;
if (settings.OutputFile.Extension == Ext.Wabbajack)
@@ -263,13 +277,8 @@ namespace Wabbajack
NoMatchInclude = settings.NoMatchInclude;
Include = settings.Include;
Ignore = settings.Ignore;
- if (path.FileName == "modlist.txt".ToRelativePath())
- {
- await LoadLastSavedSettings();
- }
}
-
private async Task StartCompilation()
{
var tsk = Task.Run(async () =>
@@ -399,7 +408,6 @@ namespace Wabbajack
ModlistLocation.TargetPath = lastPath;
}
-
private CompilerSettings GetSettings()
{
diff --git a/Wabbajack.App.Wpf/ViewModels/Compilers/CreatedModlistVM.cs b/Wabbajack.App.Wpf/ViewModels/Compilers/CreatedModlistVM.cs
index 47d987b9..c229060d 100644
--- a/Wabbajack.App.Wpf/ViewModels/Compilers/CreatedModlistVM.cs
+++ b/Wabbajack.App.Wpf/ViewModels/Compilers/CreatedModlistVM.cs
@@ -1,17 +1,18 @@
-using System.Linq;
-using System.Threading;
+using System.Windows.Input;
using Microsoft.Extensions.Logging;
+using ReactiveUI;
using ReactiveUI.Fody.Helpers;
using Wabbajack.Compiler;
-using Wabbajack.DTOs;
-using Wabbajack.Networking.WabbajackClientApi;
-using Wabbajack.Services.OSIntegrated.Services;
+using Wabbajack.Messages;
+using Wabbajack.Models;
namespace Wabbajack
{
public class CreatedModlistVM
{
private ILogger _logger;
+ public LoadingLock LoadingImageLock { get; } = new();
+ public ICommand CompileModListCommand { get; set; }
[Reactive]
public CompilerSettings CompilerSettings { get; set; }
@@ -19,6 +20,14 @@ namespace Wabbajack
{
_logger = logger;
CompilerSettings = compilerSettings;
+ CompileModListCommand = ReactiveCommand.Create(CompileModList);
+ }
+
+ private void CompileModList()
+ {
+ _logger.LogInformation($"Selected modlist {CompilerSettings.ModListName} for compilation, located in '{CompilerSettings.Source}'");
+ NavigateToGlobal.Send(ScreenType.Compiler);
+ LoadModlistForCompiling.Send(CompilerSettings);
}
}
}
diff --git a/Wabbajack.App.Wpf/Views/Common/BeginButton.xaml b/Wabbajack.App.Wpf/Views/Common/BeginButton.xaml
index 7ecb0cec..18d9c7b7 100644
--- a/Wabbajack.App.Wpf/Views/Common/BeginButton.xaml
+++ b/Wabbajack.App.Wpf/Views/Common/BeginButton.xaml
@@ -24,7 +24,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
-
diff --git a/Wabbajack.App.Wpf/Views/CreateModListTileView.xaml.cs b/Wabbajack.App.Wpf/Views/CreateModListTileView.xaml.cs
index 462c559f..66565f45 100644
--- a/Wabbajack.App.Wpf/Views/CreateModListTileView.xaml.cs
+++ b/Wabbajack.App.Wpf/Views/CreateModListTileView.xaml.cs
@@ -2,6 +2,8 @@
using System.Reactive.Linq;
using System.Windows;
using ReactiveUI;
+using ReactiveMarbles.ObservableEvents;
+using System.Reactive;
namespace Wabbajack
{
@@ -13,20 +15,24 @@ namespace Wabbajack
public CreatedModListTileView()
{
InitializeComponent();
- this.WhenActivated(disposables =>
+ this.WhenActivated(dispose =>
{
ViewModel.WhenAnyValue(vm => vm.CompilerSettings.ModListImage)
.Select(imagePath => { UIUtils.TryGetBitmapImageFromFile(imagePath, out var bitmapImage); return bitmapImage; })
.BindToStrict(this, v => v.ModlistImage.ImageSource)
- .DisposeWith(disposables);
+ .DisposeWith(dispose);
+
+ CompiledModListTile
+ .Events().MouseDown
+ .Select(args => Unit.Default)
+ .InvokeCommand(this, x => x.ViewModel.CompileModListCommand)
+ .DisposeWith(dispose);
- /*
ViewModel.WhenAnyValue(x => x.LoadingImageLock.IsLoading)
.Select(x => x ? Visibility.Visible : Visibility.Collapsed)
.BindToStrict(this, x => x.LoadingProgress.Visibility)
- .DisposeWith(disposables);
- */
+ .DisposeWith(dispose);
});
}
}