diff --git a/Wabbajack.App/Assets/Wabbajack.axaml b/Wabbajack.App/Assets/Wabbajack.axaml
index 3d9c8975..46111d3e 100644
--- a/Wabbajack.App/Assets/Wabbajack.axaml
+++ b/Wabbajack.App/Assets/Wabbajack.axaml
@@ -37,7 +37,31 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Wabbajack.App/Controls/LogView.axaml b/Wabbajack.App/Controls/LogView.axaml
index bb33f98d..a59ad25a 100644
--- a/Wabbajack.App/Controls/LogView.axaml
+++ b/Wabbajack.App/Controls/LogView.axaml
@@ -6,23 +6,25 @@
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Wabbajack.App.Controls.LogView">
-
- Current Log Contents
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ Current Log Contents
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Wabbajack.App/Interfaces/IScreenView.cs b/Wabbajack.App/Interfaces/IScreenView.cs
index 5ee01c93..d2ce26e5 100644
--- a/Wabbajack.App/Interfaces/IScreenView.cs
+++ b/Wabbajack.App/Interfaces/IScreenView.cs
@@ -5,4 +5,5 @@ namespace Wabbajack.App.Interfaces;
public interface IScreenView
{
public Type ViewModelType { get; }
+ public string HumanName { get; }
}
\ No newline at end of file
diff --git a/Wabbajack.App/Screens/BrowseView.axaml.cs b/Wabbajack.App/Screens/BrowseView.axaml.cs
index 64b8d898..aa766c48 100644
--- a/Wabbajack.App/Screens/BrowseView.axaml.cs
+++ b/Wabbajack.App/Screens/BrowseView.axaml.cs
@@ -6,7 +6,7 @@ namespace Wabbajack.App.Screens;
public partial class BrowseView : ScreenBase
{
- public BrowseView()
+ public BrowseView() : base("Web Browser")
{
InitializeComponent();
this.WhenActivated(disposables =>
diff --git a/Wabbajack.App/Screens/CompilationView.axaml.cs b/Wabbajack.App/Screens/CompilationView.axaml.cs
index 18b4e8fe..0f09a05e 100644
--- a/Wabbajack.App/Screens/CompilationView.axaml.cs
+++ b/Wabbajack.App/Screens/CompilationView.axaml.cs
@@ -6,7 +6,7 @@ namespace Wabbajack.App.Screens;
public partial class CompilationView : ScreenBase
{
- public CompilationView()
+ public CompilationView() : base("Compiling")
{
InitializeComponent();
diff --git a/Wabbajack.App/Screens/CompilerConfigurationView.axaml.cs b/Wabbajack.App/Screens/CompilerConfigurationView.axaml.cs
index 4bc24004..ecb150f8 100644
--- a/Wabbajack.App/Screens/CompilerConfigurationView.axaml.cs
+++ b/Wabbajack.App/Screens/CompilerConfigurationView.axaml.cs
@@ -15,7 +15,7 @@ namespace Wabbajack.App.Screens;
public partial class CompilerConfigurationView : ScreenBase
{
- public CompilerConfigurationView()
+ public CompilerConfigurationView() : base("Compiler Configuration")
{
InitializeComponent();
AddAlwaysEnabled.Command = ReactiveCommand.Create(() => AddAlwaysEnabled_Command().FireAndForget());
diff --git a/Wabbajack.App/Screens/ErrorPageView.axaml.cs b/Wabbajack.App/Screens/ErrorPageView.axaml.cs
index 36441c1d..234fb8d6 100644
--- a/Wabbajack.App/Screens/ErrorPageView.axaml.cs
+++ b/Wabbajack.App/Screens/ErrorPageView.axaml.cs
@@ -6,7 +6,7 @@ namespace Wabbajack.App.Screens;
public partial class ErrorPageView : ScreenBase
{
- public ErrorPageView()
+ public ErrorPageView() : base("Error")
{
InitializeComponent();
this.WhenActivated(disposables =>
diff --git a/Wabbajack.App/Screens/LauncherView.axaml.cs b/Wabbajack.App/Screens/LauncherView.axaml.cs
index bf0ac326..3c8ccfa9 100644
--- a/Wabbajack.App/Screens/LauncherView.axaml.cs
+++ b/Wabbajack.App/Screens/LauncherView.axaml.cs
@@ -6,7 +6,7 @@ namespace Wabbajack.App.Screens;
public partial class LauncherView : ScreenBase
{
- public LauncherView()
+ public LauncherView() : base("Launch Modlist")
{
InitializeComponent();
this.WhenActivated(disposables =>
diff --git a/Wabbajack.App/Screens/LogScreenView.axaml.cs b/Wabbajack.App/Screens/LogScreenView.axaml.cs
index 85a85735..dd3cb47e 100644
--- a/Wabbajack.App/Screens/LogScreenView.axaml.cs
+++ b/Wabbajack.App/Screens/LogScreenView.axaml.cs
@@ -4,7 +4,7 @@ namespace Wabbajack.App.Screens;
public partial class LogScreenView : ScreenBase
{
- public LogScreenView()
+ public LogScreenView() : base("Application Log")
{
InitializeComponent();
}
diff --git a/Wabbajack.App/Screens/PlaySelectView.axaml.cs b/Wabbajack.App/Screens/PlaySelectView.axaml.cs
index 28aa6e7f..3a6ffa53 100644
--- a/Wabbajack.App/Screens/PlaySelectView.axaml.cs
+++ b/Wabbajack.App/Screens/PlaySelectView.axaml.cs
@@ -6,7 +6,7 @@ namespace Wabbajack.App.Screens;
public partial class PlaySelectView : ScreenBase
{
- public PlaySelectView()
+ public PlaySelectView() : base("Modlist Selection")
{
InitializeComponent();
this.WhenActivated(disposables =>
diff --git a/Wabbajack.App/Screens/SettingsView.axaml.cs b/Wabbajack.App/Screens/SettingsView.axaml.cs
index 0d7f7c1f..fb7fc1cb 100644
--- a/Wabbajack.App/Screens/SettingsView.axaml.cs
+++ b/Wabbajack.App/Screens/SettingsView.axaml.cs
@@ -6,7 +6,7 @@ namespace Wabbajack.App.Screens;
public partial class SettingsView : ScreenBase
{
- public SettingsView()
+ public SettingsView() : base("Settings")
{
InitializeComponent();
this.WhenActivated(disposables =>
diff --git a/Wabbajack.App/Screens/StandardInstallationView.axaml.cs b/Wabbajack.App/Screens/StandardInstallationView.axaml.cs
index c1e76e10..1e0d59a1 100644
--- a/Wabbajack.App/Screens/StandardInstallationView.axaml.cs
+++ b/Wabbajack.App/Screens/StandardInstallationView.axaml.cs
@@ -10,7 +10,7 @@ namespace Wabbajack.App.Views;
public partial class StandardInstallationView : ScreenBase
{
- public StandardInstallationView()
+ public StandardInstallationView() : base("Installing")
{
InitializeComponent();
diff --git a/Wabbajack.App/ViewModels/MainWindowViewModel.cs b/Wabbajack.App/ViewModels/MainWindowViewModel.cs
index 530c2a56..420e5141 100644
--- a/Wabbajack.App/ViewModels/MainWindowViewModel.cs
+++ b/Wabbajack.App/ViewModels/MainWindowViewModel.cs
@@ -68,6 +68,13 @@ public class MainWindowViewModel : ReactiveValidationObject, IActivatableViewMod
LogViewButton = ReactiveCommand.Create(() => { Receive(new NavigateTo(typeof(LogScreenViewModel))); })
.DisposeWith(disposables);
+
+ this.WhenAnyValue(vm => vm.CurrentScreen)
+ .Where(view => view != default)
+ .Select(view => ((IScreenView) view).HumanName)
+ .Select(txt => txt == "" ? "Wabbajack" : $"Wabbajack - {txt}")
+ .BindTo(this, vm => vm.TitleText)
+ .DisposeWith(disposables);
});
CurrentScreen = (Control) _screens.First(s => s.ViewModelType == typeof(ModeSelectionViewModel));
@@ -85,6 +92,8 @@ public class MainWindowViewModel : ReactiveValidationObject, IActivatableViewMod
[Reactive] public ReactiveCommand LogViewButton { get; set; }
[Reactive] public string ResourceStatus { get; set; }
+
+ [Reactive] public string TitleText { get; set; }
public ViewModelActivator Activator { get; }
diff --git a/Wabbajack.App/Views/GuidedWebView.axaml.cs b/Wabbajack.App/Views/GuidedWebView.axaml.cs
index b9e00b00..7c6ac82f 100644
--- a/Wabbajack.App/Views/GuidedWebView.axaml.cs
+++ b/Wabbajack.App/Views/GuidedWebView.axaml.cs
@@ -8,7 +8,7 @@ namespace Wabbajack.App.Views;
public partial class GuidedWebView : ScreenBase
{
- public GuidedWebView() : base(false)
+ public GuidedWebView() : base("Web View", false)
{
InitializeComponent();
diff --git a/Wabbajack.App/Views/InstallConfigurationView.axaml.cs b/Wabbajack.App/Views/InstallConfigurationView.axaml.cs
index cd37b4d9..5292ca79 100644
--- a/Wabbajack.App/Views/InstallConfigurationView.axaml.cs
+++ b/Wabbajack.App/Views/InstallConfigurationView.axaml.cs
@@ -9,9 +9,9 @@ using Wabbajack.App.ViewModels;
namespace Wabbajack.App.Views;
-public partial class InstallConfigurationView : ReactiveUserControl, IScreenView
+public partial class InstallConfigurationView : ScreenBase, IScreenView
{
- public InstallConfigurationView()
+ public InstallConfigurationView() : base("Install Configuration")
{
InitializeComponent();
DataContext = App.Services.GetService()!;
@@ -45,6 +45,9 @@ public partial class InstallConfigurationView : ReactiveUserControl view.InstallPath.SelectedPath)
.BindTo(ViewModel, vm => vm.Install)
.DisposeWith(disposables);
+
+ this.BindCommand(ViewModel, vm => vm.BeginCommand, view => view.BeginInstall.Button)
+ .DisposeWith(disposables);
});
}
diff --git a/Wabbajack.App/Views/MainWindow.axaml b/Wabbajack.App/Views/MainWindow.axaml
index 760bbb33..18c23a71 100644
--- a/Wabbajack.App/Views/MainWindow.axaml
+++ b/Wabbajack.App/Views/MainWindow.axaml
@@ -32,25 +32,26 @@
-
+
+
-
+
-