Fix file association

This commit is contained in:
erri120 2022-10-21 14:43:36 +02:00
parent c54d67ef36
commit 0e1ecfe3d4
No known key found for this signature in database

View File

@ -66,10 +66,10 @@ namespace Wabbajack
public ICommand OpenSettingsCommand { get; } public ICommand OpenSettingsCommand { get; }
public string VersionDisplay { get; } public string VersionDisplay { get; }
[Reactive] [Reactive]
public string ResourceStatus { get; set; } public string ResourceStatus { get; set; }
[Reactive] [Reactive]
public string AppName { get; set; } public string AppName { get; set; }
@ -98,7 +98,7 @@ namespace Wabbajack
MessageBus.Current.Listen<NavigateToGlobal>() MessageBus.Current.Listen<NavigateToGlobal>()
.Subscribe(m => HandleNavigateTo(m.Screen)) .Subscribe(m => HandleNavigateTo(m.Screen))
.DisposeWith(CompositeDisposable); .DisposeWith(CompositeDisposable);
MessageBus.Current.Listen<NavigateTo>() MessageBus.Current.Listen<NavigateTo>()
.Subscribe(m => HandleNavigateTo(m.ViewModel)) .Subscribe(m => HandleNavigateTo(m.ViewModel))
.DisposeWith(CompositeDisposable); .DisposeWith(CompositeDisposable);
@ -106,7 +106,7 @@ namespace Wabbajack
MessageBus.Current.Listen<NavigateBack>() MessageBus.Current.Listen<NavigateBack>()
.Subscribe(HandleNavigateBack) .Subscribe(HandleNavigateBack)
.DisposeWith(CompositeDisposable); .DisposeWith(CompositeDisposable);
MessageBus.Current.Listen<SpawnBrowserWindow>() MessageBus.Current.Listen<SpawnBrowserWindow>()
.ObserveOnGuiThread() .ObserveOnGuiThread()
.Subscribe(HandleSpawnBrowserWindow) .Subscribe(HandleSpawnBrowserWindow)
@ -116,7 +116,7 @@ namespace Wabbajack
.Select(r => string.Join(", ", r.Where(r => r.Throughput > 0) .Select(r => string.Join(", ", r.Where(r => r.Throughput > 0)
.Select(s => $"{s.Name} - {s.Throughput.ToFileSizeString()}/sec"))) .Select(s => $"{s.Name} - {s.Throughput.ToFileSizeString()}/sec")))
.BindToStrict(this, view => view.ResourceStatus); .BindToStrict(this, view => view.ResourceStatus);
if (IsStartingFromModlist(out var path)) if (IsStartingFromModlist(out var path))
{ {
@ -134,25 +134,24 @@ namespace Wabbajack
var assembly = Assembly.GetExecutingAssembly(); var assembly = Assembly.GetExecutingAssembly();
var location = assembly.Location; var location = assembly.Location;
if (string.IsNullOrWhiteSpace(location)) if (string.IsNullOrWhiteSpace(location))
location = Process.GetCurrentProcess().MainModule?.FileName ?? ""; location = Process.GetCurrentProcess().MainModule?.FileName ?? throw new Exception("Assembly location is unavailable!");
_logger.LogInformation("App Location: {Location}", assembly.Location); _logger.LogInformation("App Location: {Location}", assembly.Location);
var fvi = FileVersionInfo.GetVersionInfo(location); var fvi = FileVersionInfo.GetVersionInfo(location);
Consts.CurrentMinimumWabbajackVersion = Version.Parse(fvi.FileVersion); Consts.CurrentMinimumWabbajackVersion = Version.Parse(fvi.FileVersion);
VersionDisplay = $"v{fvi.FileVersion}"; VersionDisplay = $"v{fvi.FileVersion}";
AppName = "WABBAJACK " + VersionDisplay; AppName = "WABBAJACK " + VersionDisplay;
_logger.LogInformation("Wabbajack Version: {FileVersion}", fvi.FileVersion); _logger.LogInformation("Wabbajack Version: {FileVersion}", fvi.FileVersion);
Task.Run(() => _wjClient.SendMetric("started_wabbajack", fvi.FileVersion)).FireAndForget(); Task.Run(() => _wjClient.SendMetric("started_wabbajack", fvi.FileVersion)).FireAndForget();
Task.Run(() => _wjClient.SendMetric("started_sha", ThisAssembly.Git.Sha)); Task.Run(() => _wjClient.SendMetric("started_sha", ThisAssembly.Git.Sha));
// setup file association // setup file association
try try
{ {
var applicationRegistrationService = var applicationRegistrationService = _serviceProvider.GetRequiredService<IApplicationRegistrationService>();
_serviceProvider.GetRequiredService<IApplicationRegistrationService>();
var applicationInfo = new ApplicationInfo(assembly); var applicationInfo = new ApplicationInfo("Wabbajack", "Wabbajack", "Wabbajack", location);
applicationInfo.SupportedExtensions.Add("wabbajack"); applicationInfo.SupportedExtensions.Add("wabbajack");
applicationRegistrationService.RegisterApplication(applicationInfo); applicationRegistrationService.RegisterApplication(applicationInfo);
} }
@ -181,27 +180,27 @@ namespace Wabbajack
ActivePane = objViewModel; ActivePane = objViewModel;
} }
private void HandleNavigateBack(NavigateBack navigateBack) private void HandleNavigateBack(NavigateBack navigateBack)
{ {
ActivePane = PreviousPanes.Last(); ActivePane = PreviousPanes.Last();
PreviousPanes.RemoveAt(PreviousPanes.Count - 1); PreviousPanes.RemoveAt(PreviousPanes.Count - 1);
} }
private void HandleManualDownload(ManualDownload manualDownload) private void HandleManualDownload(ManualDownload manualDownload)
{ {
var handler = _serviceProvider.GetRequiredService<ManualDownloadHandler>(); var handler = _serviceProvider.GetRequiredService<ManualDownloadHandler>();
handler.Intervention = manualDownload; handler.Intervention = manualDownload;
//MessageBus.Current.SendMessage(new OpenBrowserTab(handler)); //MessageBus.Current.SendMessage(new OpenBrowserTab(handler));
} }
private void HandleManualBlobDownload(ManualBlobDownload manualDownload) private void HandleManualBlobDownload(ManualBlobDownload manualDownload)
{ {
var handler = _serviceProvider.GetRequiredService<ManualBlobDownloadHandler>(); var handler = _serviceProvider.GetRequiredService<ManualBlobDownloadHandler>();
handler.Intervention = manualDownload; handler.Intervention = manualDownload;
//MessageBus.Current.SendMessage(new OpenBrowserTab(handler)); //MessageBus.Current.SendMessage(new OpenBrowserTab(handler));
} }
private void HandleSpawnBrowserWindow(SpawnBrowserWindow msg) private void HandleSpawnBrowserWindow(SpawnBrowserWindow msg)
{ {
var window = _serviceProvider.GetRequiredService<BrowserWindow>(); var window = _serviceProvider.GetRequiredService<BrowserWindow>();
@ -213,7 +212,7 @@ namespace Wabbajack
{ {
if (s is NavigateToGlobal.ScreenType.Settings) if (s is NavigateToGlobal.ScreenType.Settings)
PreviousPanes.Add(ActivePane); PreviousPanes.Add(ActivePane);
ActivePane = s switch ActivePane = s switch
{ {
NavigateToGlobal.ScreenType.ModeSelectionView => ModeSelectionVM, NavigateToGlobal.ScreenType.ModeSelectionView => ModeSelectionVM,