From 7d7e91abc77a1f0c3c015e6c7fee5d2a214b1746 Mon Sep 17 00:00:00 2001 From: Dave MacLachlan Date: Wed, 16 Jul 2025 14:06:25 -0700 Subject: [PATCH] Fix up dimensions for pdf/svg files. --- Samra/Backend/DetailItem.swift | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/Samra/Backend/DetailItem.swift b/Samra/Backend/DetailItem.swift index c97e1ea..9ae337c 100644 --- a/Samra/Backend/DetailItem.swift +++ b/Samra/Backend/DetailItem.swift @@ -101,13 +101,37 @@ struct DetailItemSection: Hashable { var blue: CGFloat = 0 var alpha: CGFloat = 0 nsColor?.getRed(&red, green: &green, blue: &blue, alpha: &alpha) - + items.append(DetailItemSection(sectionHeader: "Color Attributes", items: [ DetailItem(primaryText: "Red", secondaryText: Int(red * 255)), DetailItem(primaryText: "Green", secondaryText: Int(green * 255)), DetailItem(primaryText: "Blue", secondaryText: Int(blue * 255)), ])) + case .svg, .pdf: + items.append(DetailItemSection(sectionHeader: "Base Attributes", items: [ + DetailItem(primaryText: "Rendition Name", secondaryText: cuiRend.name()), + DetailItem(primaryText: "Lookup Name", secondaryText: namedLookup.name), + sizeOnDisk, + ])) + var size = CGSizeZero + switch rendition.type { + case .svg: + if let svgDoc = cuiRend.svgDocument() { + size = CGSVGDocumentGetCanvasSize(svgDoc) + } + case .pdf: + if let pdfDoc = cuiRend.pdfDocument()?.takeUnretainedValue(), let page = pdfDoc.page(at:1) { + size = page.getBoxRect(.artBox).size + } + default: + break + } + items.append(DetailItemSection(sectionHeader: "Dimensions", items: [ + DetailItem(primaryText: "Width", secondaryText: size.width), + DetailItem(primaryText: "Height", secondaryText: size.height), + ])) + default: items.append(DetailItemSection(sectionHeader: "Base Attributes", items: [ DetailItem(primaryText: "Rendition Name", secondaryText: cuiRend.name()),