aboutsummaryrefslogtreecommitdiff
path: root/Hotline/macOS
diff options
context:
space:
mode:
authorDustin Mierau <dustin@mierau.me>2025-10-21 23:09:53 -0700
committerDustin Mierau <dustin@mierau.me>2025-10-21 23:09:53 -0700
commit54b85a88efcd455d5c12b7ca65d425d095a675f1 (patch)
treefa4aa78576630ffbe76bebe02491960a3356c3d6 /Hotline/macOS
parent926c92be7a32e374c8855b2eb8b5a49485dec072 (diff)
Add initial support for folder downloading.
Diffstat (limited to 'Hotline/macOS')
-rw-r--r--Hotline/macOS/FilesView.swift17
-rw-r--r--Hotline/macOS/ServerView.swift20
2 files changed, 21 insertions, 16 deletions
diff --git a/Hotline/macOS/FilesView.swift b/Hotline/macOS/FilesView.swift
index 2befa18..f399372 100644
--- a/Hotline/macOS/FilesView.swift
+++ b/Hotline/macOS/FilesView.swift
@@ -236,11 +236,12 @@ struct FilesView: View {
}
@MainActor private func downloadFile(_ file: FileInfo) {
- guard !file.isFolder else {
- return
+ if file.isFolder {
+ model.downloadFolder(file.name, path: file.path)
+ }
+ else {
+ model.downloadFile(file.name, path: file.path)
}
-
- model.downloadFile(file.name, path: file.path)
}
@MainActor private func uploadFile(file fileURL: URL, to path: [String]) {
@@ -297,13 +298,13 @@ struct FilesView: View {
let selectedFile = items.first
Button {
- if let s = selectedFile, !s.isFolder {
+ if let s = selectedFile {
downloadFile(s)
}
} label: {
Label("Download", systemImage: "arrow.down")
}
- .disabled(selectedFile == nil || (selectedFile != nil && selectedFile!.isFolder))
+ .disabled(selectedFile == nil)
Divider()
@@ -419,14 +420,14 @@ struct FilesView: View {
ToolbarItem(placement: .primaryAction) {
Button {
- if let selectedFile = selection, !selectedFile.isFolder {
+ if let selectedFile = selection {
downloadFile(selectedFile)
}
} label: {
Label("Download", systemImage: "arrow.down")
}
.help("Download")
- .disabled(selection == nil || selection?.isFolder == true || model.access?.contains(.canDownloadFiles) != true)
+ .disabled(selection == nil || model.access?.contains(.canDownloadFiles) != true)
}
}
}
diff --git a/Hotline/macOS/ServerView.swift b/Hotline/macOS/ServerView.swift
index 154bd7c..115709d 100644
--- a/Hotline/macOS/ServerView.swift
+++ b/Hotline/macOS/ServerView.swift
@@ -585,10 +585,6 @@ struct ServerView: View {
}
}
-//#Preview {
-// ServerView(server: Server(name: "", description: "", address: "", port: 0))
-//}
-
struct TransferItemView: View {
let transfer: TransferInfo
@@ -619,10 +615,18 @@ struct TransferItemView: View {
HStack(alignment: .center, spacing: 5) {
HStack(spacing: 0) {
Spacer()
- FileIconView(filename: transfer.title, fileType: nil)
- .frame(width: 16, height: 16)
- .opacity(controlActiveState == .inactive ? 0.5 : 1.0)
-// .padding(.leading, 2)
+ if transfer.isFolder {
+ Image("Folder")
+ .resizable()
+ .scaledToFit()
+ .frame(width: 16, height: 16)
+ .opacity(controlActiveState == .inactive ? 0.5 : 1.0)
+ }
+ else {
+ FileIconView(filename: transfer.title, fileType: nil)
+ .frame(width: 16, height: 16)
+ .opacity(controlActiveState == .inactive ? 0.5 : 1.0)
+ }
Spacer()
}
.frame(width: 20)