From 0c94e4d3a09f9c4cb8a1eb3068cd7814cda5374a Mon Sep 17 00:00:00 2001 From: 7408647n <69924019+7408647n@users.noreply.github.com> Date: Sun, 6 Jul 2025 09:39:22 +0200 Subject: [PATCH] Add a CSV fallback for Nextcloud-Text Add a fallback for CSV files if the editor is Nextcloud-Text, as the Nextcloud-Text editor displays CSV files as text rather than as a table. --- iOSClient/Data/NCManageDatabase+Metadata.swift | 4 ++++ iOSClient/Viewer/NCViewer.swift | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/iOSClient/Data/NCManageDatabase+Metadata.swift b/iOSClient/Data/NCManageDatabase+Metadata.swift index 10cca8400d..a8c6e7af2b 100644 --- a/iOSClient/Data/NCManageDatabase+Metadata.swift +++ b/iOSClient/Data/NCManageDatabase+Metadata.swift @@ -305,6 +305,10 @@ extension tableMetadata { return (contentType == "application/pdf" || contentType == "com.adobe.pdf") } + var isCsv: Bool { + return (contentType == "text/csv") + } + /// Returns false if the user is lokced out of the file. I.e. The file is locked but by somone else func canUnlock(as user: String) -> Bool { return !lock || (lockOwner == user && lockOwnerType == 0) diff --git a/iOSClient/Viewer/NCViewer.swift b/iOSClient/Viewer/NCViewer.swift index 5ab7023582..3b67e4a8a7 100644 --- a/iOSClient/Viewer/NCViewer.swift +++ b/iOSClient/Viewer/NCViewer.swift @@ -91,6 +91,14 @@ class NCViewer: NSObject { } return } + // CSV + if metadata.isCsv { + let editors = utility.editorsDirectEditing(account: metadata.account, contentType: metadata.contentType) + if editors.contains("Nextcloud Text") { + qlPreview(viewController: viewController, metadata: metadata) + } + } + // RichDocument: Collabora if metadata.isAvailableRichDocumentEditorView { if metadata.url.isEmpty { @@ -167,6 +175,10 @@ class NCViewer: NSObject { } } + qlPreview(viewController: viewController, metadata: metadata) + } + + func qlPreview(viewController: UIViewController, metadata: tableMetadata) { // QLPreview let item = URL(fileURLWithPath: utilityFileSystem.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileNameView)) if QLPreviewController.canPreview(item as QLPreviewItem) {