From 5a8383d12f338d6d75fb631df5ed9d5eaa0a5a1f Mon Sep 17 00:00:00 2001 From: erri120 Date: Sun, 16 Oct 2022 14:00:50 +0200 Subject: [PATCH] Re-add file association --- Wabbajack.App.Wpf/App.xaml.cs | 5 +++- Wabbajack.App.Wpf/View Models/MainWindowVM.cs | 8 ++++++ Wabbajack.App.Wpf/Views/MainWindow.xaml.cs | 28 ------------------- Wabbajack.App.Wpf/Wabbajack.App.Wpf.csproj | 1 + 4 files changed, 13 insertions(+), 29 deletions(-) diff --git a/Wabbajack.App.Wpf/App.xaml.cs b/Wabbajack.App.Wpf/App.xaml.cs index 80b5af72..7572f6a2 100644 --- a/Wabbajack.App.Wpf/App.xaml.cs +++ b/Wabbajack.App.Wpf/App.xaml.cs @@ -9,6 +9,7 @@ using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using NLog.Extensions.Logging; using NLog.Targets; +using Orc.FileAssociation; using ReactiveUI; using Wabbajack.CLI.Builder; using Wabbajack.DTOs; @@ -108,6 +109,9 @@ namespace Wabbajack { services.AddOSIntegrated(); + // Orc.FileAssociation + services.AddSingleton(new ApplicationRegistrationService()); + services.AddSingleton(); services.AddSingleton(); @@ -147,7 +151,6 @@ namespace Wabbajack return services; } - private void OnExit(object sender, ExitEventArgs e) { using (_host) diff --git a/Wabbajack.App.Wpf/View Models/MainWindowVM.cs b/Wabbajack.App.Wpf/View Models/MainWindowVM.cs index ddc44bba..3fd05449 100644 --- a/Wabbajack.App.Wpf/View Models/MainWindowVM.cs +++ b/Wabbajack.App.Wpf/View Models/MainWindowVM.cs @@ -14,6 +14,7 @@ using System.Windows; using System.Windows.Input; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using Orc.FileAssociation; using Wabbajack.Common; using Wabbajack.Downloaders.GameFile; using Wabbajack; @@ -143,6 +144,13 @@ namespace Wabbajack Task.Run(() => _wjClient.SendMetric("started_wabbajack", fvi.FileVersion)).FireAndForget(); Task.Run(() => _wjClient.SendMetric("started_sha", ThisAssembly.Git.Sha)); + + // setup file association + var applicationRegistrationService = _serviceProvider.GetRequiredService(); + + var applicationInfo = new ApplicationInfo(assembly); + applicationInfo.SupportedExtensions.Add("wabbajack"); + applicationRegistrationService.RegisterApplication(applicationInfo); } catch (Exception ex) { diff --git a/Wabbajack.App.Wpf/Views/MainWindow.xaml.cs b/Wabbajack.App.Wpf/Views/MainWindow.xaml.cs index 3c7de123..4875b58b 100644 --- a/Wabbajack.App.Wpf/Views/MainWindow.xaml.cs +++ b/Wabbajack.App.Wpf/Views/MainWindow.xaml.cs @@ -143,34 +143,6 @@ namespace Wabbajack _settings = settings; } - /// - /// Starts some background initialization tasks spinning so they're already prepped when actually needed - /// - private void Warmup() - { - Task.Run(AssociateListsWithWabbajack).FireAndForget(); - } - - /// - /// Run logic to associate wabbajack lists with this app in the background - /// - private void AssociateListsWithWabbajack() - { - /* TODO - var appPath = System.Reflection.Assembly.GetExecutingAssembly().Location; - try - { - if (!ModListAssociationManager.IsAssociated() || ModListAssociationManager.NeedsUpdating(appPath)) - { - ModListAssociationManager.Associate(appPath); - } - } - catch (Exception e) - { - Utils.Log($"ExtensionManager had an exception:\n{e}"); - }*/ - } - private void RunWhenLoaded(Action a) { if (IsLoaded) diff --git a/Wabbajack.App.Wpf/Wabbajack.App.Wpf.csproj b/Wabbajack.App.Wpf/Wabbajack.App.Wpf.csproj index 00a712c1..8ba3da87 100644 --- a/Wabbajack.App.Wpf/Wabbajack.App.Wpf.csproj +++ b/Wabbajack.App.Wpf/Wabbajack.App.Wpf.csproj @@ -93,6 +93,7 @@ +