diff options
| author | Dustin Mierau <dustin@mierau.me> | 2025-10-21 23:09:53 -0700 |
|---|---|---|
| committer | Dustin Mierau <dustin@mierau.me> | 2025-10-21 23:09:53 -0700 |
| commit | 54b85a88efcd455d5c12b7ca65d425d095a675f1 (patch) | |
| tree | fa4aa78576630ffbe76bebe02491960a3356c3d6 /Hotline/macOS | |
| parent | 926c92be7a32e374c8855b2eb8b5a49485dec072 (diff) | |
Add initial support for folder downloading.
Diffstat (limited to 'Hotline/macOS')
| -rw-r--r-- | Hotline/macOS/FilesView.swift | 17 | ||||
| -rw-r--r-- | Hotline/macOS/ServerView.swift | 20 |
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) |