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

Reply via email to