// // ThumbnailProvider.swift // CaseraQLThumbnail // // Created by Trey Tartt on 12/6/25. // import UIKit import QuickLookThumbnailing class ThumbnailProvider: QLThumbnailProvider { override func provideThumbnail(for request: QLFileThumbnailRequest, _ handler: @escaping (QLThumbnailReply?, Error?) -> Void) { let thumbnailSize = request.maximumSize handler(QLThumbnailReply(contextSize: thumbnailSize, currentContextDrawing: { () -> Bool in // Draw background let backgroundColor = UIColor(red: 7/255, green: 160/255, blue: 195/255, alpha: 1) backgroundColor.setFill() UIRectFill(CGRect(origin: .zero, size: thumbnailSize)) // Draw icon let config = UIImage.SymbolConfiguration(pointSize: min(thumbnailSize.width, thumbnailSize.height) * 0.5, weight: .regular) if let icon = UIImage(systemName: "person.crop.rectangle.stack", withConfiguration: config) { let tintedIcon = icon.withTintColor(.white, renderingMode: .alwaysOriginal) let iconSize = tintedIcon.size let iconOrigin = CGPoint( x: (thumbnailSize.width - iconSize.width) / 2, y: (thumbnailSize.height - iconSize.height) / 2 ) tintedIcon.draw(at: iconOrigin) } return true }), nil) } }