diff --git a/Mac/Base.lproj/Preferences.storyboard b/Mac/Base.lproj/Preferences.storyboard
index a2573f534..5ae296a83 100644
--- a/Mac/Base.lproj/Preferences.storyboard
+++ b/Mac/Base.lproj/Preferences.storyboard
@@ -469,7 +469,7 @@
-
+
diff --git a/Mac/Preferences/Accounts/AccountCell.swift b/Mac/Preferences/Accounts/AccountCell.swift
new file mode 100644
index 000000000..2e2de3d39
--- /dev/null
+++ b/Mac/Preferences/Accounts/AccountCell.swift
@@ -0,0 +1,41 @@
+//
+// AccountCell.swift
+// NetNewsWire
+//
+// Created by Maurice Parker on 11/19/20.
+// Copyright © 2020 Ranchero Software. All rights reserved.
+//
+
+import AppKit
+
+class AccountCell: NSTableCellView {
+
+ private var originalImage: NSImage?
+
+ var isImageTemplateCapable = true
+
+ override var backgroundStyle: NSView.BackgroundStyle {
+ didSet {
+ updateImage()
+ }
+ }
+
+}
+
+private extension AccountCell {
+
+ func updateImage() {
+ guard isImageTemplateCapable else { return }
+
+ if backgroundStyle != .normal {
+ originalImage = imageView?.image
+ let templateImage = imageView?.image?.copy() as? NSImage
+ templateImage?.isTemplate = true
+ imageView?.image = templateImage
+ } else {
+ guard let originalImage = originalImage else { return }
+ imageView?.image = originalImage
+ }
+ }
+
+}
diff --git a/Mac/Preferences/Accounts/AccountsPreferencesViewController.swift b/Mac/Preferences/Accounts/AccountsPreferencesViewController.swift
index 5d026882a..e4ebb4058 100644
--- a/Mac/Preferences/Accounts/AccountsPreferencesViewController.swift
+++ b/Mac/Preferences/Accounts/AccountsPreferencesViewController.swift
@@ -109,13 +109,17 @@ extension AccountsPreferencesViewController: NSTableViewDataSource {
extension AccountsPreferencesViewController: NSTableViewDelegate {
- private static let cellIdentifier = NSUserInterfaceItemIdentifier(rawValue: "AccountCell")
-
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
- if let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "Cell"), owner: nil) as? NSTableCellView {
+ if let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "Cell"), owner: nil) as? AccountCell {
+
let account = sortedAccounts[row]
cell.textField?.stringValue = account.nameForDisplay
cell.imageView?.image = account.smallIcon?.image
+
+ if account.type == .feedbin {
+ cell.isImageTemplateCapable = false
+ }
+
return cell
}
return nil
diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj
index 724c25baa..02353530f 100644
--- a/NetNewsWire.xcodeproj/project.pbxproj
+++ b/NetNewsWire.xcodeproj/project.pbxproj
@@ -183,6 +183,8 @@
51333D1724685D2E00EB5C91 /* AddRedditFeedWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51333D1524685D2E00EB5C91 /* AddRedditFeedWindowController.swift */; };
51333D3B2468615D00EB5C91 /* AddRedditFeedSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 51333D392468615D00EB5C91 /* AddRedditFeedSheet.xib */; };
51333D3C2468615D00EB5C91 /* AddRedditFeedSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 51333D392468615D00EB5C91 /* AddRedditFeedSheet.xib */; };
+ 51386A8E25673277005F3762 /* AccountCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51386A8D25673276005F3762 /* AccountCell.swift */; };
+ 51386A8F25673277005F3762 /* AccountCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51386A8D25673276005F3762 /* AccountCell.swift */; };
5138E93A24D33E5600AFF0FE /* RSTree in Frameworks */ = {isa = PBXBuildFile; productRef = 5138E93924D33E5600AFF0FE /* RSTree */; };
5138E93B24D33E5600AFF0FE /* RSTree in Embed Frameworks */ = {isa = PBXBuildFile; productRef = 5138E93924D33E5600AFF0FE /* RSTree */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
5138E94924D3416D00AFF0FE /* RSCore in Frameworks */ = {isa = PBXBuildFile; productRef = 5138E94824D3416D00AFF0FE /* RSCore */; };
@@ -1579,6 +1581,7 @@
51314714235C420900387FDC /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Intents.strings; sourceTree = ""; };
51333D1524685D2E00EB5C91 /* AddRedditFeedWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddRedditFeedWindowController.swift; sourceTree = ""; };
51333D3A2468615D00EB5C91 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Mac/Base.lproj/AddRedditFeedSheet.xib; sourceTree = SOURCE_ROOT; };
+ 51386A8D25673276005F3762 /* AccountCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountCell.swift; sourceTree = ""; };
51392D1A24AC19A000BE0D35 /* SidebarExpandedContainers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarExpandedContainers.swift; sourceTree = ""; };
513C5CE6232571C2003D4054 /* NetNewsWire iOS Share Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "NetNewsWire iOS Share Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
513C5CE8232571C2003D4054 /* ShareViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareViewController.swift; sourceTree = ""; };
@@ -3467,9 +3470,11 @@
84C9FC6F22629E1200D921D6 /* Accounts */ = {
isa = PBXGroup;
children = (
- 178A9F9C2549449F00AB7E9D /* AddAccountsView.swift */,
- 1710B9122552354E00679C0D /* AddAccountHelpView.swift */,
- 84C9FC7222629E1200D921D6 /* AccountsPreferencesViewController.swift */,
+ 51386A8D25673276005F3762 /* AccountCell.swift */,
+ 5103A9DA242258C600410853 /* AccountsAddCloudKit.xib */,
+ 5103A9F624225E4C00410853 /* AccountsAddCloudKitWindowController.swift */,
+ 5144EA352279FC3D00D19003 /* AccountsAddLocal.xib */,
+ 5144EA372279FC6200D19003 /* AccountsAddLocalWindowController.swift */,
84C9FC7422629E1200D921D6 /* AccountsDetail.xib */,
5144EA2E2279FAB600D19003 /* AccountsDetailViewController.swift */,
5144EA50227B8E4500D19003 /* AccountsFeedbin.xib */,
@@ -3478,12 +3483,11 @@
3B826DCA2385C84800FC1ADB /* AccountsFeedWranglerWindowController.swift */,
BDCB514D24282C8A00102A80 /* AccountsNewsBlur.xib */,
179DBBA2B22A659F81EED6F9 /* AccountsNewsBlurWindowController.swift */,
+ 84C9FC7222629E1200D921D6 /* AccountsPreferencesViewController.swift */,
55E15BC1229D65A900D6602A /* AccountsReaderAPI.xib */,
55E15BCA229D65A900D6602A /* AccountsReaderAPIWindowController.swift */,
- 5144EA352279FC3D00D19003 /* AccountsAddLocal.xib */,
- 5144EA372279FC6200D19003 /* AccountsAddLocalWindowController.swift */,
- 5103A9DA242258C600410853 /* AccountsAddCloudKit.xib */,
- 5103A9F624225E4C00410853 /* AccountsAddCloudKitWindowController.swift */,
+ 1710B9122552354E00679C0D /* AddAccountHelpView.swift */,
+ 178A9F9C2549449F00AB7E9D /* AddAccountsView.swift */,
);
path = Accounts;
sourceTree = "";
@@ -5065,6 +5069,7 @@
65ED3FFB235DEF6C0081F399 /* AccountsReaderAPIWindowController.swift in Sources */,
65ED3FFC235DEF6C0081F399 /* AccountsAddLocalWindowController.swift in Sources */,
65ED3FFD235DEF6C0081F399 /* PasteboardFolder.swift in Sources */,
+ 51386A8F25673277005F3762 /* AccountCell.swift in Sources */,
65ED3FFE235DEF6C0081F399 /* AccountsFeedbinWindowController.swift in Sources */,
65ED3FFF235DEF6C0081F399 /* SidebarOutlineDataSource.swift in Sources */,
65ED4000235DEF6C0081F399 /* SidebarCellAppearance.swift in Sources */,
@@ -5497,6 +5502,7 @@
84CAFCA422BC8C08007694F0 /* FetchRequestQueue.swift in Sources */,
844B5B591FE9FE4F00C7C76A /* SidebarKeyboardDelegate.swift in Sources */,
84C9FC7C22629E1200D921D6 /* AccountsPreferencesViewController.swift in Sources */,
+ 51386A8E25673277005F3762 /* AccountCell.swift in Sources */,
510C418124E5D1AE008226FD /* ExtensionContainers.swift in Sources */,
51EC114C2149FE3300B296E3 /* FolderTreeMenu.swift in Sources */,
849ADEE42359817E000E1B81 /* NNW3ImportController.swift in Sources */,