From 76f3fa749849e4435820ec8795967b0ec738f656 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Sun, 17 Dec 2017 10:51:46 -0800 Subject: [PATCH] Use SmallIconProvider in SidebarViewController to get icons for sidebar objects. --- .../Sidebar/SidebarViewController.swift | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Evergreen/MainWindow/Sidebar/SidebarViewController.swift b/Evergreen/MainWindow/Sidebar/SidebarViewController.swift index c097ca9d4..63cb1e9e8 100644 --- a/Evergreen/MainWindow/Sidebar/SidebarViewController.swift +++ b/Evergreen/MainWindow/Sidebar/SidebarViewController.swift @@ -343,7 +343,7 @@ private extension SidebarViewController { cell.name = nameFor(node) configureUnreadCount(cell, node) configureFavicon(cell, node) - cell.shouldShowImage = node.representedObject is Feed + cell.shouldShowImage = node.representedObject is SmallIconProvider } func configureUnreadCount(_ cell: SidebarCell, _ node: Node) { @@ -364,10 +364,10 @@ private extension SidebarViewController { func imageFor(_ node: Node) -> NSImage? { - guard let feed = node.representedObject as? Feed else { - return nil + if let smallIconProvider = node.representedObject as? SmallIconProvider { + return smallIconProvider.smallIcon } - return appDelegate.faviconDownloader.favicon(for: feed) + return nil } func nameFor(_ node: Node) -> String { @@ -492,3 +492,10 @@ private extension SidebarViewController { } } +extension Feed: SmallIconProvider { + + var smallIcon: NSImage? { + return appDelegate.faviconDownloader.favicon(for: self) + } +} +