From 4becaa4b023227aec289883cb43ebb1fcc6bfaa1 Mon Sep 17 00:00:00 2001
From: status102 <102887808+status102@users.noreply.github.com>
Date: Tue, 12 Nov 2024 13:52:22 +0800
Subject: [PATCH] =?UTF-8?q?perf:=20WpfGui=E4=BC=98=E5=8C=96=E4=BB=BB?=
=?UTF-8?q?=E5=8A=A1=E8=BF=9B=E5=BA=A6=E6=98=BE=E7=A4=BA=20(#11055)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
perf: 优化任务进度显示
---
src/MaaWpfGui/MaaWpfGui.csproj | 1 +
src/MaaWpfGui/ViewModels/UI/RootViewModel.cs | 22 ++++++++++++++-----
.../ViewModels/UI/TaskQueueViewModel.cs | 7 +++---
src/MaaWpfGui/Views/UI/RootView.xaml | 3 ---
4 files changed, 21 insertions(+), 12 deletions(-)
diff --git a/src/MaaWpfGui/MaaWpfGui.csproj b/src/MaaWpfGui/MaaWpfGui.csproj
index 2b91eedf2e..28cad167f7 100644
--- a/src/MaaWpfGui/MaaWpfGui.csproj
+++ b/src/MaaWpfGui/MaaWpfGui.csproj
@@ -132,6 +132,7 @@
+
diff --git a/src/MaaWpfGui/ViewModels/UI/RootViewModel.cs b/src/MaaWpfGui/ViewModels/UI/RootViewModel.cs
index e481154ca6..71f0441bae 100644
--- a/src/MaaWpfGui/ViewModels/UI/RootViewModel.cs
+++ b/src/MaaWpfGui/ViewModels/UI/RootViewModel.cs
@@ -18,6 +18,7 @@ using System.Windows.Media;
using MaaWpfGui.Constants;
using MaaWpfGui.Helper;
using MaaWpfGui.Main;
+using Microsoft.WindowsAPICodePack.Taskbar;
using Stylet;
namespace MaaWpfGui.ViewModels.UI
@@ -90,17 +91,28 @@ namespace MaaWpfGui.ViewModels.UI
set => SetAndNotify(ref _windowTitle, value);
}
- private double _progress;
+ private (int Current, int Max)? _taskProgress;
///
- /// Gets or sets the progress.
+ /// Gets or sets the TaskProgress.
/// 0.0 to 1.0.
/// 置 0 以隐藏进度条.
///
- public double Progress
+ public (int Current, int Max)? TaskProgress
{
- get => _progress;
- set => SetAndNotify(ref _progress, value);
+ get => _taskProgress;
+ set
+ {
+ SetAndNotify(ref _taskProgress, value);
+ if (value is null)
+ {
+ TaskbarManager.Instance.SetProgressValue(0, 0);
+ }
+ else
+ {
+ TaskbarManager.Instance.SetProgressValue(value.Value.Current, value.Value.Max);
+ }
+ }
}
private bool _windowTitleScrollable = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.WindowTitleScrollable, bool.FalseString));
diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs
index 33efcfcb20..86132d6e4a 100644
--- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs
+++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs
@@ -1143,7 +1143,7 @@ namespace MaaWpfGui.ViewModels.UI
var rvm = (RootViewModel)this.Parent;
if (MainTasksSelectedCount == 0)
{
- rvm.Progress = 0;
+ rvm.TaskProgress = null;
return;
}
@@ -1151,12 +1151,11 @@ namespace MaaWpfGui.ViewModels.UI
if (MainTasksCompletedCount >= MainTasksSelectedCount)
{
- rvm.Progress = 0;
+ rvm.TaskProgress = null;
}
else
{
- var progress = MainTasksCompletedCount / (double)MainTasksSelectedCount;
- rvm.Progress = progress;
+ rvm.TaskProgress = (MainTasksCompletedCount, MainTasksSelectedCount);
}
}
diff --git a/src/MaaWpfGui/Views/UI/RootView.xaml b/src/MaaWpfGui/Views/UI/RootView.xaml
index b739e4b83e..e4281a9f3b 100644
--- a/src/MaaWpfGui/Views/UI/RootView.xaml
+++ b/src/MaaWpfGui/Views/UI/RootView.xaml
@@ -51,9 +51,6 @@
Foreground="{Binding WindowTopMostButtonForeground}" />
-
-
-