Add solution restore progress indicator

This commit is contained in:
Matt Parker
2025-11-26 00:32:25 +10:00
parent 3336e71348
commit 98e3f29759
3 changed files with 26 additions and 6 deletions

View File

@@ -9,16 +9,19 @@ public partial class RunningTasksDisplay : HBoxContainer
{
[Inject] private readonly ActivityMonitor _activityMonitor = null!;
private bool _isSolutionRestoring;
private bool _isSolutionLoading;
private bool _isSolutionDiagnosticsBeingRetrieved;
private Label _solutionRestoringLabel = null!;
private Label _solutionLoadingLabel = null!;
private Label _solutionDiagnosticsLabel = null!;
public override void _Ready()
{
_solutionLoadingLabel = GetNode<Label>("SolutionLoadingLabel");
_solutionDiagnosticsLabel = GetNode<Label>("SolutionDiagnosticsLabel");
_solutionRestoringLabel = GetNode<Label>("%SolutionRestoringLabel");
_solutionLoadingLabel = GetNode<Label>("%SolutionLoadingLabel");
_solutionDiagnosticsLabel = GetNode<Label>("%SolutionDiagnosticsLabel");
Visible = false;
_activityMonitor.ActivityStarted.Subscribe(OnActivityStarted);
_activityMonitor.ActivityStopped.Subscribe(OnActivityStopped);
@@ -41,16 +44,21 @@ public partial class RunningTasksDisplay : HBoxContainer
{
_isSolutionLoading = isOccurring;
}
else if (activity.DisplayName == "RestoreSolution")
{
_isSolutionRestoring = isOccurring;
}
else
{
return;
}
var visible = _isSolutionDiagnosticsBeingRetrieved || _isSolutionLoading;
var visible = _isSolutionDiagnosticsBeingRetrieved || _isSolutionLoading || _isSolutionRestoring;
await this.InvokeAsync(() =>
{
_solutionLoadingLabel.Visible = _isSolutionLoading;
_solutionDiagnosticsLabel.Visible = _isSolutionDiagnosticsBeingRetrieved;
_solutionRestoringLabel.Visible = _isSolutionRestoring;
Visible = visible;
});
}

View File

@@ -56,6 +56,15 @@ theme_override_font_sizes/font_size = 14
text = "Updating Solution Diagnostics"
vertical_alignment = 1
[node name="SolutionRestoringLabel" type="Label" parent="."]
unique_name_in_owner = true
visible = false
layout_mode = 2
theme_override_colors/font_color = Color(0.67058825, 0.67058825, 0.67058825, 1)
theme_override_font_sizes/font_size = 14
text = "Restoring Solution"
vertical_alignment = 1
[node name="ProgressBar" type="ProgressBar" parent="."]
custom_minimum_size = Vector2(150, 9)
layout_mode = 2