Revision: 25275
          http://sourceforge.net/p/bibdesk/svn/25275
Author:   hofman
Date:     2020-12-31 10:30:13 +0000 (Thu, 31 Dec 2020)
Log Message:
-----------
Use NSWorkspace to get file icon for ql thumbnail

Modified Paths:
--------------
    trunk/QuickLook-BibDesk/GenerateThumbnailForURL.m

Modified: trunk/QuickLook-BibDesk/GenerateThumbnailForURL.m
===================================================================
--- trunk/QuickLook-BibDesk/GenerateThumbnailForURL.m   2020-12-31 10:20:04 UTC 
(rev 25274)
+++ trunk/QuickLook-BibDesk/GenerateThumbnailForURL.m   2020-12-31 10:30:13 UTC 
(rev 25275)
@@ -267,29 +267,20 @@
     
     /* fallback case: draw the file icon using Icon Services */
     if (false == didGenerate) {
-    
-        FSRef fileRef;
-        OSStatus err;
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-        if (CFURLGetFSRef(url, &fileRef))
-#pragma clang diagnostic pop
-            err = noErr;
-        else
-            err = fnfErr;
         
-        IconRef iconRef;
-        CGRect rect = CGRectZero;
-        CGFloat side = MIN(maxSize.width, maxSize.height);
-        rect.size.width = side;
-        rect.size.height = side;
-        if (noErr == err)
-            err = GetIconRefFromFileInfo(&fileRef, 0, NULL, kFSCatInfoNone, 
NULL, kIconServicesNormalUsageFlag, &iconRef, NULL);
-        if (noErr == err) {
-            CGContextRef ctxt = QLThumbnailRequestCreateContext(thumbnail, 
rect.size, TRUE, NULL);
-            err = PlotIconRefInContext(ctxt, &rect, kAlignAbsoluteCenter, 
kTransformNone, NULL, kPlotIconRefNormalFlags, iconRef);
+        NSImage *icon = [[NSWorkspace sharedWorkspace] iconForFile:[(NSURL 
*)url path]];
+        CGFloat size = MIN(maxSize.width, maxSize.height);
+        NSRect drawFrame = NSMakeRect(0.0, 0.0, size, size);
+        CGRect cgrect = *(CGRect *)&drawFrame;
+        
+        if (icon) {
+            CGContextRef ctxt = QLThumbnailRequestCreateContext(thumbnail, 
cgrect.size, TRUE, NULL);
+            [NSGraphicsContext setCurrentContext:[NSGraphicsContext 
graphicsContextWithGraphicsPort:ctxt flipped:NO]];
+            CGContextClearRect(ctxt, cgrect);
+            CGContextSetInterpolationQuality(ctxt, kCGInterpolationHigh);
+            [icon drawInRect:drawFrame];
+            QLThumbnailRequestFlushContext(thumbnail, ctxt);
             CGContextRelease(ctxt);
-            ReleaseIconRef(iconRef);
         }
     }
         

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
Bibdesk-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to