diff --git a/Samra/UI/Rendition/RenditionCollectionViewItem.swift b/Samra/UI/Rendition/RenditionCollectionViewItem.swift index adc5f1a..20f6780 100644 --- a/Samra/UI/Rendition/RenditionCollectionViewItem.swift +++ b/Samra/UI/Rendition/RenditionCollectionViewItem.swift @@ -75,6 +75,27 @@ class RenditionCollectionViewItem: NSCollectionViewItem { /*}*/ representationPreview = imageView + + case .rawData(let data): + var visibleString = "No Preview Available" + if let string = String(data:data, encoding:.utf8) { + visibleString = string.count > 500 ? String(string.prefix(500)) : string + } + let textField = NSTextField(wrappingLabelWithString:visibleString) + textField.isBordered = true + textField.isEditable = false + textField.isSelectable = false + textField.translatesAutoresizingMaskIntoConstraints = false + textField.maximumNumberOfLines = 5 + view.addSubview(textField) + representationPreview = textField + NSLayoutConstraint.activate([ + textField.centerXAnchor.constraint(equalTo: view.centerXAnchor), + textField.centerYAnchor.constraint(equalTo: view.centerYAnchor, constant: -12.34), + textField.widthAnchor.constraint(equalTo: view.widthAnchor, constant: -20), + textField.heightAnchor.constraint(equalTo: view.heightAnchor, constant: -34) + ]) + case nil: representationPreview = .init() } diff --git a/Samra/UI/Rendition/RenditionInformationView.swift b/Samra/UI/Rendition/RenditionInformationView.swift index fdd5cb6..d067519 100644 --- a/Samra/UI/Rendition/RenditionInformationView.swift +++ b/Samra/UI/Rendition/RenditionInformationView.swift @@ -69,6 +69,19 @@ struct RenditionInformationView: View { Circle() .fill(Color(NSColor(cgColor: cgColor)!)) .frame(width: 130, height: 230, alignment: .center) + + case .rawData(let data): + if let string = String(data:data, encoding:.utf8) { + Text(String(string.prefix(1024))) + .font(.body) + .padding(5) + } else { + Text("No Preview Available") + .font(.title.italic()) + .padding(30) + } + + default: Text("No Preview Available.") .font(.title.italic())