From 69965566425a9fb84f747271cd42eee636c5c40e Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Thu, 7 Nov 2019 22:19:39 -0700 Subject: [PATCH] Feed archive info into the HTTP downloader so we get proper downloader progress bars. --- Wabbajack.Lib/Downloaders/HTTPDownloader.cs | 2 +- Wabbajack/View Models/ModeSelectionWindowVM.cs | 5 ++++- Wabbajack/Views/DownloadWindow.xaml.cs | 10 ++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Wabbajack.Lib/Downloaders/HTTPDownloader.cs b/Wabbajack.Lib/Downloaders/HTTPDownloader.cs index fc86fda3..1aca3d89 100644 --- a/Wabbajack.Lib/Downloaders/HTTPDownloader.cs +++ b/Wabbajack.Lib/Downloaders/HTTPDownloader.cs @@ -105,7 +105,7 @@ namespace Wabbajack.Lib.Downloaders if (!download) return true; - var header_var = "1"; + var header_var = a.Size == 0 ? "1" : a.Size.ToString(); if (response.Content.Headers.Contains("Content-Length")) header_var = response.Content.Headers.GetValues("Content-Length").FirstOrDefault(); diff --git a/Wabbajack/View Models/ModeSelectionWindowVM.cs b/Wabbajack/View Models/ModeSelectionWindowVM.cs index c0f3eed4..c13f34fd 100644 --- a/Wabbajack/View Models/ModeSelectionWindowVM.cs +++ b/Wabbajack/View Models/ModeSelectionWindowVM.cs @@ -38,7 +38,10 @@ namespace Wabbajack.UI string dest = Path.Combine(Consts.ModListDownloadFolder, SelectedModList.Links.MachineURL + ExtensionManager.Extension); - var window = new DownloadWindow(SelectedModList.Links.Download, SelectedModList.Title, dest); + var window = new DownloadWindow(SelectedModList.Links.Download, + SelectedModList.Title, + SelectedModList.Links.DownloadMetadata?.Size ?? 0, + dest); window.ShowDialog(); if (window.Result == DownloadWindow.WindowResult.Completed) diff --git a/Wabbajack/Views/DownloadWindow.xaml.cs b/Wabbajack/Views/DownloadWindow.xaml.cs index 7002512d..27c507c3 100644 --- a/Wabbajack/Views/DownloadWindow.xaml.cs +++ b/Wabbajack/Views/DownloadWindow.xaml.cs @@ -34,10 +34,10 @@ namespace Wabbajack.UI public WindowResult Result { get; internal set; } = WindowResult.Undefined; - public DownloadWindow(string url, string name, string destination) + public DownloadWindow(string url, string name, long size, string destination) { InitializeComponent(); - DataContext = new DownloadWindowViewModel(this, url, name, destination); + DataContext = new DownloadWindowViewModel(this, url, name, size, destination); } } @@ -46,13 +46,15 @@ namespace Wabbajack.UI private readonly string _destination; private readonly DownloadWindow _parent; + private long _size; - public DownloadWindowViewModel(DownloadWindow parent, string url, string name, string destination) + public DownloadWindowViewModel(DownloadWindow parent, string url, string name, long size, string destination) { _parent = parent; _url = url; _downloadName = name; _destination = destination; + _size = size; Start(); } @@ -64,7 +66,7 @@ namespace Wabbajack.UI WorkQueue.CustomReportFn = (progress, msg) => { DownloadProgress = progress; }; var state = DownloadDispatcher.ResolveArchive(_url); - state.Download(new Archive {Name = _downloadName}, _destination); + state.Download(new Archive {Name = _downloadName, Size = _size}, _destination); _destination.FileHash();