Rename WebFeed type to just Feed.

This commit is contained in:
Brent Simmons
2023-07-05 10:02:53 -07:00
parent d5d57a7e30
commit 2f07f4ee16
50 changed files with 393 additions and 393 deletions

View File

@@ -176,7 +176,7 @@ enum TimelineSourceMode {
}
}
if let feed = currentFeedOrFolder as? WebFeed, let noteObject = noteObject as? WebFeed {
if let feed = currentFeedOrFolder as? Feed, let noteObject = noteObject as? Feed {
if feed == noteObject {
updateWindowTitle()
return
@@ -706,7 +706,7 @@ extension MainWindowController: TimelineContainerViewControllerDelegate {
detailViewController?.setState(detailState, mode: mode)
}
func timelineRequestedWebFeedSelection(_: TimelineContainerViewController, webFeed: WebFeed) {
func timelineRequestedWebFeedSelection(_: TimelineContainerViewController, webFeed: Feed) {
sidebarViewController?.selectFeed(webFeed)
}

View File

@@ -153,7 +153,7 @@ struct PasteboardFeed: Hashable {
}
}
extension WebFeed: PasteboardWriterOwner {
extension Feed: PasteboardWriterOwner {
public var pasteboardWriter: NSPasteboardWriting {
return FeedPasteboardWriter(webFeed: self)
@@ -162,7 +162,7 @@ extension WebFeed: PasteboardWriterOwner {
@objc final class FeedPasteboardWriter: NSObject, NSPasteboardWriting {
private let webFeed: WebFeed
private let webFeed: Feed
static let webFeedUTI = "com.ranchero.webFeed"
static let webFeedUTIType = NSPasteboard.PasteboardType(rawValue: webFeedUTI)
static let webFeedUTIInternal = "com.ranchero.NetNewsWire-Evergreen.internal.webFeed"
@@ -170,7 +170,7 @@ extension WebFeed: PasteboardWriterOwner {
var containerID: ContainerIdentifier? = nil
init(webFeed: WebFeed) {
init(webFeed: Feed) {
self.webFeed = webFeed
}
@@ -205,7 +205,7 @@ extension WebFeed: PasteboardWriterOwner {
private extension FeedPasteboardWriter {
var pasteboardFeed: PasteboardFeed {
return PasteboardFeed(url: webFeed.url, feedID: webFeed.webFeedID, homePageURL: webFeed.homePageURL, name: webFeed.name, editedName: webFeed.editedName, accountID: webFeed.account?.accountID, accountType: webFeed.account?.type)
return PasteboardFeed(url: webFeed.url, feedID: webFeed.feedID, homePageURL: webFeed.homePageURL, name: webFeed.name, editedName: webFeed.editedName, accountID: webFeed.account?.accountID, accountType: webFeed.account?.type)
}
var exportDictionary: PasteboardFeedDictionary {

View File

@@ -144,7 +144,7 @@ private extension SidebarOutlineDataSource {
// Dont allow PseudoFeed to be dragged.
// This will have to be revisited later. For instance,
// user-created smart feeds should be draggable, maybe.
return node.representedObject is Folder || node.representedObject is WebFeed
return node.representedObject is Folder || node.representedObject is Feed
}
// MARK: - Drag and Drop
@@ -257,7 +257,7 @@ private extension SidebarOutlineDataSource {
if let folder = node.representedObject as? Folder {
return folder.account
}
if let feed = node.representedObject as? WebFeed {
if let feed = node.representedObject as? Feed {
return feed.account
}
return nil
@@ -315,7 +315,7 @@ private extension SidebarOutlineDataSource {
return .copy // different AccountIDs means can only copy
}
func copyWebFeedInAccount(_ feed: WebFeed, _ destination: Container ) {
func copyWebFeedInAccount(_ feed: Feed, _ destination: Container ) {
destination.account?.addFeed(feed, to: destination) { result in
switch result {
case .success:
@@ -326,7 +326,7 @@ private extension SidebarOutlineDataSource {
}
}
func moveFeedInAccount(_ feed: WebFeed, _ source: Container, _ destination: Container) {
func moveFeedInAccount(_ feed: Feed, _ source: Container, _ destination: Container) {
BatchUpdate.shared.start()
source.account?.moveFeed(feed, from: source, to: destination) { result in
BatchUpdate.shared.end()
@@ -339,7 +339,7 @@ private extension SidebarOutlineDataSource {
}
}
func copyWebFeedBetweenAccounts(_ feed: WebFeed, _ destinationContainer: Container) {
func copyWebFeedBetweenAccounts(_ feed: Feed, _ destinationContainer: Container) {
guard let destinationAccount = destinationContainer.account else {
return
}
@@ -514,7 +514,7 @@ private extension SidebarOutlineDataSource {
}
func nodeRepresentsAnyDraggedFeed(_ node: Node, _ draggedFeeds: Set<PasteboardFeed>) -> Bool {
guard let feed = node.representedObject as? WebFeed else {
guard let feed = node.representedObject as? Feed else {
return false
}
for draggedFeed in draggedFeeds {
@@ -553,7 +553,7 @@ private extension SidebarOutlineDataSource {
return account
} else if let folder = node.representedObject as? Folder {
return folder.account
} else if let webFeed = node.representedObject as? WebFeed {
} else if let webFeed = node.representedObject as? Feed {
return webFeed.account
} else {
return nil

View File

@@ -31,8 +31,8 @@ extension SidebarViewController {
let object = objects.first!
switch object {
case is WebFeed:
return menuForFeed(object as! WebFeed)
case is Feed:
return menuForFeed(object as! Feed)
case is Folder:
return menuForFolder(object as! Folder)
case is PseudoFeed:
@@ -151,7 +151,7 @@ extension SidebarViewController {
@objc func renameFromContextualMenu(_ sender: Any?) {
guard let window = view.window, let menuItem = sender as? NSMenuItem, let object = menuItem.representedObject as? DisplayNameProvider, object is WebFeed || object is Folder else {
guard let window = view.window, let menuItem = sender as? NSMenuItem, let object = menuItem.representedObject as? DisplayNameProvider, object is Feed || object is Folder else {
return
}
@@ -164,7 +164,7 @@ extension SidebarViewController {
@objc func toggleNotificationsFromContextMenu(_ sender: Any?) {
guard let item = sender as? NSMenuItem,
let feed = item.representedObject as? WebFeed else {
let feed = item.representedObject as? Feed else {
return
}
UNUserNotificationCenter.current().getNotificationSettings { (settings) in
@@ -195,7 +195,7 @@ extension SidebarViewController {
@objc func toggleArticleExtractorFromContextMenu(_ sender: Any?) {
guard let item = sender as? NSMenuItem,
let feed = item.representedObject as? WebFeed else {
let feed = item.representedObject as? Feed else {
return
}
if feed.isArticleExtractorAlwaysOn == nil { feed.isArticleExtractorAlwaysOn = false }
@@ -228,7 +228,7 @@ extension SidebarViewController: RenameWindowControllerDelegate {
func renameWindowController(_ windowController: RenameWindowController, didRenameObject object: Any, withNewName name: String) {
if let feed = object as? WebFeed {
if let feed = object as? Feed {
feed.rename(to: name) { result in
switch result {
case .success:
@@ -264,7 +264,7 @@ private extension SidebarViewController {
return menu
}
func menuForFeed(_ webFeed: WebFeed) -> NSMenu? {
func menuForFeed(_ webFeed: Feed) -> NSMenu? {
let menu = NSMenu(title: "")
@@ -438,7 +438,7 @@ private extension SidebarViewController {
func objectIsFeedOrFolder(_ object: Any) -> Bool {
return object is WebFeed || object is Folder
return object is Feed || object is Folder
}
func menuItem(_ title: String, _ action: Selector, _ representedObject: Any) -> NSMenuItem {

View File

@@ -197,15 +197,15 @@ protocol SidebarDelegate: AnyObject {
}
@objc func webFeedIconDidBecomeAvailable(_ note: Notification) {
guard let webFeed = note.userInfo?[UserInfoKey.webFeed] as? WebFeed else { return }
guard let webFeed = note.userInfo?[UserInfoKey.webFeed] as? Feed else { return }
configureCellsForRepresentedObject(webFeed)
}
@objc func webFeedSettingDidChange(_ note: Notification) {
guard let webFeed = note.object as? WebFeed, let key = note.userInfo?[WebFeed.FeedSettingUserInfoKey] as? String else {
guard let webFeed = note.object as? Feed, let key = note.userInfo?[Feed.FeedSettingUserInfoKey] as? String else {
return
}
if key == WebFeed.FeedSettingKey.homePageURL || key == WebFeed.FeedSettingKey.faviconURL {
if key == Feed.FeedSettingKey.homePageURL || key == Feed.FeedSettingKey.faviconURL {
configureCellsForRepresentedObject(webFeed)
}
}
@@ -459,7 +459,7 @@ protocol SidebarDelegate: AnyObject {
if isReadFiltered, let itemID = feed.itemID {
self.treeControllerDelegate.addFilterException(itemID)
if let webFeed = feed as? WebFeed, let account = webFeed.account {
if let webFeed = feed as? Feed, let account = webFeed.account {
let parentFolder = account.sortedFolders?.first(where: { $0.objectIsChild(webFeed) })
if let parentFolderItemID = parentFolder?.itemID {
self.treeControllerDelegate.addFilterException(parentFolderItemID)
@@ -532,11 +532,11 @@ private extension SidebarViewController {
return selectedNodes.first!
}
var singleSelectedWebFeed: WebFeed? {
var singleSelectedWebFeed: Feed? {
guard let node = singleSelectedNode else {
return nil
}
return node.representedObject as? WebFeed
return node.representedObject as? Feed
}
func addAllSelectedToFilterExceptions() {
@@ -551,8 +551,8 @@ private extension SidebarViewController {
if folderFeed.account?.existingFolder(withID: folderFeed.folderID) != nil {
treeControllerDelegate.addFilterException(itemID)
}
} else if let webFeed = feed as? WebFeed {
if webFeed.account?.existingFeed(withFeedID: webFeed.webFeedID) != nil {
} else if let webFeed = feed as? Feed {
if webFeed.account?.existingFeed(withFeedID: webFeed.feedID) != nil {
treeControllerDelegate.addFilterException(itemID)
addParentFolderToFilterExceptions(webFeed)
}
@@ -752,7 +752,7 @@ private extension SidebarViewController {
guard let webFeedID = userInfo?[ArticlePathKey.webFeedID] as? String else {
return nil
}
if let node = startingNode.descendantNode(where: { ($0.representedObject as? WebFeed)?.webFeedID == webFeedID }) {
if let node = startingNode.descendantNode(where: { ($0.representedObject as? Feed)?.feedID == webFeedID }) {
return node
}
return nil
@@ -779,7 +779,7 @@ private extension SidebarViewController {
}
func imageFor(_ node: Node) -> IconImage? {
if let feed = node.representedObject as? WebFeed, let feedIcon = IconImageCache.shared.imageForFeed(feed) {
if let feed = node.representedObject as? Feed, let feedIcon = IconImageCache.shared.imageForFeed(feed) {
return feedIcon
}
if let smallIconProvider = node.representedObject as? SmallIconProvider {
@@ -869,7 +869,7 @@ private extension Node {
if representedObject === object {
return true
}
if let feed1 = object as? WebFeed, let feed2 = representedObject as? WebFeed {
if let feed1 = object as? Feed, let feed2 = representedObject as? Feed {
return feed1 == feed2
}
return false

View File

@@ -12,7 +12,7 @@ import Articles
protocol TimelineContainerViewControllerDelegate: AnyObject {
func timelineSelectionDidChange(_: TimelineContainerViewController, articles: [Article]?, mode: TimelineSourceMode)
func timelineRequestedWebFeedSelection(_: TimelineContainerViewController, webFeed: WebFeed)
func timelineRequestedWebFeedSelection(_: TimelineContainerViewController, webFeed: Feed)
func timelineInvalidatedRestorationState(_: TimelineContainerViewController)
}
@@ -141,7 +141,7 @@ extension TimelineContainerViewController: TimelineDelegate {
delegate?.timelineSelectionDidChange(self, articles: selectedArticles, mode: mode(for: timelineViewController))
}
func timelineRequestedWebFeedSelection(_: TimelineViewController, webFeed: WebFeed) {
func timelineRequestedWebFeedSelection(_: TimelineViewController, webFeed: Feed) {
delegate?.timelineRequestedWebFeedSelection(self, webFeed: webFeed)
}

View File

@@ -70,7 +70,7 @@ extension TimelineViewController {
}
@objc func selectFeedInSidebarFromContextualMenu(_ sender: Any?) {
guard let menuItem = sender as? NSMenuItem, let webFeed = menuItem.representedObject as? WebFeed else {
guard let menuItem = sender as? NSMenuItem, let webFeed = menuItem.representedObject as? Feed else {
return
}
delegate?.timelineRequestedWebFeedSelection(self, webFeed: webFeed)
@@ -179,7 +179,7 @@ private extension TimelineViewController {
menu.addSeparatorIfNeeded()
if articles.count == 1, let feed = articles.first!.feed {
if !(representedObjects?.contains(where: { $0 as? WebFeed == feed }) ?? false) {
if !(representedObjects?.contains(where: { $0 as? Feed == feed }) ?? false) {
menu.addItem(selectFeedInSidebarMenuItem(feed))
}
if let markAllMenuItem = markAllAsReadMenuItem(feed) {
@@ -268,13 +268,13 @@ private extension TimelineViewController {
return menuItem(NSLocalizedString("button.title-mark-below-as-read.titlecase", comment: "Mark Below as Read"), #selector(markBelowArticlesReadFromContextualMenu(_:)), articles)
}
func selectFeedInSidebarMenuItem(_ feed: WebFeed) -> NSMenuItem {
func selectFeedInSidebarMenuItem(_ feed: Feed) -> NSMenuItem {
let localizedMenuText = NSLocalizedString("button.title.select-in-sidebar.%@", comment: "Select “%@” in Sidebar")
let formattedMenuText = NSString.localizedStringWithFormat(localizedMenuText as NSString, feed.nameForDisplay)
return menuItem(formattedMenuText as String, #selector(selectFeedInSidebarFromContextualMenu(_:)), feed)
}
func markAllAsReadMenuItem(_ feed: WebFeed) -> NSMenuItem? {
func markAllAsReadMenuItem(_ feed: Feed) -> NSMenuItem? {
guard let articlesSet = try? feed.fetchArticles() else {
return nil
}

View File

@@ -13,7 +13,7 @@ import Account
protocol TimelineDelegate: AnyObject {
func timelineSelectionDidChange(_: TimelineViewController, selectedArticles: [Article]?)
func timelineRequestedWebFeedSelection(_: TimelineViewController, webFeed: WebFeed)
func timelineRequestedWebFeedSelection(_: TimelineViewController, webFeed: Feed)
func timelineInvalidatedRestorationState(_: TimelineViewController)
}
@@ -110,7 +110,7 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr
return
}
if let representedObjects = representedObjects, representedObjects.count == 1 && representedObjects.first is WebFeed {
if let representedObjects = representedObjects, representedObjects.count == 1 && representedObjects.first is Feed {
showFeedNames = {
for article in articles {
if !article.byline().isEmpty {
@@ -650,7 +650,7 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr
}
@objc func webFeedIconDidBecomeAvailable(_ note: Notification) {
guard showIcons, let feed = note.userInfo?[UserInfoKey.webFeed] as? WebFeed else {
guard showIcons, let feed = note.userInfo?[UserInfoKey.webFeed] as? Feed else {
return
}
let indexesToReload = tableView.indexesOfAvailableRowsPassingTest { (row) -> Bool in
@@ -692,7 +692,7 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr
}
@objc func accountDidDownloadArticles(_ note: Notification) {
guard let feeds = note.userInfo?[Account.UserInfoKey.webFeeds] as? Set<WebFeed> else {
guard let feeds = note.userInfo?[Account.UserInfoKey.webFeeds] as? Set<Feed> else {
return
}
@@ -1317,23 +1317,23 @@ private extension TimelineViewController {
return representedObjects?.contains(where: { $0 is Folder }) ?? false
}
func representedObjectsContainsAnyWebFeed(_ webFeeds: Set<WebFeed>) -> Bool {
func representedObjectsContainsAnyWebFeed(_ webFeeds: Set<Feed>) -> Bool {
// Return true if theres a match or if a folder contains (recursively) one of feeds
guard let representedObjects = representedObjects else {
return false
}
for representedObject in representedObjects {
if let feed = representedObject as? WebFeed {
if let feed = representedObject as? Feed {
for oneFeed in webFeeds {
if feed.webFeedID == oneFeed.webFeedID || feed.url == oneFeed.url {
if feed.feedID == oneFeed.feedID || feed.url == oneFeed.url {
return true
}
}
}
else if let folder = representedObject as? Folder {
for oneFeed in webFeeds {
if folder.hasFeed(with: oneFeed.webFeedID) || folder.hasFeed(withURL: oneFeed.url) {
if folder.hasFeed(with: oneFeed.feedID) || folder.hasFeed(withURL: oneFeed.url) {
return true
}
}