aboutsummaryrefslogtreecommitdiff
path: root/Hotline/macOS
diff options
context:
space:
mode:
authorDustin Mierau <dustin@mierau.me>2024-07-24 16:11:16 -0700
committerDustin Mierau <dustin@mierau.me>2024-07-24 16:11:16 -0700
commitf9e5f8a3a66df6e59726ca1659043fb54ed894e4 (patch)
tree4d5a370178cd79c6f9ae5a2bcca1e442327b4193 /Hotline/macOS
parent8633db7e6ca9f38345d7be0ab90193d6325904bf (diff)
Moving to an experimental result builder for Data to simplify construction of headers for Hotline's binary protocol. Fix some UI quirks around file transfers.
Diffstat (limited to 'Hotline/macOS')
-rw-r--r--Hotline/macOS/ServerView.swift13
1 files changed, 11 insertions, 2 deletions
diff --git a/Hotline/macOS/ServerView.swift b/Hotline/macOS/ServerView.swift
index 5b5b8e3..4e24a1b 100644
--- a/Hotline/macOS/ServerView.swift
+++ b/Hotline/macOS/ServerView.swift
@@ -579,6 +579,7 @@ struct ServerView: View {
struct TransferItemView: View {
let transfer: TransferInfo
+ @Environment(\.controlActiveState) private var controlActiveState
@Environment(Hotline.self) private var model: Hotline
@State private var hovered: Bool = false
@State private var buttonHovered: Bool = false
@@ -607,6 +608,7 @@ struct TransferItemView: View {
Spacer()
FileIconView(filename: transfer.title)
.frame(width: 16, height: 16)
+ .opacity(controlActiveState == .inactive ? 0.5 : 1.0)
// .padding(.leading, 2)
Spacer()
}
@@ -631,22 +633,27 @@ struct TransferItemView: View {
.buttonStyle(.plain)
.padding(0)
.frame(width: 16, height: 16)
+ .opacity(controlActiveState == .inactive ? 0.5 : 1.0)
.help(transfer.completed || transfer.failed ? "Remove" : "Cancel Transfer")
.onHover { hovered in
self.buttonHovered = hovered
}
}
else if transfer.failed {
- Image(systemName: "exclamationmark.triangle")
+ Image(systemName: "exclamationmark.triangle.fill")
.resizable()
+ .symbolRenderingMode(.multicolor)
.aspectRatio(contentMode: .fit)
.frame(width: 16, height: 16)
+ .opacity(controlActiveState == .inactive ? 0.5 : 1.0)
}
else if transfer.completed {
Image(systemName: "checkmark.circle.fill")
.resizable()
+ .foregroundStyle(Color.fileComplete)
.aspectRatio(contentMode: .fit)
.frame(width: 16, height: 16)
+ .opacity(controlActiveState == .inactive ? 0.5 : 1.0)
}
else if transfer.progress == 0.0 {
ProgressView()
@@ -660,7 +667,9 @@ struct TransferItemView: View {
}
}
.onHover { hovered in
- self.hovered = hovered
+ withAnimation(.easeOut(duration: 0.25)) {
+ self.hovered = hovered
+ }
}
.help(formattedProgressHelp())
}