From e9aa42e4f1368519fcbba521b97d7e6755ba414d Mon Sep 17 00:00:00 2001 From: pizzaboxer <41478239+pizzaboxer@users.noreply.github.com> Date: Tue, 31 Jan 2023 18:19:01 +0000 Subject: [PATCH 1/5] Publish draft for config menu redesign --- Bloxstrap/App.xaml | 7 +- Bloxstrap/App.xaml.cs | 10 +- Bloxstrap/Bloxstrap.csproj | 10 ++ Bloxstrap/Configuration/MainWindow.xaml | 96 +++++++++++++ Bloxstrap/Configuration/MainWindow.xaml.cs | 13 ++ Bloxstrap/Configuration/Pages/AboutPage.xaml | 130 ++++++++++++++++++ .../Configuration/Pages/AboutPage.xaml.cs | 13 ++ .../Configuration/Pages/BootstrapperPage.xaml | 66 +++++++++ .../Pages/BootstrapperPage.xaml.cs | 13 ++ .../Configuration/Pages/InstallationPage.xaml | 87 ++++++++++++ .../Pages/InstallationPage.xaml.cs | 13 ++ .../Configuration/Pages/IntegrationsPage.xaml | 92 +++++++++++++ .../Pages/IntegrationsPage.xaml.cs | 13 ++ Bloxstrap/Configuration/Pages/ModsPage.xaml | 71 ++++++++++ .../Configuration/Pages/ModsPage.xaml.cs | 13 ++ Bloxstrap/Helpers/Updater.cs | 3 +- 16 files changed, 642 insertions(+), 8 deletions(-) create mode 100644 Bloxstrap/Configuration/MainWindow.xaml create mode 100644 Bloxstrap/Configuration/MainWindow.xaml.cs create mode 100644 Bloxstrap/Configuration/Pages/AboutPage.xaml create mode 100644 Bloxstrap/Configuration/Pages/AboutPage.xaml.cs create mode 100644 Bloxstrap/Configuration/Pages/BootstrapperPage.xaml create mode 100644 Bloxstrap/Configuration/Pages/BootstrapperPage.xaml.cs create mode 100644 Bloxstrap/Configuration/Pages/InstallationPage.xaml create mode 100644 Bloxstrap/Configuration/Pages/InstallationPage.xaml.cs create mode 100644 Bloxstrap/Configuration/Pages/IntegrationsPage.xaml create mode 100644 Bloxstrap/Configuration/Pages/IntegrationsPage.xaml.cs create mode 100644 Bloxstrap/Configuration/Pages/ModsPage.xaml create mode 100644 Bloxstrap/Configuration/Pages/ModsPage.xaml.cs diff --git a/Bloxstrap/App.xaml b/Bloxstrap/App.xaml index de6837b..afdfb30 100644 --- a/Bloxstrap/App.xaml +++ b/Bloxstrap/App.xaml @@ -1,12 +1,13 @@  + xmlns:local="clr-namespace:Bloxstrap" + xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"> - - + + diff --git a/Bloxstrap/App.xaml.cs b/Bloxstrap/App.xaml.cs index 6e6eb7b..77cc318 100644 --- a/Bloxstrap/App.xaml.cs +++ b/Bloxstrap/App.xaml.cs @@ -6,7 +6,6 @@ using System.Net.Http; using System.Net; using System.Reflection; using System.Windows; - using Microsoft.Win32; using Bloxstrap.Models; @@ -96,7 +95,8 @@ namespace Bloxstrap if (IsQuiet) BaseDirectory = Path.Combine(Directories.LocalAppData, ProjectName); else - new Preferences().ShowDialog(); + //new Preferences().ShowDialog(); + new Configuration.MainWindow().ShowDialog(); } else { @@ -129,7 +129,8 @@ namespace Bloxstrap string commandLine = ""; #if DEBUG - new Preferences().ShowDialog(); + //new Preferences().ShowDialog(); + new Configuration.MainWindow().ShowDialog(); #else if (LaunchArgs.Length > 0) { @@ -141,7 +142,8 @@ namespace Bloxstrap return; } - new Preferences().ShowDialog(); + //new Preferences().ShowDialog(); + new Configuration.MainWindow().ShowDialog(); } else if (LaunchArgs[0].StartsWith("roblox-player:")) { diff --git a/Bloxstrap/Bloxstrap.csproj b/Bloxstrap/Bloxstrap.csproj index 7ea46c8..b6cbd71 100644 --- a/Bloxstrap/Bloxstrap.csproj +++ b/Bloxstrap/Bloxstrap.csproj @@ -11,6 +11,10 @@ 2.0.0.0 + + + + @@ -22,9 +26,15 @@ + + + + + + diff --git a/Bloxstrap/Configuration/MainWindow.xaml b/Bloxstrap/Configuration/MainWindow.xaml new file mode 100644 index 0000000..7d88560 --- /dev/null +++ b/Bloxstrap/Configuration/MainWindow.xaml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Bloxstrap/Configuration/MainWindow.xaml.cs b/Bloxstrap/Configuration/MainWindow.xaml.cs new file mode 100644 index 0000000..5fb1df1 --- /dev/null +++ b/Bloxstrap/Configuration/MainWindow.xaml.cs @@ -0,0 +1,13 @@ +namespace Bloxstrap.Configuration +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow + { + public MainWindow() + { + InitializeComponent(); + } + } +} diff --git a/Bloxstrap/Configuration/Pages/AboutPage.xaml b/Bloxstrap/Configuration/Pages/AboutPage.xaml new file mode 100644 index 0000000..5029ad5 --- /dev/null +++ b/Bloxstrap/Configuration/Pages/AboutPage.xaml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Bloxstrap/Configuration/Pages/AboutPage.xaml.cs b/Bloxstrap/Configuration/Pages/AboutPage.xaml.cs new file mode 100644 index 0000000..a937cb0 --- /dev/null +++ b/Bloxstrap/Configuration/Pages/AboutPage.xaml.cs @@ -0,0 +1,13 @@ +namespace Bloxstrap.Configuration.Pages +{ + /// + /// Interaction logic for AboutPage.xaml + /// + public partial class AboutPage + { + public AboutPage() + { + InitializeComponent(); + } + } +} diff --git a/Bloxstrap/Configuration/Pages/BootstrapperPage.xaml b/Bloxstrap/Configuration/Pages/BootstrapperPage.xaml new file mode 100644 index 0000000..7369157 --- /dev/null +++ b/Bloxstrap/Configuration/Pages/BootstrapperPage.xaml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Bloxstrap/Configuration/Pages/BootstrapperPage.xaml.cs b/Bloxstrap/Configuration/Pages/BootstrapperPage.xaml.cs new file mode 100644 index 0000000..2576b63 --- /dev/null +++ b/Bloxstrap/Configuration/Pages/BootstrapperPage.xaml.cs @@ -0,0 +1,13 @@ +namespace Bloxstrap.Configuration.Pages +{ + /// + /// Interaction logic for BootstrapperPage.xaml + /// + public partial class BootstrapperPage + { + public BootstrapperPage() + { + InitializeComponent(); + } + } +} diff --git a/Bloxstrap/Configuration/Pages/InstallationPage.xaml b/Bloxstrap/Configuration/Pages/InstallationPage.xaml new file mode 100644 index 0000000..ca0ffc7 --- /dev/null +++ b/Bloxstrap/Configuration/Pages/InstallationPage.xaml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Bloxstrap/Configuration/Pages/InstallationPage.xaml.cs b/Bloxstrap/Configuration/Pages/InstallationPage.xaml.cs new file mode 100644 index 0000000..8e77793 --- /dev/null +++ b/Bloxstrap/Configuration/Pages/InstallationPage.xaml.cs @@ -0,0 +1,13 @@ +namespace Bloxstrap.Configuration.Pages +{ + /// + /// Interaction logic for InstallationPage.xaml + /// + public partial class InstallationPage + { + public InstallationPage() + { + InitializeComponent(); + } + } +} diff --git a/Bloxstrap/Configuration/Pages/IntegrationsPage.xaml b/Bloxstrap/Configuration/Pages/IntegrationsPage.xaml new file mode 100644 index 0000000..80bb266 --- /dev/null +++ b/Bloxstrap/Configuration/Pages/IntegrationsPage.xaml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Bloxstrap/Configuration/Pages/IntegrationsPage.xaml.cs b/Bloxstrap/Configuration/Pages/IntegrationsPage.xaml.cs new file mode 100644 index 0000000..1c053be --- /dev/null +++ b/Bloxstrap/Configuration/Pages/IntegrationsPage.xaml.cs @@ -0,0 +1,13 @@ +namespace Bloxstrap.Configuration.Pages +{ + /// + /// Interaction logic for IntegrationsPage.xaml + /// + public partial class IntegrationsPage + { + public IntegrationsPage() + { + InitializeComponent(); + } + } +} diff --git a/Bloxstrap/Configuration/Pages/ModsPage.xaml b/Bloxstrap/Configuration/Pages/ModsPage.xaml new file mode 100644 index 0000000..709a75a --- /dev/null +++ b/Bloxstrap/Configuration/Pages/ModsPage.xaml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Bloxstrap/Configuration/Pages/ModsPage.xaml.cs b/Bloxstrap/Configuration/Pages/ModsPage.xaml.cs new file mode 100644 index 0000000..45b2007 --- /dev/null +++ b/Bloxstrap/Configuration/Pages/ModsPage.xaml.cs @@ -0,0 +1,13 @@ +namespace Bloxstrap.Configuration.Pages +{ + /// + /// Interaction logic for ModsPage.xaml + /// + public partial class ModsPage + { + public ModsPage() + { + InitializeComponent(); + } + } +} diff --git a/Bloxstrap/Helpers/Updater.cs b/Bloxstrap/Helpers/Updater.cs index 1eee9d9..6876093 100644 --- a/Bloxstrap/Helpers/Updater.cs +++ b/Bloxstrap/Helpers/Updater.cs @@ -58,7 +58,8 @@ namespace Bloxstrap.Helpers MessageBoxButton.OK ); - new Preferences().ShowDialog(); + //new Preferences().ShowDialog(); + new Configuration.MainWindow().ShowDialog(); App.Terminate(); } } From f9140334b30d0405824c20cd5a1dfcf1277b586d Mon Sep 17 00:00:00 2001 From: pizzaboxer <41478239+pizzaboxer@users.noreply.github.com> Date: Wed, 1 Feb 2023 00:29:08 +0000 Subject: [PATCH 2/5] Add help topics and improve design --- Bloxstrap/App.xaml.cs | 8 +++- Bloxstrap/Configuration/MainWindow.xaml.cs | 13 ------ .../Configuration/Pages/AboutPage.xaml.cs | 13 ------ .../Pages/IntegrationsPage.xaml.cs | 13 ------ Bloxstrap/Helpers/Updater.cs | 3 +- .../{Configuration => Views}/MainWindow.xaml | 11 +++-- Bloxstrap/Views/MainWindow.xaml.cs | 35 +++++++++++++++ .../Pages/AboutPage.xaml | 40 +++++++++-------- Bloxstrap/Views/Pages/AboutPage.xaml.cs | 35 +++++++++++++++ .../Pages/BootstrapperPage.xaml | 2 +- .../Pages/BootstrapperPage.xaml.cs | 2 +- .../Pages/InstallationPage.xaml | 2 +- .../Pages/InstallationPage.xaml.cs | 2 +- .../Pages/IntegrationsPage.xaml | 9 ++-- .../Views/Pages/IntegrationsPage.xaml.cs | 25 +++++++++++ .../Pages/ModsPage.xaml | 33 ++++++-------- .../Pages/ModsPage.xaml.cs | 6 ++- Bloxstrap/Views/Pages/ReShadeHelpPage.xaml | 44 +++++++++++++++++++ Bloxstrap/Views/Pages/ReShadeHelpPage.xaml.cs | 28 ++++++++++++ 19 files changed, 231 insertions(+), 93 deletions(-) delete mode 100644 Bloxstrap/Configuration/MainWindow.xaml.cs delete mode 100644 Bloxstrap/Configuration/Pages/AboutPage.xaml.cs delete mode 100644 Bloxstrap/Configuration/Pages/IntegrationsPage.xaml.cs rename Bloxstrap/{Configuration => Views}/MainWindow.xaml (89%) create mode 100644 Bloxstrap/Views/MainWindow.xaml.cs rename Bloxstrap/{Configuration => Views}/Pages/AboutPage.xaml (72%) create mode 100644 Bloxstrap/Views/Pages/AboutPage.xaml.cs rename Bloxstrap/{Configuration => Views}/Pages/BootstrapperPage.xaml (98%) rename Bloxstrap/{Configuration => Views}/Pages/BootstrapperPage.xaml.cs (84%) rename Bloxstrap/{Configuration => Views}/Pages/InstallationPage.xaml (98%) rename Bloxstrap/{Configuration => Views}/Pages/InstallationPage.xaml.cs (84%) rename Bloxstrap/{Configuration => Views}/Pages/IntegrationsPage.xaml (89%) create mode 100644 Bloxstrap/Views/Pages/IntegrationsPage.xaml.cs rename Bloxstrap/{Configuration => Views}/Pages/ModsPage.xaml (53%) rename Bloxstrap/{Configuration => Views}/Pages/ModsPage.xaml.cs (67%) create mode 100644 Bloxstrap/Views/Pages/ReShadeHelpPage.xaml create mode 100644 Bloxstrap/Views/Pages/ReShadeHelpPage.xaml.cs diff --git a/Bloxstrap/App.xaml.cs b/Bloxstrap/App.xaml.cs index 77cc318..5b9559a 100644 --- a/Bloxstrap/App.xaml.cs +++ b/Bloxstrap/App.xaml.cs @@ -12,6 +12,7 @@ using Bloxstrap.Models; using Bloxstrap.Dialogs.Menu; using Bloxstrap.Enums; using Bloxstrap.Helpers; +using Bloxstrap.Views; namespace Bloxstrap { @@ -64,6 +65,9 @@ namespace Bloxstrap // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); + new MainWindow().ShowDialog(); + return; + LaunchArgs = e.Args; HttpClient.Timeout = TimeSpan.FromMinutes(5); @@ -96,7 +100,7 @@ namespace Bloxstrap BaseDirectory = Path.Combine(Directories.LocalAppData, ProjectName); else //new Preferences().ShowDialog(); - new Configuration.MainWindow().ShowDialog(); + new MainWindow().ShowDialog(); } else { @@ -130,7 +134,7 @@ namespace Bloxstrap #if DEBUG //new Preferences().ShowDialog(); - new Configuration.MainWindow().ShowDialog(); + new MainWindow().ShowDialog(); #else if (LaunchArgs.Length > 0) { diff --git a/Bloxstrap/Configuration/MainWindow.xaml.cs b/Bloxstrap/Configuration/MainWindow.xaml.cs deleted file mode 100644 index 5fb1df1..0000000 --- a/Bloxstrap/Configuration/MainWindow.xaml.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Bloxstrap.Configuration -{ - /// - /// Interaction logic for MainWindow.xaml - /// - public partial class MainWindow - { - public MainWindow() - { - InitializeComponent(); - } - } -} diff --git a/Bloxstrap/Configuration/Pages/AboutPage.xaml.cs b/Bloxstrap/Configuration/Pages/AboutPage.xaml.cs deleted file mode 100644 index a937cb0..0000000 --- a/Bloxstrap/Configuration/Pages/AboutPage.xaml.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Bloxstrap.Configuration.Pages -{ - /// - /// Interaction logic for AboutPage.xaml - /// - public partial class AboutPage - { - public AboutPage() - { - InitializeComponent(); - } - } -} diff --git a/Bloxstrap/Configuration/Pages/IntegrationsPage.xaml.cs b/Bloxstrap/Configuration/Pages/IntegrationsPage.xaml.cs deleted file mode 100644 index 1c053be..0000000 --- a/Bloxstrap/Configuration/Pages/IntegrationsPage.xaml.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Bloxstrap.Configuration.Pages -{ - /// - /// Interaction logic for IntegrationsPage.xaml - /// - public partial class IntegrationsPage - { - public IntegrationsPage() - { - InitializeComponent(); - } - } -} diff --git a/Bloxstrap/Helpers/Updater.cs b/Bloxstrap/Helpers/Updater.cs index 6876093..42a9c56 100644 --- a/Bloxstrap/Helpers/Updater.cs +++ b/Bloxstrap/Helpers/Updater.cs @@ -4,6 +4,7 @@ using System.IO; using System.Windows; using Bloxstrap.Dialogs.Menu; +using Bloxstrap.Views; namespace Bloxstrap.Helpers { @@ -59,7 +60,7 @@ namespace Bloxstrap.Helpers ); //new Preferences().ShowDialog(); - new Configuration.MainWindow().ShowDialog(); + new MainWindow().ShowDialog(); App.Terminate(); } } diff --git a/Bloxstrap/Configuration/MainWindow.xaml b/Bloxstrap/Views/MainWindow.xaml similarity index 89% rename from Bloxstrap/Configuration/MainWindow.xaml rename to Bloxstrap/Views/MainWindow.xaml index 7d88560..2d6ce86 100644 --- a/Bloxstrap/Configuration/MainWindow.xaml +++ b/Bloxstrap/Views/MainWindow.xaml @@ -1,12 +1,13 @@ - - + @@ -49,7 +50,7 @@ - + @@ -59,6 +60,8 @@ + + diff --git a/Bloxstrap/Views/MainWindow.xaml.cs b/Bloxstrap/Views/MainWindow.xaml.cs new file mode 100644 index 0000000..d8d5298 --- /dev/null +++ b/Bloxstrap/Views/MainWindow.xaml.cs @@ -0,0 +1,35 @@ +using System.Windows.Controls; +using System; +using Wpf.Ui.Controls.Interfaces; +using Wpf.Ui.Mvvm.Contracts; +using Wpf.Ui.Mvvm.Services; + +namespace Bloxstrap.Views +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : INavigationWindow + { + public MainWindow() + { + InitializeComponent(); + } + + #region INavigationWindow methods + + public Frame GetFrame() => RootFrame; + + public INavigation GetNavigation() => RootNavigation; + + public bool Navigate(Type pageType) => RootNavigation.Navigate(pageType); + + public void SetPageService(IPageService pageService) => RootNavigation.PageService = pageService; + + public void ShowWindow() => Show(); + + public void CloseWindow() => Close(); + + #endregion INavigationWindow methods + } +} diff --git a/Bloxstrap/Configuration/Pages/AboutPage.xaml b/Bloxstrap/Views/Pages/AboutPage.xaml similarity index 72% rename from Bloxstrap/Configuration/Pages/AboutPage.xaml rename to Bloxstrap/Views/Pages/AboutPage.xaml index 5029ad5..655960f 100644 --- a/Bloxstrap/Configuration/Pages/AboutPage.xaml +++ b/Bloxstrap/Views/Pages/AboutPage.xaml @@ -1,4 +1,4 @@ - - - + + - + @@ -49,15 +49,16 @@ - - + + - - + + - - + + + @@ -75,51 +76,52 @@ - + - + - + - + - + + - + - + - + diff --git a/Bloxstrap/Views/Pages/AboutPage.xaml.cs b/Bloxstrap/Views/Pages/AboutPage.xaml.cs new file mode 100644 index 0000000..152d950 --- /dev/null +++ b/Bloxstrap/Views/Pages/AboutPage.xaml.cs @@ -0,0 +1,35 @@ +using System.Diagnostics; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; +using Bloxstrap.Helpers; +using CommunityToolkit.Mvvm.Input; +using static System.Net.Mime.MediaTypeNames; + +namespace Bloxstrap.Views.Pages +{ + /// + /// Interaction logic for AboutPage.xaml + /// + public partial class AboutPage + { + public AboutPage() + { + DataContext = new AboutPageViewModel(); + InitializeComponent(); + } + } + + public class AboutPageViewModel + { + public ICommand OpenWebpageCommand => new RelayCommand(OpenWebpage); + + private void OpenWebpage(string? location) + { + if (location is null) + return; + + Utilities.OpenWebsite(location); + } + } +} diff --git a/Bloxstrap/Configuration/Pages/BootstrapperPage.xaml b/Bloxstrap/Views/Pages/BootstrapperPage.xaml similarity index 98% rename from Bloxstrap/Configuration/Pages/BootstrapperPage.xaml rename to Bloxstrap/Views/Pages/BootstrapperPage.xaml index 7369157..69bb640 100644 --- a/Bloxstrap/Configuration/Pages/BootstrapperPage.xaml +++ b/Bloxstrap/Views/Pages/BootstrapperPage.xaml @@ -1,4 +1,4 @@ - /// Interaction logic for BootstrapperPage.xaml diff --git a/Bloxstrap/Configuration/Pages/InstallationPage.xaml b/Bloxstrap/Views/Pages/InstallationPage.xaml similarity index 98% rename from Bloxstrap/Configuration/Pages/InstallationPage.xaml rename to Bloxstrap/Views/Pages/InstallationPage.xaml index ca0ffc7..4079dbd 100644 --- a/Bloxstrap/Configuration/Pages/InstallationPage.xaml +++ b/Bloxstrap/Views/Pages/InstallationPage.xaml @@ -1,4 +1,4 @@ - /// Interaction logic for InstallationPage.xaml diff --git a/Bloxstrap/Configuration/Pages/IntegrationsPage.xaml b/Bloxstrap/Views/Pages/IntegrationsPage.xaml similarity index 89% rename from Bloxstrap/Configuration/Pages/IntegrationsPage.xaml rename to Bloxstrap/Views/Pages/IntegrationsPage.xaml index 80bb266..a62b300 100644 --- a/Bloxstrap/Configuration/Pages/IntegrationsPage.xaml +++ b/Bloxstrap/Views/Pages/IntegrationsPage.xaml @@ -1,4 +1,4 @@ - - + - + + @@ -74,7 +75,7 @@ - + diff --git a/Bloxstrap/Views/Pages/IntegrationsPage.xaml.cs b/Bloxstrap/Views/Pages/IntegrationsPage.xaml.cs new file mode 100644 index 0000000..3633624 --- /dev/null +++ b/Bloxstrap/Views/Pages/IntegrationsPage.xaml.cs @@ -0,0 +1,25 @@ +using System; +using System.Diagnostics; +using System.Windows; +using Wpf.Ui.Common.Interfaces; +using Wpf.Ui.Mvvm.Contracts; +using Wpf.Ui.Mvvm.Interfaces; + +namespace Bloxstrap.Views.Pages +{ + /// + /// Interaction logic for IntegrationsPage.xaml + /// + public partial class IntegrationsPage + { + public IntegrationsPage() + { + InitializeComponent(); + } + + private void NavigateReShadeHelp(object sender, EventArgs e) + { + ((INavigationWindow)Window.GetWindow(this)!).Navigate(typeof(ReShadeHelpPage)); + } + } +} diff --git a/Bloxstrap/Configuration/Pages/ModsPage.xaml b/Bloxstrap/Views/Pages/ModsPage.xaml similarity index 53% rename from Bloxstrap/Configuration/Pages/ModsPage.xaml rename to Bloxstrap/Views/Pages/ModsPage.xaml index 709a75a..81caa2b 100644 --- a/Bloxstrap/Configuration/Pages/ModsPage.xaml +++ b/Bloxstrap/Views/Pages/ModsPage.xaml @@ -1,4 +1,4 @@ - - - - - - - - - - - - - - - - - - + + + + + + - + @@ -67,5 +56,11 @@ + + + + + + diff --git a/Bloxstrap/Configuration/Pages/ModsPage.xaml.cs b/Bloxstrap/Views/Pages/ModsPage.xaml.cs similarity index 67% rename from Bloxstrap/Configuration/Pages/ModsPage.xaml.cs rename to Bloxstrap/Views/Pages/ModsPage.xaml.cs index 45b2007..24d0dc7 100644 --- a/Bloxstrap/Configuration/Pages/ModsPage.xaml.cs +++ b/Bloxstrap/Views/Pages/ModsPage.xaml.cs @@ -1,4 +1,8 @@ -namespace Bloxstrap.Configuration.Pages +using System; +using System.Windows; +using Wpf.Ui.Mvvm.Contracts; + +namespace Bloxstrap.Views.Pages { /// /// Interaction logic for ModsPage.xaml diff --git a/Bloxstrap/Views/Pages/ReShadeHelpPage.xaml b/Bloxstrap/Views/Pages/ReShadeHelpPage.xaml new file mode 100644 index 0000000..0680f6e --- /dev/null +++ b/Bloxstrap/Views/Pages/ReShadeHelpPage.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Bloxstrap/Views/Pages/ReShadeHelpPage.xaml.cs b/Bloxstrap/Views/Pages/ReShadeHelpPage.xaml.cs new file mode 100644 index 0000000..1b9b822 --- /dev/null +++ b/Bloxstrap/Views/Pages/ReShadeHelpPage.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +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; + +namespace Bloxstrap.Views.Pages +{ + /// + /// Interaction logic for ReShadeHelpPage.xaml + /// + public partial class ReShadeHelpPage + { + public ReShadeHelpPage() + { + InitializeComponent(); + } + } +} From 8552d94a4ad7111305beff232db2aaf4d51dcb4e Mon Sep 17 00:00:00 2001 From: pizzaboxer <41478239+pizzaboxer@users.noreply.github.com> Date: Fri, 3 Feb 2023 17:37:10 +0000 Subject: [PATCH 3/5] Add backend code for new menu --- Bloxstrap/App.xaml.cs | 22 ++-- Bloxstrap/Bloxstrap.csproj | 1 + Bloxstrap/Bootstrapper.cs | 6 + .../BootstrapperDialogForm.cs | 4 +- Bloxstrap/Models/DeployInfo.cs | 15 +++ Bloxstrap/ViewModels/AboutViewModel.cs | 21 ++++ Bloxstrap/ViewModels/BootstrapperViewModel.cs | 91 +++++++++++++++ Bloxstrap/ViewModels/InstallationViewModel.cs | 108 ++++++++++++++++++ Bloxstrap/ViewModels/IntegrationsViewModel.cs | 95 +++++++++++++++ Bloxstrap/ViewModels/MainWindowViewModel.cs | 96 ++++++++++++++++ Bloxstrap/ViewModels/ModsViewModel.cs | 37 ++++++ Bloxstrap/Views/MainWindow.xaml | 18 +-- Bloxstrap/Views/MainWindow.xaml.cs | 18 +++ Bloxstrap/Views/Pages/AboutPage.xaml | 45 +++++--- Bloxstrap/Views/Pages/AboutPage.xaml.cs | 23 +--- Bloxstrap/Views/Pages/BootstrapperPage.xaml | 13 ++- .../Views/Pages/BootstrapperPage.xaml.cs | 5 +- Bloxstrap/Views/Pages/InstallationPage.xaml | 49 ++++++-- .../Views/Pages/InstallationPage.xaml.cs | 5 +- Bloxstrap/Views/Pages/IntegrationsPage.xaml | 89 +++++++++------ .../Views/Pages/IntegrationsPage.xaml.cs | 13 +-- Bloxstrap/Views/Pages/ModsPage.xaml | 41 +++++-- Bloxstrap/Views/Pages/ModsPage.xaml.cs | 5 +- Bloxstrap/Views/Pages/ReShadeHelpPage.xaml | 6 +- Bloxstrap/app.manifest | 79 +++++++++++++ 25 files changed, 770 insertions(+), 135 deletions(-) create mode 100644 Bloxstrap/Models/DeployInfo.cs create mode 100644 Bloxstrap/ViewModels/AboutViewModel.cs create mode 100644 Bloxstrap/ViewModels/BootstrapperViewModel.cs create mode 100644 Bloxstrap/ViewModels/InstallationViewModel.cs create mode 100644 Bloxstrap/ViewModels/IntegrationsViewModel.cs create mode 100644 Bloxstrap/ViewModels/MainWindowViewModel.cs create mode 100644 Bloxstrap/ViewModels/ModsViewModel.cs create mode 100644 Bloxstrap/app.manifest diff --git a/Bloxstrap/App.xaml.cs b/Bloxstrap/App.xaml.cs index 5b9559a..1988186 100644 --- a/Bloxstrap/App.xaml.cs +++ b/Bloxstrap/App.xaml.cs @@ -21,13 +21,13 @@ namespace Bloxstrap /// public partial class App : Application { - public const StringComparison StringFormat = StringComparison.InvariantCulture; public static readonly CultureInfo CultureFormat = CultureInfo.InvariantCulture; public const string ProjectName = "Bloxstrap"; public const string ProjectRepository = "pizzaboxer/bloxstrap"; public static string BaseDirectory = null!; + public static bool IsSetupComplete { get; set; } = true; public static bool IsFirstRun { get; private set; } = false; public static bool IsQuiet { get; private set; } = false; public static bool IsUninstall { get; private set; } = false; @@ -65,9 +65,6 @@ namespace Bloxstrap // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); - new MainWindow().ShowDialog(); - return; - LaunchArgs = e.Args; HttpClient.Timeout = TimeSpan.FromMinutes(5); @@ -95,12 +92,13 @@ namespace Bloxstrap { IsFirstRun = true; Settings = SettingsManager.Settings; + BaseDirectory = Path.Combine(Directories.LocalAppData, ProjectName); - if (IsQuiet) - BaseDirectory = Path.Combine(Directories.LocalAppData, ProjectName); - else - //new Preferences().ShowDialog(); + if (!IsQuiet) + { + IsSetupComplete = false; new MainWindow().ShowDialog(); + } } else { @@ -109,8 +107,7 @@ namespace Bloxstrap } // preferences dialog was closed, and so base directory was never set - // (this doesnt account for the registry value not existing but thats basically never gonna happen) - if (String.IsNullOrEmpty(BaseDirectory)) + if (!IsSetupComplete) return; Directories.Initialize(BaseDirectory); @@ -132,8 +129,7 @@ namespace Bloxstrap string commandLine = ""; -#if DEBUG - //new Preferences().ShowDialog(); +#if false//DEBUG new MainWindow().ShowDialog(); #else if (LaunchArgs.Length > 0) @@ -147,7 +143,7 @@ namespace Bloxstrap } //new Preferences().ShowDialog(); - new Configuration.MainWindow().ShowDialog(); + new MainWindow().ShowDialog(); } else if (LaunchArgs[0].StartsWith("roblox-player:")) { diff --git a/Bloxstrap/Bloxstrap.csproj b/Bloxstrap/Bloxstrap.csproj index b6cbd71..7a5330e 100644 --- a/Bloxstrap/Bloxstrap.csproj +++ b/Bloxstrap/Bloxstrap.csproj @@ -9,6 +9,7 @@ Bloxstrap.ico 2.0.0 2.0.0.0 + app.manifest diff --git a/Bloxstrap/Bootstrapper.cs b/Bloxstrap/Bootstrapper.cs index 244c251..f52f4e3 100644 --- a/Bloxstrap/Bootstrapper.cs +++ b/Bloxstrap/Bootstrapper.cs @@ -449,6 +449,12 @@ namespace Bloxstrap private void UpdateProgressbar() { int newProgress = (int)Math.Floor(ProgressIncrement * TotalDownloadedBytes); + + // bugcheck: if we're restoring a file from a package, it'll incorrectly increment the progress beyond 100 + // too lazy to fix properly so lol + if (newProgress > 100) + return; + Dialog.ProgressValue = newProgress; } diff --git a/Bloxstrap/Dialogs/BootstrapperDialogs/BootstrapperDialogForm.cs b/Bloxstrap/Dialogs/BootstrapperDialogs/BootstrapperDialogForm.cs index fc60e59..98e958d 100644 --- a/Bloxstrap/Dialogs/BootstrapperDialogs/BootstrapperDialogForm.cs +++ b/Bloxstrap/Dialogs/BootstrapperDialogs/BootstrapperDialogForm.cs @@ -84,13 +84,13 @@ namespace Bloxstrap.Dialogs.BootstrapperDialogs if (Bootstrapper is null) { - Message = "Style Preview - Click Cancel to return"; + Message = "Style preview - Click Cancel to close"; CancelEnabled = true; } else { Bootstrapper.Dialog = this; - Task.Run(() => RunBootstrapper()); + Task.Run(RunBootstrapper); } } diff --git a/Bloxstrap/Models/DeployInfo.cs b/Bloxstrap/Models/DeployInfo.cs new file mode 100644 index 0000000..2f8f265 --- /dev/null +++ b/Bloxstrap/Models/DeployInfo.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Bloxstrap.Models +{ + public class DeployInfo + { + public string Timestamp { get; set; } = null!; + public string Version { get; set; } = null!; + public string VersionGuid { get; set; } = null!; + } +} diff --git a/Bloxstrap/ViewModels/AboutViewModel.cs b/Bloxstrap/ViewModels/AboutViewModel.cs new file mode 100644 index 0000000..229d056 --- /dev/null +++ b/Bloxstrap/ViewModels/AboutViewModel.cs @@ -0,0 +1,21 @@ +using System.Windows.Input; +using CommunityToolkit.Mvvm.Input; +using Bloxstrap.Helpers; + +namespace Bloxstrap.ViewModels +{ + public class AboutViewModel + { + public ICommand OpenWebpageCommand => new RelayCommand(OpenWebpage); + + private void OpenWebpage(string? location) + { + if (location is null) + return; + + Utilities.OpenWebsite(location); + } + + public string Version => $"Version {App.Version}"; + } +} diff --git a/Bloxstrap/ViewModels/BootstrapperViewModel.cs b/Bloxstrap/ViewModels/BootstrapperViewModel.cs new file mode 100644 index 0000000..5d77c0d --- /dev/null +++ b/Bloxstrap/ViewModels/BootstrapperViewModel.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; +using Bloxstrap.Enums; +using Bloxstrap.Views; +using CommunityToolkit.Mvvm.Input; +using Wpf.Ui.Mvvm.Services; +using Wpf.Ui.Mvvm.Contracts; + +namespace Bloxstrap.ViewModels +{ + public class BootstrapperViewModel + { + private readonly Page _page; + + public ICommand PreviewBootstrapperCommand => new RelayCommand(PreviewBootstrapper); + + private void PreviewBootstrapper() => App.Settings.BootstrapperStyle.Show(); + + public BootstrapperViewModel(Page page) + { + _page = page; + } + + public bool UpdateCheckingEnabled + { + get => App.Settings.CheckForUpdates; + set => App.Settings.CheckForUpdates = value; + } + + public bool ChannelChangePromptingEnabled + { + get => App.Settings.PromptChannelChange; + set => App.Settings.PromptChannelChange = value; + } + + public IReadOnlyDictionary Themes { get; set; } = new Dictionary() + { + { "System Default", Enums.Theme.Default }, + { "Light", Enums.Theme.Light }, + { "Dark", Enums.Theme.Dark }, + }; + + public string Theme + { + get => Themes.FirstOrDefault(x => x.Value == App.Settings.Theme).Key; + set + { + App.Settings.Theme = Themes[value]; + ((MainWindow)Window.GetWindow(_page)!).SetTheme(); + } + } + + public IReadOnlyDictionary Dialogs { get; set; } = new Dictionary() + { + { "Vista (2009 - 2011)", BootstrapperStyle.VistaDialog }, + { "Legacy (2009 - 2011)", BootstrapperStyle.LegacyDialog2009 }, + { "Legacy (2011 - 2014)", BootstrapperStyle.LegacyDialog2011 }, + { "Progress (~2014)", BootstrapperStyle.ProgressDialog }, + }; + + public string Dialog + { + get => Dialogs.FirstOrDefault(x => x.Value == App.Settings.BootstrapperStyle).Key; + set => App.Settings.BootstrapperStyle = Dialogs[value]; + } + + public IReadOnlyDictionary Icons { get; set; } = new Dictionary() + { + { "Bloxstrap", BootstrapperIcon.IconBloxstrap }, + { "2009", BootstrapperIcon.Icon2009 }, + { "2011", BootstrapperIcon.Icon2011 }, + { "2015", BootstrapperIcon.IconEarly2015 }, + { "2016", BootstrapperIcon.IconLate2015 }, + { "2017", BootstrapperIcon.Icon2017 }, + { "2019", BootstrapperIcon.Icon2019 }, + { "2022", BootstrapperIcon.Icon2022 } + }; + + public string Icon + { + get => Icons.FirstOrDefault(x => x.Value == App.Settings.BootstrapperIcon).Key; + set => App.Settings.BootstrapperIcon = Icons[value]; + } + } +} diff --git a/Bloxstrap/ViewModels/InstallationViewModel.cs b/Bloxstrap/ViewModels/InstallationViewModel.cs new file mode 100644 index 0000000..5fab280 --- /dev/null +++ b/Bloxstrap/ViewModels/InstallationViewModel.cs @@ -0,0 +1,108 @@ +using Bloxstrap.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; +using CommunityToolkit.Mvvm.Input; +using System.Windows.Forms; +using Wpf.Ui.Mvvm.Interfaces; +using System.ComponentModel; +using Bloxstrap.Helpers; +using Bloxstrap.Models; + +namespace Bloxstrap.ViewModels +{ + public class InstallationViewModel : INotifyPropertyChanged + { + public event PropertyChangedEventHandler? PropertyChanged; + public void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + + private IEnumerable _channels = DeployManager.ChannelsAbstracted.Contains(App.Settings.Channel) ? DeployManager.ChannelsAbstracted : DeployManager.ChannelsAll; + private bool _showAllChannels = !DeployManager.ChannelsAbstracted.Contains(App.Settings.Channel); + + public ICommand BrowseInstallLocationCommand => new RelayCommand(BrowseInstallLocation); + + public DeployInfo? ChannelDeployInfo { get; private set; } = null; //new DeployInfo(){ Version = "hi", VersionGuid = "hi", Timestamp = "January 25 2023 at 6:03:48 PM" }; + + public InstallationViewModel() + { + Task.Run(() => LoadChannelDeployInfo(App.Settings.Channel)); + } + + private async Task LoadChannelDeployInfo(string channel) + { + ChannelDeployInfo = null; + OnPropertyChanged(nameof(ChannelDeployInfo)); + + ClientVersion info = await DeployManager.GetLastDeploy(channel, true); + string? strTimestamp = info.Timestamp?.ToString("MM/dd/yyyy h:mm:ss tt", App.CultureFormat); + + ChannelDeployInfo = new DeployInfo() { Version = info.Version, VersionGuid = info.VersionGuid, Timestamp = strTimestamp! }; + OnPropertyChanged(nameof(ChannelDeployInfo)); + } + + private void BrowseInstallLocation() + { + using var dialog = new FolderBrowserDialog(); + + if (dialog.ShowDialog() == DialogResult.OK) + { + InstallLocation = dialog.SelectedPath; + OnPropertyChanged(nameof(InstallLocation)); + } + } + + public string InstallLocation + { + get => App.BaseDirectory; + set => App.BaseDirectory = value; + } + + public bool CreateDesktopIcon + { + get => App.Settings.CreateDesktopIcon; + set => App.Settings.CreateDesktopIcon = value; + } + + public IEnumerable Channels + { + get => _channels; + set => _channels = value; + } + + public string Channel + { + get => App.Settings.Channel; + set + { + //Task.Run(() => GetChannelInfo(value)); + Task.Run(() => LoadChannelDeployInfo(value)); + App.Settings.Channel = value; + } + } + + public bool ShowAllChannels + { + get => _showAllChannels; + set + { + if (value) + { + Channels = DeployManager.ChannelsAll; + } + else + { + Channels = DeployManager.ChannelsAbstracted; + Channel = DeployManager.DefaultChannel; + OnPropertyChanged(nameof(Channel)); + } + + OnPropertyChanged(nameof(Channels)); + + _showAllChannels = value; + } + } + } +} diff --git a/Bloxstrap/ViewModels/IntegrationsViewModel.cs b/Bloxstrap/ViewModels/IntegrationsViewModel.cs new file mode 100644 index 0000000..e30dae2 --- /dev/null +++ b/Bloxstrap/ViewModels/IntegrationsViewModel.cs @@ -0,0 +1,95 @@ +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; +using System.ComponentModel; +using CommunityToolkit.Mvvm.Input; +using Wpf.Ui.Mvvm.Contracts; +using Bloxstrap.Views.Pages; +using Bloxstrap.Helpers; +using System.Diagnostics; + +namespace Bloxstrap.ViewModels +{ + public class IntegrationsViewModel : INotifyPropertyChanged + { + public event PropertyChangedEventHandler? PropertyChanged; + public void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + + private readonly Page _page; + + public ICommand OpenReShadeFolderCommand => new RelayCommand(OpenReShadeFolder); + public ICommand ShowReShadeHelpCommand => new RelayCommand(ShowReShadeHelp); + + public bool CanOpenReShadeFolder => !App.IsFirstRun; + + public IntegrationsViewModel(Page page) + { + _page = page; + } + + private void OpenReShadeFolder() + { + Process.Start("explorer.exe", Directories.ReShade); + } + + private void ShowReShadeHelp() + { + ((INavigationWindow)Window.GetWindow(_page)!).Navigate(typeof(ReShadeHelpPage)); + } + + public bool DiscordActivityEnabled + { + get => App.Settings.UseDiscordRichPresence; + set + { + App.Settings.UseDiscordRichPresence = value; + + if (!value) + { + DiscordActivityJoinEnabled = value; + OnPropertyChanged(nameof(DiscordActivityJoinEnabled)); + } + } + } + + public bool DiscordActivityJoinEnabled + { + get => !App.Settings.HideRPCButtons; + set => App.Settings.HideRPCButtons = !value; + } + + public bool ReShadeEnabled + { + get => App.Settings.UseReShade; + set + { + App.Settings.UseReShade = value; + ReShadePresetsEnabled = value; + OnPropertyChanged(nameof(ReShadePresetsEnabled)); + } + } + + public bool ReShadePresetsEnabled + { + get => App.Settings.UseReShadeExtraviPresets; + set => App.Settings.UseReShadeExtraviPresets = value; + } + + public bool RbxFpsUnlockerEnabled + { + get => App.Settings.RFUEnabled; + set + { + App.Settings.RFUEnabled = value; + RbxFpsUnlockerAutocloseEnabled = value; + OnPropertyChanged(nameof(RbxFpsUnlockerAutocloseEnabled)); + } + } + + public bool RbxFpsUnlockerAutocloseEnabled + { + get => App.Settings.RFUAutoclose; + set => App.Settings.RFUAutoclose = value; + } + } +} diff --git a/Bloxstrap/ViewModels/MainWindowViewModel.cs b/Bloxstrap/ViewModels/MainWindowViewModel.cs new file mode 100644 index 0000000..508082d --- /dev/null +++ b/Bloxstrap/ViewModels/MainWindowViewModel.cs @@ -0,0 +1,96 @@ +using System.IO; +using System; +using System.Windows; +using System.Windows.Automation.Peers; +using System.Windows.Input; +using Bloxstrap.Views; +using CommunityToolkit.Mvvm.Input; +using Microsoft.Win32; + +namespace Bloxstrap.ViewModels +{ + public class MainWindowViewModel + { + private readonly Window _window; + private readonly string _originalBaseDirectory = App.BaseDirectory; // we need this to check if the basedirectory changes + + public ICommand CloseWindowCommand => new RelayCommand(CloseWindow); + public ICommand ConfirmSettingsCommand => new RelayCommand(ConfirmSettings); + + public string ConfirmButtonText => App.IsFirstRun ? "Install" : "Save"; + + public MainWindowViewModel(Window window) + { + _window = window; + } + + private void CloseWindow() => _window.Close(); + + private void ConfirmSettings() + { + if (String.IsNullOrEmpty(App.BaseDirectory)) + { + App.ShowMessageBox("You must set an install location", MessageBoxImage.Error); + return; + } + + try + { + // check if we can write to the directory (a bit hacky but eh) + + string testPath = App.BaseDirectory; + string testFile = Path.Combine(testPath, $"{App.ProjectName}WriteTest.txt"); + bool testPathExists = Directory.Exists(testPath); + + if (!testPathExists) + Directory.CreateDirectory(testPath); + + File.WriteAllText(testFile, "hi"); + File.Delete(testFile); + + if (!testPathExists) + Directory.Delete(testPath); + } + catch (UnauthorizedAccessException) + { + App.ShowMessageBox($"{App.ProjectName} does not have write access to the install location you selected. Please choose another install location.", MessageBoxImage.Error); + return; + } + catch (Exception ex) + { + App.ShowMessageBox(ex.Message, MessageBoxImage.Error); + return; + } + + if (!App.IsFirstRun) + { + App.SettingsManager.ShouldSave = true; + + if (App.BaseDirectory != _originalBaseDirectory) + { + App.ShowMessageBox($"{App.ProjectName} will install to the new location you've set the next time it runs.", MessageBoxImage.Information); + + App.Settings.VersionGuid = ""; + + using (RegistryKey registryKey = Registry.CurrentUser.CreateSubKey($@"Software\{App.ProjectName}")) + { + registryKey.SetValue("InstallLocation", App.BaseDirectory); + registryKey.SetValue("OldInstallLocation", _originalBaseDirectory); + registryKey.Close(); + } + + // preserve settings + // we don't need to copy the bootstrapper over since the install process will do that automatically + + App.SettingsManager.Save(); + + File.Copy(Path.Combine(App.BaseDirectory, "Settings.json"), Path.Combine(App.BaseDirectory, "Settings.json")); + } + } + + App.IsSetupComplete = true; + + CloseWindow(); + } + } +} diff --git a/Bloxstrap/ViewModels/ModsViewModel.cs b/Bloxstrap/ViewModels/ModsViewModel.cs new file mode 100644 index 0000000..99ce853 --- /dev/null +++ b/Bloxstrap/ViewModels/ModsViewModel.cs @@ -0,0 +1,37 @@ +using System.Diagnostics; +using System.Windows.Input; +using Bloxstrap.Helpers; +using CommunityToolkit.Mvvm.Input; + +namespace Bloxstrap.ViewModels +{ + public class ModsViewModel + { + public ICommand OpenModsFolderCommand => new RelayCommand(OpenModsFolder); + + public bool CanOpenModsFolder => !App.IsFirstRun; + + private void OpenModsFolder() + { + Process.Start("explorer.exe", Directories.Modifications); + } + + public bool OldDeathSoundEnabled + { + get => App.Settings.UseOldDeathSound; + set => App.Settings.UseOldDeathSound = value; + } + + public bool OldMouseCursorEnabled + { + get => App.Settings.UseOldMouseCursor; + set => App.Settings.UseOldMouseCursor = value; + } + + public bool DisableAppPatchEnabled + { + get => App.Settings.UseDisableAppPatch; + set => App.Settings.UseDisableAppPatch = value; + } + } +} diff --git a/Bloxstrap/Views/MainWindow.xaml b/Bloxstrap/Views/MainWindow.xaml index 2d6ce86..d401a8f 100644 --- a/Bloxstrap/Views/MainWindow.xaml +++ b/Bloxstrap/Views/MainWindow.xaml @@ -1,12 +1,14 @@  - + - + @@ -37,7 +39,7 @@ - + @@ -89,10 +91,10 @@ - + - + diff --git a/Bloxstrap/Views/MainWindow.xaml.cs b/Bloxstrap/Views/MainWindow.xaml.cs index d8d5298..69c4b87 100644 --- a/Bloxstrap/Views/MainWindow.xaml.cs +++ b/Bloxstrap/Views/MainWindow.xaml.cs @@ -2,7 +2,10 @@ using System; using Wpf.Ui.Controls.Interfaces; using Wpf.Ui.Mvvm.Contracts; +using Bloxstrap.Enums; +using Bloxstrap.ViewModels; using Wpf.Ui.Mvvm.Services; +using Wpf.Ui.Appearance; namespace Bloxstrap.Views { @@ -11,11 +14,26 @@ namespace Bloxstrap.Views /// public partial class MainWindow : INavigationWindow { + private readonly IThemeService _themeService = new ThemeService(); + public MainWindow() { + DataContext = new MainWindowViewModel(this); + SetTheme(); InitializeComponent(); } + public void SetTheme() + { + var theme = ThemeType.Light; + + if (App.Settings.Theme.GetFinal() == Enums.Theme.Dark) + theme = ThemeType.Dark; + + _themeService.SetTheme(theme); + _themeService.SetSystemAccent(); + } + #region INavigationWindow methods public Frame GetFrame() => RootFrame; diff --git a/Bloxstrap/Views/Pages/AboutPage.xaml b/Bloxstrap/Views/Pages/AboutPage.xaml index 655960f..f441246 100644 --- a/Bloxstrap/Views/Pages/AboutPage.xaml +++ b/Bloxstrap/Views/Pages/AboutPage.xaml @@ -28,14 +28,18 @@ - + - + + + + + + - @@ -43,22 +47,26 @@ + - + Multako - + bluepilledgreat - - + 1011025m + + + sitiom + - + @@ -76,52 +84,51 @@ - + - + - + - + - + - - + - + - + - + diff --git a/Bloxstrap/Views/Pages/AboutPage.xaml.cs b/Bloxstrap/Views/Pages/AboutPage.xaml.cs index 152d950..1d3cbdb 100644 --- a/Bloxstrap/Views/Pages/AboutPage.xaml.cs +++ b/Bloxstrap/Views/Pages/AboutPage.xaml.cs @@ -1,10 +1,4 @@ -using System.Diagnostics; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Input; -using Bloxstrap.Helpers; -using CommunityToolkit.Mvvm.Input; -using static System.Net.Mime.MediaTypeNames; +using Bloxstrap.ViewModels; namespace Bloxstrap.Views.Pages { @@ -15,21 +9,8 @@ namespace Bloxstrap.Views.Pages { public AboutPage() { - DataContext = new AboutPageViewModel(); + DataContext = new AboutViewModel(); InitializeComponent(); } } - - public class AboutPageViewModel - { - public ICommand OpenWebpageCommand => new RelayCommand(OpenWebpage); - - private void OpenWebpage(string? location) - { - if (location is null) - return; - - Utilities.OpenWebsite(location); - } - } } diff --git a/Bloxstrap/Views/Pages/BootstrapperPage.xaml b/Bloxstrap/Views/Pages/BootstrapperPage.xaml index 69bb640..177ed9a 100644 --- a/Bloxstrap/Views/Pages/BootstrapperPage.xaml +++ b/Bloxstrap/Views/Pages/BootstrapperPage.xaml @@ -3,6 +3,7 @@ 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:models="clr-namespace:Bloxstrap.ViewModels" xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" @@ -20,7 +21,7 @@ - + @@ -29,7 +30,7 @@ - + @@ -41,7 +42,7 @@ - + @@ -50,7 +51,7 @@ - + @@ -59,8 +60,8 @@ - + - + diff --git a/Bloxstrap/Views/Pages/BootstrapperPage.xaml.cs b/Bloxstrap/Views/Pages/BootstrapperPage.xaml.cs index 676b3b8..de46bac 100644 --- a/Bloxstrap/Views/Pages/BootstrapperPage.xaml.cs +++ b/Bloxstrap/Views/Pages/BootstrapperPage.xaml.cs @@ -1,4 +1,6 @@ -namespace Bloxstrap.Views.Pages +using Bloxstrap.ViewModels; + +namespace Bloxstrap.Views.Pages { /// /// Interaction logic for BootstrapperPage.xaml @@ -7,6 +9,7 @@ { public BootstrapperPage() { + DataContext = new BootstrapperViewModel(this); InitializeComponent(); } } diff --git a/Bloxstrap/Views/Pages/InstallationPage.xaml b/Bloxstrap/Views/Pages/InstallationPage.xaml index 4079dbd..e0118f7 100644 --- a/Bloxstrap/Views/Pages/InstallationPage.xaml +++ b/Bloxstrap/Views/Pages/InstallationPage.xaml @@ -10,7 +10,7 @@ Scrollable="True"> - + @@ -24,8 +24,8 @@ - - + + @@ -36,7 +36,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -60,6 +60,16 @@ + + + @@ -71,15 +81,34 @@ - + - - + + - + - + + + + + + + + + + + + + diff --git a/Bloxstrap/Views/Pages/InstallationPage.xaml.cs b/Bloxstrap/Views/Pages/InstallationPage.xaml.cs index b2de3a5..de97c47 100644 --- a/Bloxstrap/Views/Pages/InstallationPage.xaml.cs +++ b/Bloxstrap/Views/Pages/InstallationPage.xaml.cs @@ -1,4 +1,6 @@ -namespace Bloxstrap.Views.Pages +using Bloxstrap.ViewModels; + +namespace Bloxstrap.Views.Pages { /// /// Interaction logic for InstallationPage.xaml @@ -7,6 +9,7 @@ { public InstallationPage() { + DataContext = new InstallationViewModel(); InitializeComponent(); } } diff --git a/Bloxstrap/Views/Pages/IntegrationsPage.xaml b/Bloxstrap/Views/Pages/IntegrationsPage.xaml index a62b300..d353c2d 100644 --- a/Bloxstrap/Views/Pages/IntegrationsPage.xaml +++ b/Bloxstrap/Views/Pages/IntegrationsPage.xaml @@ -1,14 +1,15 @@  - @@ -20,16 +21,16 @@ - + - + - + @@ -40,54 +41,78 @@ - + - + - + - + - - + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/Bloxstrap/Views/Pages/IntegrationsPage.xaml.cs b/Bloxstrap/Views/Pages/IntegrationsPage.xaml.cs index 3633624..caf7cfb 100644 --- a/Bloxstrap/Views/Pages/IntegrationsPage.xaml.cs +++ b/Bloxstrap/Views/Pages/IntegrationsPage.xaml.cs @@ -1,9 +1,6 @@ using System; -using System.Diagnostics; using System.Windows; -using Wpf.Ui.Common.Interfaces; -using Wpf.Ui.Mvvm.Contracts; -using Wpf.Ui.Mvvm.Interfaces; +using Bloxstrap.ViewModels; namespace Bloxstrap.Views.Pages { @@ -14,12 +11,12 @@ namespace Bloxstrap.Views.Pages { public IntegrationsPage() { + DataContext = new IntegrationsViewModel(this); InitializeComponent(); - } - private void NavigateReShadeHelp(object sender, EventArgs e) - { - ((INavigationWindow)Window.GetWindow(this)!).Navigate(typeof(ReShadeHelpPage)); + // rbxfpsunlocker does not have 64 bit support + if (!Environment.Is64BitOperatingSystem) + this.RbxFpsUnlockerOptions.Visibility = Visibility.Collapsed; } } } diff --git a/Bloxstrap/Views/Pages/ModsPage.xaml b/Bloxstrap/Views/Pages/ModsPage.xaml index 81caa2b..f9eb393 100644 --- a/Bloxstrap/Views/Pages/ModsPage.xaml +++ b/Bloxstrap/Views/Pages/ModsPage.xaml @@ -3,19 +3,41 @@ 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:models="clr-namespace:Bloxstrap.ViewModels" xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" Title="ModsPage" Scrollable="True"> - - + - - + + + + + + + + + + + @@ -34,31 +56,34 @@ + - + + - + + - + - + diff --git a/Bloxstrap/Views/Pages/ModsPage.xaml.cs b/Bloxstrap/Views/Pages/ModsPage.xaml.cs index 24d0dc7..73fc1ab 100644 --- a/Bloxstrap/Views/Pages/ModsPage.xaml.cs +++ b/Bloxstrap/Views/Pages/ModsPage.xaml.cs @@ -1,6 +1,4 @@ -using System; -using System.Windows; -using Wpf.Ui.Mvvm.Contracts; +using Bloxstrap.ViewModels; namespace Bloxstrap.Views.Pages { @@ -11,6 +9,7 @@ namespace Bloxstrap.Views.Pages { public ModsPage() { + DataContext = new ModsViewModel(); InitializeComponent(); } } diff --git a/Bloxstrap/Views/Pages/ReShadeHelpPage.xaml b/Bloxstrap/Views/Pages/ReShadeHelpPage.xaml index 0680f6e..d70aade 100644 --- a/Bloxstrap/Views/Pages/ReShadeHelpPage.xaml +++ b/Bloxstrap/Views/Pages/ReShadeHelpPage.xaml @@ -11,7 +11,7 @@ Scrollable="True"> - + @@ -36,9 +36,9 @@ - + - + diff --git a/Bloxstrap/app.manifest b/Bloxstrap/app.manifest new file mode 100644 index 0000000..897208d --- /dev/null +++ b/Bloxstrap/app.manifest @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 5c331a8ee41258196478231b74fef8b3dca8e394 Mon Sep 17 00:00:00 2001 From: pizzaboxer <41478239+pizzaboxer@users.noreply.github.com> Date: Fri, 3 Feb 2023 17:45:46 +0000 Subject: [PATCH 4/5] Remove old configuration menu --- Bloxstrap/App.xaml.cs | 1 - Bloxstrap/Bootstrapper.cs | 17 +- .../BootstrapperDialogForm.cs | 2 +- .../IBootstrapperDialog.cs | 2 +- .../LegacyDialog2009.Designer.cs | 2 +- .../LegacyDialog2009.cs | 2 +- .../LegacyDialog2009.resx | 0 .../LegacyDialog2011.Designer.cs | 2 +- .../LegacyDialog2011.cs | 2 +- .../LegacyDialog2011.resx | 0 Bloxstrap/Dialogs/Menu/ModHelp.xaml | 31 - Bloxstrap/Dialogs/Menu/ModHelp.xaml.cs | 21 - Bloxstrap/Dialogs/Menu/Preferences.xaml | 169 - Bloxstrap/Dialogs/Menu/Preferences.xaml.cs | 424 -- Bloxstrap/Dialogs/Menu/ReShadeHelp.xaml | 46 - Bloxstrap/Dialogs/Menu/ReShadeHelp.xaml.cs | 21 - .../Menu/Themes/ColourfulDarkTheme.xaml | 4505 ---------------- .../Menu/Themes/ColourfulDarkTheme.xaml.cs | 43 - .../Menu/Themes/ColourfulLightTheme.xaml | 4555 ---------------- .../Menu/Themes/ColourfulLightTheme.xaml.cs | 43 - Bloxstrap/Dialogs/Menu/Themes/DarkTheme.xaml | 4644 ----------------- .../Dialogs/Menu/Themes/DarkTheme.xaml.cs | 43 - Bloxstrap/Dialogs/Menu/Themes/LightTheme.xaml | 4461 ---------------- .../Dialogs/Menu/Themes/LightTheme.xaml.cs | 43 - .../ProgressDialog.Designer.cs | 2 +- .../ProgressDialog.cs | 2 +- .../ProgressDialog.resx | 0 .../VistaDialog.Designer.cs | 2 +- .../{BootstrapperDialogs => }/VistaDialog.cs | 2 +- .../VistaDialog.resx | 0 Bloxstrap/Enums/BootstrapperStyle.cs | 2 +- Bloxstrap/Helpers/Updater.cs | 1 - Bloxstrap/Properties/launchSettings.json | 3 +- 33 files changed, 28 insertions(+), 19065 deletions(-) rename Bloxstrap/Dialogs/{BootstrapperDialogs => }/BootstrapperDialogForm.cs (98%) rename Bloxstrap/Dialogs/{BootstrapperDialogs => }/IBootstrapperDialog.cs (90%) rename Bloxstrap/Dialogs/{BootstrapperDialogs => }/LegacyDialog2009.Designer.cs (98%) rename Bloxstrap/Dialogs/{BootstrapperDialogs => }/LegacyDialog2009.cs (96%) rename Bloxstrap/Dialogs/{BootstrapperDialogs => }/LegacyDialog2009.resx (100%) rename Bloxstrap/Dialogs/{BootstrapperDialogs => }/LegacyDialog2011.Designer.cs (98%) rename Bloxstrap/Dialogs/{BootstrapperDialogs => }/LegacyDialog2011.cs (96%) rename Bloxstrap/Dialogs/{BootstrapperDialogs => }/LegacyDialog2011.resx (100%) delete mode 100644 Bloxstrap/Dialogs/Menu/ModHelp.xaml delete mode 100644 Bloxstrap/Dialogs/Menu/ModHelp.xaml.cs delete mode 100644 Bloxstrap/Dialogs/Menu/Preferences.xaml delete mode 100644 Bloxstrap/Dialogs/Menu/Preferences.xaml.cs delete mode 100644 Bloxstrap/Dialogs/Menu/ReShadeHelp.xaml delete mode 100644 Bloxstrap/Dialogs/Menu/ReShadeHelp.xaml.cs delete mode 100644 Bloxstrap/Dialogs/Menu/Themes/ColourfulDarkTheme.xaml delete mode 100644 Bloxstrap/Dialogs/Menu/Themes/ColourfulDarkTheme.xaml.cs delete mode 100644 Bloxstrap/Dialogs/Menu/Themes/ColourfulLightTheme.xaml delete mode 100644 Bloxstrap/Dialogs/Menu/Themes/ColourfulLightTheme.xaml.cs delete mode 100644 Bloxstrap/Dialogs/Menu/Themes/DarkTheme.xaml delete mode 100644 Bloxstrap/Dialogs/Menu/Themes/DarkTheme.xaml.cs delete mode 100644 Bloxstrap/Dialogs/Menu/Themes/LightTheme.xaml delete mode 100644 Bloxstrap/Dialogs/Menu/Themes/LightTheme.xaml.cs rename Bloxstrap/Dialogs/{BootstrapperDialogs => }/ProgressDialog.Designer.cs (99%) rename Bloxstrap/Dialogs/{BootstrapperDialogs => }/ProgressDialog.cs (98%) rename Bloxstrap/Dialogs/{BootstrapperDialogs => }/ProgressDialog.resx (100%) rename Bloxstrap/Dialogs/{BootstrapperDialogs => }/VistaDialog.Designer.cs (96%) rename Bloxstrap/Dialogs/{BootstrapperDialogs => }/VistaDialog.cs (99%) rename Bloxstrap/Dialogs/{BootstrapperDialogs => }/VistaDialog.resx (100%) diff --git a/Bloxstrap/App.xaml.cs b/Bloxstrap/App.xaml.cs index 1988186..1c6426a 100644 --- a/Bloxstrap/App.xaml.cs +++ b/Bloxstrap/App.xaml.cs @@ -9,7 +9,6 @@ using System.Windows; using Microsoft.Win32; using Bloxstrap.Models; -using Bloxstrap.Dialogs.Menu; using Bloxstrap.Enums; using Bloxstrap.Helpers; using Bloxstrap.Views; diff --git a/Bloxstrap/Bootstrapper.cs b/Bloxstrap/Bootstrapper.cs index f52f4e3..10dbe28 100644 --- a/Bloxstrap/Bootstrapper.cs +++ b/Bloxstrap/Bootstrapper.cs @@ -11,7 +11,7 @@ using System.Windows; using Microsoft.Win32; -using Bloxstrap.Dialogs.BootstrapperDialogs; +using Bloxstrap.Dialogs; using Bloxstrap.Helpers; using Bloxstrap.Helpers.Integrations; using Bloxstrap.Helpers.RSMM; @@ -381,7 +381,20 @@ namespace Bloxstrap .WriteToFile(Path.Combine(Directories.StartMenu, "Play Roblox.lnk")); ShellLink.Shortcut.CreateShortcut(Directories.Application, "-preferences", Directories.Application, 0) - .WriteToFile(Path.Combine(Directories.StartMenu, $"Configure {App.ProjectName}.lnk")); + .WriteToFile(Path.Combine(Directories.StartMenu, $"{App.ProjectName} Menu.lnk")); + } + else + { + // v2.0.0 - rebadge configuration menu as just "Bloxstrap Menu" + string oldMenuShortcut = Path.Combine(Directories.StartMenu, $"Configure {App.ProjectName}.lnk"); + string newMenuShortcut = Path.Combine(Directories.StartMenu, $"{App.ProjectName} Menu.lnk"); + + if (File.Exists(oldMenuShortcut)) + File.Delete(oldMenuShortcut); + + if (!File.Exists(newMenuShortcut)) + ShellLink.Shortcut.CreateShortcut(Directories.Application, "-preferences", Directories.Application, 0) + .WriteToFile(newMenuShortcut); } if (App.Settings.CreateDesktopIcon && !File.Exists(Path.Combine(Directories.Desktop, "Play Roblox.lnk"))) diff --git a/Bloxstrap/Dialogs/BootstrapperDialogs/BootstrapperDialogForm.cs b/Bloxstrap/Dialogs/BootstrapperDialogForm.cs similarity index 98% rename from Bloxstrap/Dialogs/BootstrapperDialogs/BootstrapperDialogForm.cs rename to Bloxstrap/Dialogs/BootstrapperDialogForm.cs index 98e958d..7874267 100644 --- a/Bloxstrap/Dialogs/BootstrapperDialogs/BootstrapperDialogForm.cs +++ b/Bloxstrap/Dialogs/BootstrapperDialogForm.cs @@ -6,7 +6,7 @@ using System.Windows.Forms; using Bloxstrap.Enums; using Bloxstrap.Helpers; -namespace Bloxstrap.Dialogs.BootstrapperDialogs +namespace Bloxstrap.Dialogs { public class BootstrapperDialogForm : Form, IBootstrapperDialog { diff --git a/Bloxstrap/Dialogs/BootstrapperDialogs/IBootstrapperDialog.cs b/Bloxstrap/Dialogs/IBootstrapperDialog.cs similarity index 90% rename from Bloxstrap/Dialogs/BootstrapperDialogs/IBootstrapperDialog.cs rename to Bloxstrap/Dialogs/IBootstrapperDialog.cs index 772ecee..6b85d07 100644 --- a/Bloxstrap/Dialogs/BootstrapperDialogs/IBootstrapperDialog.cs +++ b/Bloxstrap/Dialogs/IBootstrapperDialog.cs @@ -1,6 +1,6 @@ using System.Windows.Forms; -namespace Bloxstrap.Dialogs.BootstrapperDialogs +namespace Bloxstrap.Dialogs { public interface IBootstrapperDialog { diff --git a/Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2009.Designer.cs b/Bloxstrap/Dialogs/LegacyDialog2009.Designer.cs similarity index 98% rename from Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2009.Designer.cs rename to Bloxstrap/Dialogs/LegacyDialog2009.Designer.cs index af757c5..e6cf932 100644 --- a/Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2009.Designer.cs +++ b/Bloxstrap/Dialogs/LegacyDialog2009.Designer.cs @@ -1,6 +1,6 @@ using System.Windows.Forms; -namespace Bloxstrap.Dialogs.BootstrapperDialogs +namespace Bloxstrap.Dialogs { partial class LegacyDialog2009 { diff --git a/Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2009.cs b/Bloxstrap/Dialogs/LegacyDialog2009.cs similarity index 96% rename from Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2009.cs rename to Bloxstrap/Dialogs/LegacyDialog2009.cs index 0592603..2d6b4b3 100644 --- a/Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2009.cs +++ b/Bloxstrap/Dialogs/LegacyDialog2009.cs @@ -1,7 +1,7 @@ using System; using System.Windows.Forms; -namespace Bloxstrap.Dialogs.BootstrapperDialogs +namespace Bloxstrap.Dialogs { // windows: https://youtu.be/VpduiruysuM?t=18 // mac: https://youtu.be/ncHhbcVDRgQ?t=63 diff --git a/Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2009.resx b/Bloxstrap/Dialogs/LegacyDialog2009.resx similarity index 100% rename from Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2009.resx rename to Bloxstrap/Dialogs/LegacyDialog2009.resx diff --git a/Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2011.Designer.cs b/Bloxstrap/Dialogs/LegacyDialog2011.Designer.cs similarity index 98% rename from Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2011.Designer.cs rename to Bloxstrap/Dialogs/LegacyDialog2011.Designer.cs index 2c490ce..3c00096 100644 --- a/Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2011.Designer.cs +++ b/Bloxstrap/Dialogs/LegacyDialog2011.Designer.cs @@ -1,6 +1,6 @@ using System.Windows.Forms; -namespace Bloxstrap.Dialogs.BootstrapperDialogs +namespace Bloxstrap.Dialogs { partial class LegacyDialog2011 { diff --git a/Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2011.cs b/Bloxstrap/Dialogs/LegacyDialog2011.cs similarity index 96% rename from Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2011.cs rename to Bloxstrap/Dialogs/LegacyDialog2011.cs index 124127d..e9094dd 100644 --- a/Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2011.cs +++ b/Bloxstrap/Dialogs/LegacyDialog2011.cs @@ -3,7 +3,7 @@ using System.Windows.Forms; using Bloxstrap.Enums; -namespace Bloxstrap.Dialogs.BootstrapperDialogs +namespace Bloxstrap.Dialogs { // https://youtu.be/3K9oCEMHj2s?t=35 diff --git a/Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2011.resx b/Bloxstrap/Dialogs/LegacyDialog2011.resx similarity index 100% rename from Bloxstrap/Dialogs/BootstrapperDialogs/LegacyDialog2011.resx rename to Bloxstrap/Dialogs/LegacyDialog2011.resx diff --git a/Bloxstrap/Dialogs/Menu/ModHelp.xaml b/Bloxstrap/Dialogs/Menu/ModHelp.xaml deleted file mode 100644 index e346bf4..0000000 --- a/Bloxstrap/Dialogs/Menu/ModHelp.xaml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - -