Use ItemIdentifier and itemID instead of FeedIdentifier and feedID. (FeedIdentifier was renamed to ItemIdentifier.)

This commit is contained in:
Brent Simmons
2023-07-04 14:41:02 -07:00
parent 4890a33469
commit a6832dd2a5
16 changed files with 101 additions and 101 deletions

View File

@@ -100,7 +100,7 @@ protocol SidebarDelegate: AnyObject {
func saveState(to state: inout [AnyHashable : Any]) {
state[UserInfoKey.readFeedsFilterState] = isReadFiltered
state[UserInfoKey.containerExpandedWindowState] = expandedTable.map { $0.userInfo }
state[UserInfoKey.selectedFeedsState] = selectedFeeds.compactMap { $0.feedID?.userInfo }
state[UserInfoKey.selectedFeedsState] = selectedFeeds.compactMap { $0.itemID?.userInfo }
}
func restoreState(from state: [AnyHashable : Any]) {
@@ -114,22 +114,22 @@ protocol SidebarDelegate: AnyObject {
return
}
let selectedFeedIdentifers = Set(selectedFeedsState.compactMap( { FeedIdentifier(userInfo: $0) }))
selectedFeedIdentifers.forEach { treeControllerDelegate.addFilterException($0) }
let selectedItemIdentifers = Set(selectedFeedsState.compactMap( { ItemIdentifier(userInfo: $0) }))
selectedItemIdentifers.forEach { treeControllerDelegate.addFilterException($0) }
rebuildTreeAndReloadDataIfNeeded()
var selectIndexes = IndexSet()
func selectFeedsVisitor(node: Node) {
if let feedID = (node.representedObject as? FeedIdentifiable)?.feedID {
if selectedFeedIdentifers.contains(feedID) {
func selectItemsVisitor(node: Node) {
if let itemID = (node.representedObject as? ItemIdentifiable)?.itemID {
if selectedItemIdentifers.contains(itemID) {
selectIndexes.insert(outlineView.row(forItem: node) )
}
}
}
treeController.visitNodes(selectFeedsVisitor(node:))
treeController.visitNodes(selectItemsVisitor(node:))
outlineView.selectRowIndexes(selectIndexes, byExtendingSelection: false)
focus()
@@ -456,13 +456,13 @@ protocol SidebarDelegate: AnyObject {
// MARK: - API
func selectFeed(_ feed: FeedProtocol) {
if isReadFiltered, let feedID = feed.feedID {
self.treeControllerDelegate.addFilterException(feedID)
if isReadFiltered, let itemID = feed.itemID {
self.treeControllerDelegate.addFilterException(itemID)
if let webFeed = feed as? WebFeed, let account = webFeed.account {
let parentFolder = account.sortedFolders?.first(where: { $0.objectIsChild(webFeed) })
if let parentFolderFeedID = parentFolder?.feedID {
self.treeControllerDelegate.addFilterException(parentFolderFeedID)
if let parentFolderItemID = parentFolder?.itemID {
self.treeControllerDelegate.addFilterException(parentFolderItemID)
}
}
@@ -544,16 +544,16 @@ private extension SidebarViewController {
}
func addToFilterExeptionsIfNecessary(_ feed: FeedProtocol?) {
if isReadFiltered, let feedID = feed?.feedID {
if isReadFiltered, let itemID = feed?.itemID {
if feed is PseudoFeed {
treeControllerDelegate.addFilterException(feedID)
treeControllerDelegate.addFilterException(itemID)
} else if let folderFeed = feed as? Folder {
if folderFeed.account?.existingFolder(withID: folderFeed.folderID) != nil {
treeControllerDelegate.addFilterException(feedID)
treeControllerDelegate.addFilterException(itemID)
}
} else if let webFeed = feed as? WebFeed {
if webFeed.account?.existingWebFeed(withWebFeedID: webFeed.webFeedID) != nil {
treeControllerDelegate.addFilterException(feedID)
treeControllerDelegate.addFilterException(itemID)
addParentFolderToFilterExceptions(webFeed)
}
}
@@ -563,11 +563,11 @@ private extension SidebarViewController {
func addParentFolderToFilterExceptions(_ feed: FeedProtocol) {
guard let node = treeController.rootNode.descendantNodeRepresentingObject(feed as AnyObject),
let folder = node.parent?.representedObject as? Folder,
let folderFeedID = folder.feedID else {
let folderItemID = folder.itemID else {
return
}
treeControllerDelegate.addFilterException(folderFeedID)
treeControllerDelegate.addFilterException(folderItemID)
}
@@ -621,8 +621,8 @@ private extension SidebarViewController {
}
func addTreeControllerToFilterExceptionsVisitor(node: Node) {
if let feed = node.representedObject as? FeedProtocol, let feedID = feed.feedID {
treeControllerDelegate.addFilterException(feedID)
if let feed = node.representedObject as? FeedProtocol, let itemID = feed.itemID {
treeControllerDelegate.addFilterException(itemID)
}
}

View File

@@ -27,7 +27,7 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr
@IBOutlet var tableView: TimelineTableView!
private var readFilterEnabledTable = [FeedIdentifier: Bool]()
private var readFilterEnabledTable = [ItemIdentifier: Bool]()
var isReadFiltered: Bool? {
guard representedObjects?.count == 1, let timelineFeed = representedObjects?.first as? FeedProtocol else {
return nil
@@ -35,7 +35,7 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr
guard timelineFeed.defaultReadFilterType != .alwaysRead else {
return nil
}
if let feedID = timelineFeed.feedID, let readFilterEnabled = readFilterEnabledTable[feedID] {
if let itemID = timelineFeed.itemID, let readFilterEnabled = readFilterEnabledTable[itemID] {
return readFilterEnabled
} else {
return timelineFeed.defaultReadFilterType == .read
@@ -281,8 +281,8 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr
}
func toggleReadFilter() {
guard let filter = isReadFiltered, let feedID = (representedObjects?.first as? FeedProtocol)?.feedID else { return }
readFilterEnabledTable[feedID] = !filter
guard let filter = isReadFiltered, let itemID = (representedObjects?.first as? FeedProtocol)?.itemID else { return }
readFilterEnabledTable[itemID] = !filter
delegate?.timelineInvalidatedRestorationState(self)
fetchAndReplacePreservingSelection()
}
@@ -305,8 +305,8 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr
}
for i in 0..<readArticlesFilterStateKeys.count {
if let feedIdentifier = FeedIdentifier(userInfo: readArticlesFilterStateKeys[i]) {
readFilterEnabledTable[feedIdentifier] = readArticlesFilterStateValues[i]
if let itemIdentifier = ItemIdentifier(userInfo: readArticlesFilterStateKeys[i]) {
readFilterEnabledTable[itemIdentifier] = readArticlesFilterStateValues[i]
}
}