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