silently handle errors during ui draw of download ui

This commit is contained in:
Stanley Dimant
2022-09-10 15:40:31 +02:00
parent 8d1324250f
commit 4f19589386

View File

@@ -80,44 +80,52 @@ public class DownloadUi : Window, IDisposable
var basePosition = ImGui.GetWindowPos() + ImGui.GetWindowContentRegionMin(); var basePosition = ImGui.GetWindowPos() + ImGui.GetWindowContentRegionMin();
if (_apiController.CurrentUploads.Any()) try
{ {
var currentUploads = _apiController.CurrentUploads.ToList(); if (_apiController.CurrentUploads.Any())
var totalUploads = currentUploads.Count; {
var currentUploads = _apiController.CurrentUploads.ToList();
var totalUploads = currentUploads.Count;
var doneUploads = currentUploads.Count(c => c.IsTransferred); var doneUploads = currentUploads.Count(c => c.IsTransferred);
var totalUploaded = currentUploads.Sum(c => c.Transferred); var totalUploaded = currentUploads.Sum(c => c.Transferred);
var totalToUpload = currentUploads.Sum(c => c.Total); var totalToUpload = currentUploads.Sum(c => c.Total);
UiShared.DrawOutlinedFont(drawList, "▲", UiShared.DrawOutlinedFont(drawList, "▲",
new Vector2(basePosition.X + 0, basePosition.Y + (int)(yDistance * 0.5)), new Vector2(basePosition.X + 0, basePosition.Y + (int)(yDistance * 0.5)),
UiShared.Color(255, 255, 255, 255), UiShared.Color(0, 0, 0, 255), 2); UiShared.Color(255, 255, 255, 255), UiShared.Color(0, 0, 0, 255), 2);
UiShared.DrawOutlinedFont(drawList, $"Compressing+Uploading {doneUploads}/{totalUploads}", UiShared.DrawOutlinedFont(drawList, $"Compressing+Uploading {doneUploads}/{totalUploads}",
new Vector2(basePosition.X + xDistance, basePosition.Y + yDistance * 0), new Vector2(basePosition.X + xDistance, basePosition.Y + yDistance * 0),
UiShared.Color(255, 255, 255, 255), UiShared.Color(0, 0, 0, 255), 2); UiShared.Color(255, 255, 255, 255), UiShared.Color(0, 0, 0, 255), 2);
UiShared.DrawOutlinedFont(drawList, $"{UiShared.ByteToString(totalUploaded)}/{UiShared.ByteToString(totalToUpload)}", UiShared.DrawOutlinedFont(drawList, $"{UiShared.ByteToString(totalUploaded)}/{UiShared.ByteToString(totalToUpload)}",
new Vector2(basePosition.X + xDistance, basePosition.Y + yDistance * 1), new Vector2(basePosition.X + xDistance, basePosition.Y + yDistance * 1),
UiShared.Color(255, 255, 255, 255), UiShared.Color(0, 0, 0, 255), 2); UiShared.Color(255, 255, 255, 255), UiShared.Color(0, 0, 0, 255), 2);
}
} }
catch { }
if (_apiController.CurrentDownloads.Any()) try
{ {
var currentDownloads = _apiController.CurrentDownloads.Where(d => d.Value != null && d.Value.Any()).ToList().SelectMany(k => k.Value).ToList(); if (_apiController.CurrentDownloads.Any())
var multBase = currentDownloads.Any() ? 0 : 2; {
var doneDownloads = currentDownloads.Count(c => c.IsTransferred); var currentDownloads = _apiController.CurrentDownloads.Where(d => d.Value != null && d.Value.Any()).ToList().SelectMany(k => k.Value).ToList();
var totalDownloads = currentDownloads.Count; var multBase = currentDownloads.Any() ? 0 : 2;
var totalDownloaded = currentDownloads.Sum(c => c.Transferred); var doneDownloads = currentDownloads.Count(c => c.IsTransferred);
var totalToDownload = currentDownloads.Sum(c => c.Total); var totalDownloads = currentDownloads.Count;
UiShared.DrawOutlinedFont(drawList, "▼", var totalDownloaded = currentDownloads.Sum(c => c.Transferred);
new Vector2(basePosition.X + 0, basePosition.Y + (int)(yDistance * multBase + (yDistance * 0.5))), var totalToDownload = currentDownloads.Sum(c => c.Total);
UiShared.Color(255, 255, 255, 255), UiShared.Color(0, 0, 0, 255), 2); UiShared.DrawOutlinedFont(drawList, "▼",
UiShared.DrawOutlinedFont(drawList, $"Downloading {doneDownloads}/{totalDownloads}", new Vector2(basePosition.X + 0, basePosition.Y + (int)(yDistance * multBase + (yDistance * 0.5))),
new Vector2(basePosition.X + xDistance, basePosition.Y + yDistance * multBase), UiShared.Color(255, 255, 255, 255), UiShared.Color(0, 0, 0, 255), 2);
UiShared.Color(255, 255, 255, 255), UiShared.Color(0, 0, 0, 255), 2); UiShared.DrawOutlinedFont(drawList, $"Downloading {doneDownloads}/{totalDownloads}",
UiShared.DrawOutlinedFont(drawList, $"{UiShared.ByteToString(totalDownloaded)}/{UiShared.ByteToString(totalToDownload)}", new Vector2(basePosition.X + xDistance, basePosition.Y + yDistance * multBase),
new Vector2(basePosition.X + xDistance, basePosition.Y + yDistance * (1 + multBase)), UiShared.Color(255, 255, 255, 255), UiShared.Color(0, 0, 0, 255), 2);
UiShared.Color(255, 255, 255, 255), UiShared.Color(0, 0, 0, 255), 2); UiShared.DrawOutlinedFont(drawList, $"{UiShared.ByteToString(totalDownloaded)}/{UiShared.ByteToString(totalToDownload)}",
new Vector2(basePosition.X + xDistance, basePosition.Y + yDistance * (1 + multBase)),
UiShared.Color(255, 255, 255, 255), UiShared.Color(0, 0, 0, 255), 2);
}
} }
catch { }
} }
} }