Fix broken DockProgress Bar

Update DockProgress and adopt the new Concurrency Model
This commit is contained in:
Kyle 2024-03-31 01:44:34 +08:00
parent 21c26c9793
commit 348c89871e
No known key found for this signature in database
GPG key ID: 7056354A082F5CC2
3 changed files with 17 additions and 12 deletions

View file

@ -1529,7 +1529,7 @@
repositoryURL = "https://github.com/sindresorhus/DockProgress"; repositoryURL = "https://github.com/sindresorhus/DockProgress";
requirement = { requirement = {
kind = upToNextMinorVersion; kind = upToNextMinorVersion;
minimumVersion = 3.2.0; minimumVersion = 4.3.1;
}; };
}; };
E84E4F552B335094003F3959 /* XCRemoteSwiftPackageReference "swift-collections" */ = { E84E4F552B335094003F3959 /* XCRemoteSwiftPackageReference "swift-collections" */ = {

View file

@ -33,8 +33,8 @@
"repositoryURL": "https://github.com/sindresorhus/DockProgress", "repositoryURL": "https://github.com/sindresorhus/DockProgress",
"state": { "state": {
"branch": null, "branch": null,
"revision": "7100b68571e2dafe3a06ad5905b80fc3b0107b4b", "revision": "d4f23b5a8f5ca0fac393eb7ba78c2fe3e32e52da",
"version": "3.2.0" "version": "4.3.1"
} }
}, },
{ {

View file

@ -473,19 +473,24 @@ extension AppState {
// MARK: - Dock Progress Tracking // MARK: - Dock Progress Tracking
private func setupDockProgress() { private func setupDockProgress() {
DockProgress.progressInstance = nil Task { @MainActor in
DockProgress.style = .bar DockProgress.progressInstance = nil
DockProgress.style = .bar
let progress = Progress(totalUnitCount: AppState.totalProgressUnits)
progress.kind = .file
progress.fileOperationKind = .downloading
overallProgress = progress
DockProgress.progressInstance = overallProgress
}
let progress = Progress(totalUnitCount: AppState.totalProgressUnits)
progress.kind = .file
progress.fileOperationKind = .downloading
overallProgress = progress
DockProgress.progressInstance = overallProgress
} }
func resetDockProgressTracking() { func resetDockProgressTracking() {
DockProgress.progress = 1 // Only way to completely remove overlay with DockProgress is setting progress to complete Task { @MainActor in
DockProgress.progress = 1 // Only way to completely remove overlay with DockProgress is setting progress to complete
}
} }
// MARK: - // MARK: -