Răsfoiți Sursa

Fix Browse Files to allow photo selection only from the file manager.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 1 lună în urmă
părinte
comite
d8dd5d7153
1 a modificat fișierele cu 8 adăugiri și 23 ștergeri
  1. 8 23
      smart_printer/DocumentPickerService.swift

+ 8 - 23
smart_printer/DocumentPickerService.swift

@@ -35,10 +35,10 @@ enum DocumentPickerService {
             panel.directoryURL = FileManager.default.urls(for: .picturesDirectory, in: .userDomainMask).first
         case .files:
             panel.title = "Open File Manager"
-            panel.message = "Select photos or files from your file manager."
-            panel.prompt = "Select"
+            panel.message = "Select photos from your file manager."
+            panel.prompt = "Select Photos"
             panel.allowsMultipleSelection = true
-            panel.allowedContentTypes = fileManagerContentTypes
+            panel.allowedContentTypes = photoContentTypes
             panel.directoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
         case .importFile:
             panel.title = "Import Files"
@@ -76,10 +76,6 @@ enum DocumentPickerService {
         documentExtensions.compactMap { UTType(filenameExtension: $0) }
     }
 
-    private static var fileManagerContentTypes: [UTType] {
-        photoContentTypes + documentContentTypes
-    }
-
     fileprivate static func isPhoto(_ url: URL) -> Bool {
         photoExtensions.contains(url.pathExtension.lowercased())
     }
@@ -91,10 +87,6 @@ enum DocumentPickerService {
         return true
     }
 
-    fileprivate static func isSelectableInFileManager(_ url: URL) -> Bool {
-        isPhoto(url) || isDocument(url)
-    }
-
     fileprivate static func contentType(for url: URL) -> UTType? {
         if let values = try? url.resourceValues(forKeys: [.contentTypeKey]),
            let type = values.contentType {
@@ -111,7 +103,7 @@ enum DocumentPickerService {
         case .photos:
             matched = urls.filter { isPhoto($0) }
         case .files:
-            matched = urls.filter { isSelectableInFileManager($0) }
+            matched = urls.filter { isPhoto($0) }
         case .importFile:
             matched = urls.filter { isDocument($0) }
         }
@@ -125,14 +117,7 @@ enum DocumentPickerService {
         case .photos:
             PhotoPreviewService.present(urls: matched, from: window)
         case .files:
-            let photos = matched.filter { isPhoto($0) }
-            let documents = matched.filter { isDocument($0) }
-            if !photos.isEmpty {
-                PhotoPreviewService.present(urls: photos, from: window)
-            }
-            if !documents.isEmpty {
-                PrintService.print(urls: documents, from: window)
-            }
+            PhotoPreviewService.present(urls: matched, from: window)
         case .importFile:
             _ = ImportedFilesStore.add(urls: matched)
             FilePreviewService.present(urls: matched, from: window)
@@ -146,8 +131,8 @@ enum DocumentPickerService {
             alert.messageText = "No Photos Selected"
             alert.informativeText = "Please select picture files such as JPEG, PNG, or HEIC."
         case .files:
-            alert.messageText = "No Photos or Files Selected"
-            alert.informativeText = "Please select pictures or document files such as JPEG, PNG, PDF, or DOC."
+            alert.messageText = "No Photos Selected"
+            alert.informativeText = "Please select picture files such as JPEG, PNG, or HEIC."
         case .importFile:
             alert.messageText = "No Files to Add"
             alert.informativeText = "Please select files such as PDF, TXT, or DOC to import."
@@ -178,7 +163,7 @@ private final class DocumentPickerPanelDelegate: NSObject, NSOpenSavePanelDelega
         case .photos:
             return DocumentPickerService.isPhoto(url)
         case .files:
-            return DocumentPickerService.isSelectableInFileManager(url)
+            return DocumentPickerService.isPhoto(url)
         case .importFile:
             return DocumentPickerService.isDocument(url)
         }