Revision: 13492
http://sourceforge.net/p/skim-app/code/13492
Author: hofman
Date: 2023-06-19 18:26:38 +0000 (Mon, 19 Jun 2023)
Log Message:
-----------
don't try to generate quicklook preview or thumbnail on 14.0+ for PS files, as
the built-in support is not supported
Modified Paths:
--------------
trunk/QuickLook-Skim/GeneratePreviewForURL.m
trunk/QuickLook-Skim/GenerateThumbnailForURL.m
Modified: trunk/QuickLook-Skim/GeneratePreviewForURL.m
===================================================================
--- trunk/QuickLook-Skim/GeneratePreviewForURL.m 2023-06-19 17:57:48 UTC
(rev 13491)
+++ trunk/QuickLook-Skim/GeneratePreviewForURL.m 2023-06-19 18:26:38 UTC
(rev 13492)
@@ -85,22 +85,24 @@
} else if (UTTypeEqual(CFSTR("com.adobe.postscript"), contentTypeUTI)) {
- bool converted = false;
- CGPSConverterCallbacks converterCallbacks = { 0, NULL, NULL, NULL,
NULL, NULL, NULL, NULL };
- CGPSConverterRef converter = CGPSConverterCreate(NULL,
&converterCallbacks, NULL);
- CGDataProviderRef provider = CGDataProviderCreateWithURL(url);
- CFMutableDataRef data = CFDataCreateMutable(NULL, 0);
- CGDataConsumerRef consumer = CGDataConsumerCreateWithCFData(data);
- if (provider != NULL && consumer != NULL)
- converted = CGPSConverterConvert(converter, provider, consumer,
NULL);
- CGDataProviderRelease(provider);
- CGDataConsumerRelease(consumer);
- CFRelease(converter);
- if (converted) {
- QLPreviewRequestSetDataRepresentation(preview, data, kUTTypePDF,
NULL);
- err = noErr;
+ if (@available(macOS 14.0, *)) {} else {
+ bool converted = false;
+ CGPSConverterCallbacks converterCallbacks = { 0, NULL, NULL, NULL,
NULL, NULL, NULL, NULL };
+ CGPSConverterRef converter = CGPSConverterCreate(NULL,
&converterCallbacks, NULL);
+ CGDataProviderRef provider = CGDataProviderCreateWithURL(url);
+ CFMutableDataRef data = CFDataCreateMutable(NULL, 0);
+ CGDataConsumerRef consumer = CGDataConsumerCreateWithCFData(data);
+ if (provider != NULL && consumer != NULL)
+ converted = CGPSConverterConvert(converter, provider,
consumer, NULL);
+ CGDataProviderRelease(provider);
+ CGDataConsumerRelease(consumer);
+ CFRelease(converter);
+ if (converted) {
+ QLPreviewRequestSetDataRepresentation(preview, data,
kUTTypePDF, NULL);
+ err = noErr;
+ }
+ if (data) CFRelease(data);
}
- if (data) CFRelease(data);
} else if (UTTypeEqual(CFSTR("net.sourceforge.skim-app.skimnotes"),
contentTypeUTI)) {
Modified: trunk/QuickLook-Skim/GenerateThumbnailForURL.m
===================================================================
--- trunk/QuickLook-Skim/GenerateThumbnailForURL.m 2023-06-19 17:57:48 UTC
(rev 13491)
+++ trunk/QuickLook-Skim/GenerateThumbnailForURL.m 2023-06-19 18:26:38 UTC
(rev 13492)
@@ -163,46 +163,48 @@
} else if (UTTypeEqual(CFSTR("com.adobe.postscript"), contentTypeUTI)) {
- bool converted = false;
- CGPSConverterCallbacks converterCallbacks = { 0, NULL, NULL, NULL,
NULL, NULL, NULL, NULL };
- CGPSConverterRef converter = CGPSConverterCreate(NULL,
&converterCallbacks, NULL);
- CGDataProviderRef provider = CGDataProviderCreateWithURL(url);
- CFMutableDataRef pdfData = CFDataCreateMutable(NULL, 0);
- CGDataConsumerRef consumer = CGDataConsumerCreateWithCFData(pdfData);
- if (provider != NULL && consumer != NULL)
- converted = CGPSConverterConvert(converter, provider, consumer,
NULL);
- CGDataProviderRelease(provider);
- CGDataConsumerRelease(consumer);
- CFRelease(converter);
-
- if (converted) {
- // sadly, we can't use the system's QL generator from inside
quicklookd, so we don't get the fancy binder on the left edge
- provider = CGDataProviderCreateWithCFData(pdfData);
- CGPDFDocumentRef pdfDoc =
CGPDFDocumentCreateWithProvider(provider);
- CGPDFPageRef pdfPage = NULL;
- if (pdfDoc && CGPDFDocumentGetNumberOfPages(pdfDoc) > 0)
- pdfPage = CGPDFDocumentGetPage(pdfDoc, 1);
+ if (@available(macOS 14.0, *)) {} else {
+ bool converted = false;
+ CGPSConverterCallbacks converterCallbacks = { 0, NULL, NULL, NULL,
NULL, NULL, NULL, NULL };
+ CGPSConverterRef converter = CGPSConverterCreate(NULL,
&converterCallbacks, NULL);
+ CGDataProviderRef provider = CGDataProviderCreateWithURL(url);
+ CFMutableDataRef pdfData = CFDataCreateMutable(NULL, 0);
+ CGDataConsumerRef consumer =
CGDataConsumerCreateWithCFData(pdfData);
+ if (provider != NULL && consumer != NULL)
+ converted = CGPSConverterConvert(converter, provider,
consumer, NULL);
+ CGDataProviderRelease(provider);
+ CGDataConsumerRelease(consumer);
+ CFRelease(converter);
- if (pdfPage) {
- CGRect pageRect = CGPDFPageGetBoxRect(pdfPage, kCGPDFCropBox);
- CGRect thumbRect = {{0.0, 0.0}, {CGRectGetWidth(pageRect),
CGRectGetHeight(pageRect)}};
- CGFloat color[4] = {1.0, 1.0, 1.0, 1.0};
- CGContextRef ctxt = QLThumbnailRequestCreateContext(thumbnail,
thumbRect.size, FALSE, NULL);
- CGAffineTransform t = CGPDFPageGetDrawingTransform(pdfPage,
kCGPDFCropBox, thumbRect, 0, true);
- CGContextConcatCTM(ctxt, t);
- CGContextClipToRect(ctxt, pageRect);
- CGContextSetFillColor(ctxt, color);
- CGContextFillRect(ctxt, pageRect);
- CGContextDrawPDFPage(ctxt, pdfPage);
- QLThumbnailRequestFlushContext(thumbnail, ctxt);
- CGContextRelease(ctxt);
- didGenerate = true;
+ if (converted) {
+ // sadly, we can't use the system's QL generator from inside
quicklookd, so we don't get the fancy binder on the left edge
+ provider = CGDataProviderCreateWithCFData(pdfData);
+ CGPDFDocumentRef pdfDoc =
CGPDFDocumentCreateWithProvider(provider);
+ CGPDFPageRef pdfPage = NULL;
+ if (pdfDoc && CGPDFDocumentGetNumberOfPages(pdfDoc) > 0)
+ pdfPage = CGPDFDocumentGetPage(pdfDoc, 1);
+
+ if (pdfPage) {
+ CGRect pageRect = CGPDFPageGetBoxRect(pdfPage,
kCGPDFCropBox);
+ CGRect thumbRect = {{0.0, 0.0}, {CGRectGetWidth(pageRect),
CGRectGetHeight(pageRect)}};
+ CGFloat color[4] = {1.0, 1.0, 1.0, 1.0};
+ CGContextRef ctxt =
QLThumbnailRequestCreateContext(thumbnail, thumbRect.size, FALSE, NULL);
+ CGAffineTransform t =
CGPDFPageGetDrawingTransform(pdfPage, kCGPDFCropBox, thumbRect, 0, true);
+ CGContextConcatCTM(ctxt, t);
+ CGContextClipToRect(ctxt, pageRect);
+ CGContextSetFillColor(ctxt, color);
+ CGContextFillRect(ctxt, pageRect);
+ CGContextDrawPDFPage(ctxt, pdfPage);
+ QLThumbnailRequestFlushContext(thumbnail, ctxt);
+ CGContextRelease(ctxt);
+ didGenerate = true;
+ }
+ CGPDFDocumentRelease(pdfDoc);
+ CGDataProviderRelease(provider);
}
- CGPDFDocumentRelease(pdfDoc);
- CGDataProviderRelease(provider);
+ if (pdfData) CFRelease(pdfData);
}
- if (pdfData) CFRelease(pdfData);
-
+
} else if (UTTypeEqual(CFSTR("net.sourceforge.skim-app.skimnotes"),
contentTypeUTI)) {
NSData *data = [[NSData alloc] initWithContentsOfURL:(NSURL *)url
options:NSUncachedRead error:NULL];
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit