fix: clear completed speeds and icon frame

This commit is contained in:
nimbold
2026-06-05 20:48:26 +03:30
parent 41535eca59
commit ac8764bb78
7 changed files with 25 additions and 7 deletions
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.5 MiB

+10
View File
@@ -481,6 +481,7 @@ final class DownloadController: ObservableObject {
progress: { [weak self] progress in
Task { @MainActor in
self?.update(item.id) {
guard $0.status == .downloading else { return }
$0.progress = progress.fraction
$0.bytesText = progress.bytesText
$0.speedText = progress.speedText
@@ -823,6 +824,15 @@ final class DownloadController: ObservableObject {
shouldRewriteStoredDownloads = true
}
if adjusted.status == .completed &&
(adjusted.speedText != "-" || adjusted.etaText != "-" || adjusted.connectionCount != 0 || adjusted.autoResumeOnLaunch != false) {
adjusted.speedText = "-"
adjusted.etaText = "-"
adjusted.connectionCount = 0
adjusted.autoResumeOnLaunch = false
shouldRewriteStoredDownloads = true
}
if adjusted.status == .downloading {
adjusted.status = .queued
adjusted.message = "Recovered after restart. Resuming from partial file."
@@ -443,8 +443,8 @@ private struct DownloadSummaryHeader: View {
GridRow {
summary("Progress", (item.status == .completed ? 1.0 : item.progress).formatted(.percent.precision(.fractionLength(0))))
summary("Size", ByteFormatter.string(item.sizeBytes))
summary("Speed", item.speedText)
summary("ETA", item.etaText)
summary("Speed", item.displaySpeedText)
summary("ETA", item.displayETAText)
}
GridRow {
summary("Live connections", "\(item.connectionCount)")
+4 -4
View File
@@ -77,18 +77,18 @@ struct DownloadTable: View {
}
.width(min: 80, ideal: 105)
TableColumn("Speed", value: \.speedText) { item in
TableColumn("Speed", value: \.displaySpeedText) { item in
doubleClickableCell(for: item) {
Text(item.speedText)
Text(item.displaySpeedText)
.lineLimit(1)
.truncationMode(.tail)
}
}
.width(min: 70, ideal: 90)
TableColumn("ETA", value: \.etaText) { item in
TableColumn("ETA", value: \.displayETAText) { item in
doubleClickableCell(for: item) {
Text(item.etaText)
Text(item.displayETAText)
.lineLimit(1)
.truncationMode(.tail)
}
+8
View File
@@ -189,6 +189,14 @@ struct DownloadItem: Identifiable, Codable, Equatable, Sendable {
var rpcPort: Int?
var rpcSecret: String?
var displaySpeedText: String {
status == .downloading ? speedText : "-"
}
var displayETAText: String {
status == .downloading ? etaText : "-"
}
var destinationPath: String {
destinationDirectory.appendingPathComponent(fileName).path
}