Continue renaming webFeed to feed.

This commit is contained in:
Brent Simmons
2024-11-01 22:09:22 -07:00
parent fac4eded60
commit 2d3ef95619
40 changed files with 286 additions and 286 deletions

View File

@@ -56,12 +56,12 @@ class AddFeedController: AddFeedWindowControllerDelegate {
}
let account = accountAndFolderSpecifier.account
if account.hasWebFeed(withURL: url.absoluteString) {
if account.hasFeed(withURL: url.absoluteString) {
showAlreadySubscribedError(url.absoluteString)
return
}
account.createWebFeed(url: url.absoluteString, name: title, container: container, validateFeed: true) { result in
account.createFeed(url: url.absoluteString, name: title, container: container, validateFeed: true) { result in
DispatchQueue.main.async {
self.endShowingProgress()
@@ -69,7 +69,7 @@ class AddFeedController: AddFeedWindowControllerDelegate {
switch result {
case .success(let feed):
NotificationCenter.default.post(name: .UserDidAddFeed, object: self, userInfo: [UserInfoKey.webFeed: feed])
NotificationCenter.default.post(name: .UserDidAddFeed, object: self, userInfo: [UserInfoKey.feed: feed])
case .failure(let error):
switch error {
case AccountError.createErrorAlreadySubscribed:

View File

@@ -70,11 +70,11 @@ struct PasteboardFeed: Hashable {
init?(pasteboardItem: NSPasteboardItem) {
var pasteboardType: NSPasteboard.PasteboardType?
if pasteboardItem.types.contains(WebFeedPasteboardWriter.webFeedUTIInternalType) {
pasteboardType = WebFeedPasteboardWriter.webFeedUTIInternalType
if pasteboardItem.types.contains(FeedPasteboardWriter.feedUTIInternalType) {
pasteboardType = FeedPasteboardWriter.feedUTIInternalType
}
else if pasteboardItem.types.contains(WebFeedPasteboardWriter.webFeedUTIType) {
pasteboardType = WebFeedPasteboardWriter.webFeedUTIType
else if pasteboardItem.types.contains(FeedPasteboardWriter.feedUTIType) {
pasteboardType = FeedPasteboardWriter.feedUTIType
}
if let foundType = pasteboardType {
if let feedDictionary = pasteboardItem.propertyList(forType: foundType) as? PasteboardFeedDictionary {
@@ -107,8 +107,8 @@ struct PasteboardFeed: Hashable {
guard let items = pasteboard.pasteboardItems else {
return nil
}
let webFeeds = items.compactMap { PasteboardFeed(pasteboardItem: $0) }
return webFeeds.isEmpty ? nil : Set(webFeeds)
let feeds = items.compactMap { PasteboardFeed(pasteboardItem: $0) }
return feeds.isEmpty ? nil : Set(feeds)
}
// MARK: - Writing
@@ -149,28 +149,28 @@ struct PasteboardFeed: Hashable {
extension Feed: @retroactive PasteboardWriterOwner {
public var pasteboardWriter: NSPasteboardWriting {
return WebFeedPasteboardWriter(webFeed: self)
return FeedPasteboardWriter(feed: self)
}
}
@objc final class WebFeedPasteboardWriter: NSObject, NSPasteboardWriting {
@objc final class FeedPasteboardWriter: NSObject, NSPasteboardWriting {
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"
static let webFeedUTIInternalType = NSPasteboard.PasteboardType(rawValue: webFeedUTIInternal)
private let feed: Feed
static let feedUTI = "com.ranchero.feed"
static let feedUTIType = NSPasteboard.PasteboardType(rawValue: feedUTI)
static let feedUTIInternal = "com.ranchero.NetNewsWire-Evergreen.internal.feed"
static let feedUTIInternalType = NSPasteboard.PasteboardType(rawValue: feedUTIInternal)
init(webFeed: Feed) {
self.webFeed = webFeed
init(feed: Feed) {
self.feed = feed
}
// MARK: - NSPasteboardWriting
func writableTypes(for pasteboard: NSPasteboard) -> [NSPasteboard.PasteboardType] {
return [WebFeedPasteboardWriter.webFeedUTIType, .URL, .string, WebFeedPasteboardWriter.webFeedUTIInternalType]
return [FeedPasteboardWriter.feedUTIType, .URL, .string, FeedPasteboardWriter.feedUTIInternalType]
}
func pasteboardPropertyList(forType type: NSPasteboard.PasteboardType) -> Any? {
@@ -179,12 +179,12 @@ extension Feed: @retroactive PasteboardWriterOwner {
switch type {
case .string:
plist = webFeed.nameForDisplay
plist = feed.nameForDisplay
case .URL:
plist = webFeed.url
case WebFeedPasteboardWriter.webFeedUTIType:
plist = feed.url
case FeedPasteboardWriter.feedUTIType:
plist = exportDictionary
case WebFeedPasteboardWriter.webFeedUTIInternalType:
case FeedPasteboardWriter.feedUTIInternalType:
plist = internalDictionary
default:
plist = nil
@@ -194,10 +194,10 @@ extension Feed: @retroactive PasteboardWriterOwner {
}
}
private extension WebFeedPasteboardWriter {
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: feed.url, feedID: feed.feedID, homePageURL: feed.homePageURL, name: feed.name, editedName: feed.editedName, accountID: feed.account?.accountID, accountType: feed.account?.type)
}
var exportDictionary: PasteboardFeedDictionary {

View File

@@ -308,12 +308,12 @@ private extension SidebarOutlineDataSource {
return localDragOperation(parentNode: parentNode)
}
func copyWebFeedInAccount(node: Node, to parentNode: Node) {
func copyFeedInAccount(node: Node, to parentNode: Node) {
guard let feed = node.representedObject as? Feed, let destination = parentNode.representedObject as? Container else {
return
}
destination.account?.addWebFeed(feed, to: destination) { result in
destination.account?.addFeed(feed, to: destination) { result in
switch result {
case .success:
break
@@ -323,7 +323,7 @@ private extension SidebarOutlineDataSource {
}
}
func moveWebFeedInAccount(node: Node, to parentNode: Node) {
func moveFeedInAccount(node: Node, to parentNode: Node) {
guard let feed = node.representedObject as? Feed,
let source = node.parent?.representedObject as? Container,
let destination = parentNode.representedObject as? Container else {
@@ -331,7 +331,7 @@ private extension SidebarOutlineDataSource {
}
BatchUpdate.shared.start()
source.account?.moveWebFeed(feed, from: source, to: destination) { result in
source.account?.moveFeed(feed, from: source, to: destination) { result in
BatchUpdate.shared.end()
switch result {
case .success:
@@ -342,15 +342,15 @@ private extension SidebarOutlineDataSource {
}
}
func copyWebFeedBetweenAccounts(node: Node, to parentNode: Node) {
func copyFeedBetweenAccounts(node: Node, to parentNode: Node) {
guard let feed = node.representedObject as? Feed,
let destinationAccount = nodeAccount(parentNode),
let destinationContainer = parentNode.representedObject as? Container else {
return
}
if let existingFeed = destinationAccount.existingWebFeed(withURL: feed.url) {
destinationAccount.addWebFeed(existingFeed, to: destinationContainer) { result in
if let existingFeed = destinationAccount.existingFeed(withURL: feed.url) {
destinationAccount.addFeed(existingFeed, to: destinationContainer) { result in
switch result {
case .success:
break
@@ -359,7 +359,7 @@ private extension SidebarOutlineDataSource {
}
}
} else {
destinationAccount.createWebFeed(url: feed.url, name: feed.nameForDisplay, container: destinationContainer, validateFeed: false) { result in
destinationAccount.createFeed(url: feed.url, name: feed.nameForDisplay, container: destinationContainer, validateFeed: false) { result in
switch result {
case .success:
break
@@ -378,12 +378,12 @@ private extension SidebarOutlineDataSource {
draggedNodes.forEach { node in
if sameAccount(node, parentNode) {
if NSApplication.shared.currentEvent?.modifierFlags.contains(.option) ?? false {
copyWebFeedInAccount(node: node, to: parentNode)
copyFeedInAccount(node: node, to: parentNode)
} else {
moveWebFeedInAccount(node: node, to: parentNode)
moveFeedInAccount(node: node, to: parentNode)
}
} else {
copyWebFeedBetweenAccounts(node: node, to: parentNode)
copyFeedBetweenAccounts(node: node, to: parentNode)
}
}
@@ -431,9 +431,9 @@ private extension SidebarOutlineDataSource {
destinationAccount.addFolder(folder.name ?? "") { result in
switch result {
case .success(let destinationFolder):
for feed in folder.topLevelWebFeeds {
if let existingFeed = destinationAccount.existingWebFeed(withURL: feed.url) {
destinationAccount.addWebFeed(existingFeed, to: destinationFolder) { result in
for feed in folder.topLevelFeeds {
if let existingFeed = destinationAccount.existingFeed(withURL: feed.url) {
destinationAccount.addFeed(existingFeed, to: destinationFolder) { result in
switch result {
case .success:
break
@@ -442,7 +442,7 @@ private extension SidebarOutlineDataSource {
}
}
} else {
destinationAccount.createWebFeed(url: feed.url, name: feed.nameForDisplay, container: destinationFolder, validateFeed: false) { result in
destinationAccount.createFeed(url: feed.url, name: feed.nameForDisplay, container: destinationFolder, validateFeed: false) { result in
switch result {
case .success:
break
@@ -520,8 +520,8 @@ private extension SidebarOutlineDataSource {
return account
} else if let folder = node.representedObject as? Folder {
return folder.account
} else if let webFeed = node.representedObject as? Feed {
return webFeed.account
} else if let feed = node.representedObject as? Feed {
return feed.account
} else {
return nil
}
@@ -602,7 +602,7 @@ private extension SidebarOutlineDataSource {
return true
}
} else {
if dropTargetAccount.hasWebFeed(withURL: draggedFeed.url) {
if dropTargetAccount.hasFeed(withURL: draggedFeed.url) {
return true
}
}

View File

@@ -29,7 +29,7 @@ protocol SidebarDelegate: AnyObject {
weak var delegate: SidebarDelegate?
private let rebuildTreeAndRestoreSelectionQueue = CoalescingQueue(name: "Rebuild Tree Queue", interval: 1.0)
let treeControllerDelegate = WebFeedTreeControllerDelegate()
let treeControllerDelegate = FeedTreeControllerDelegate()
lazy var treeController: TreeController = {
return TreeController(delegate: treeControllerDelegate)
}()
@@ -64,7 +64,7 @@ protocol SidebarDelegate: AnyObject {
outlineView.dataSource = dataSource
outlineView.doubleAction = #selector(doubleClickedSidebar(_:))
outlineView.setDraggingSourceOperationMask([.move, .copy], forLocal: true)
outlineView.registerForDraggedTypes([WebFeedPasteboardWriter.webFeedUTIInternalType, WebFeedPasteboardWriter.webFeedUTIType, .URL, .string])
outlineView.registerForDraggedTypes([FeedPasteboardWriter.feedUTIInternalType, FeedPasteboardWriter.feedUTIType, .URL, .string])
NotificationCenter.default.addObserver(self, selector: #selector(unreadCountDidInitialize(_:)), name: .UnreadCountDidInitialize, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(unreadCountDidChange(_:)), name: .UnreadCountDidChange, object: nil)
@@ -75,8 +75,8 @@ protocol SidebarDelegate: AnyObject {
NotificationCenter.default.addObserver(self, selector: #selector(userDidAddFeed(_:)), name: .UserDidAddFeed, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(batchUpdateDidPerform(_:)), name: .BatchUpdateDidPerform, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(faviconDidBecomeAvailable(_:)), name: .FaviconDidBecomeAvailable, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(webFeedIconDidBecomeAvailable(_:)), name: .FeedIconDidBecomeAvailable, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(webFeedSettingDidChange(_:)), name: .FeedSettingDidChange, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(feedIconDidBecomeAvailable(_:)), name: .FeedIconDidBecomeAvailable, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(feedSettingDidChange(_:)), name: .FeedSettingDidChange, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(displayNameDidChange(_:)), name: .DisplayNameDidChange, object: nil)
DistributedNotificationCenter.default().addObserver(self, selector: #selector(appleSideBarDefaultIconSizeChanged(_:)), name: .appleSideBarDefaultIconSizeChanged, object: nil)
@@ -183,7 +183,7 @@ protocol SidebarDelegate: AnyObject {
}
@objc func userDidAddFeed(_ notification: Notification) {
guard let feed = notification.userInfo?[UserInfoKey.webFeed] else {
guard let feed = notification.userInfo?[UserInfoKey.feed] else {
return
}
revealAndSelectRepresentedObject(feed as AnyObject)
@@ -193,17 +193,17 @@ protocol SidebarDelegate: AnyObject {
applyToAvailableCells(configureFavicon)
}
@objc func webFeedIconDidBecomeAvailable(_ note: Notification) {
guard let webFeed = note.userInfo?[UserInfoKey.webFeed] as? Feed else { return }
configureCellsForRepresentedObject(webFeed)
@objc func feedIconDidBecomeAvailable(_ note: Notification) {
guard let feed = note.userInfo?[UserInfoKey.feed] as? Feed else { return }
configureCellsForRepresentedObject(feed)
}
@objc func webFeedSettingDidChange(_ note: Notification) {
guard let webFeed = note.object as? Feed, let key = note.userInfo?[Feed.FeedSettingUserInfoKey] as? String else {
@objc func feedSettingDidChange(_ note: Notification) {
guard let feed = note.object as? Feed, let key = note.userInfo?[Feed.FeedSettingUserInfoKey] as? String else {
return
}
if key == Feed.FeedSettingKey.homePageURL || key == Feed.FeedSettingKey.faviconURL {
configureCellsForRepresentedObject(webFeed)
configureCellsForRepresentedObject(feed)
}
}
@@ -255,7 +255,7 @@ protocol SidebarDelegate: AnyObject {
guard outlineView.clickedRow == outlineView.selectedRow else {
return
}
if AppDefaults.shared.feedDoubleClickMarkAsRead, let articles = try? singleSelectedWebFeed?.fetchUnreadArticles() {
if AppDefaults.shared.feedDoubleClickMarkAsRead, let articles = try? singleSelectedFeed?.fetchUnreadArticles() {
if let undoManager = undoManager, let markReadCommand = MarkStatusCommand(initialArticles: Array(articles), markingRead: true, undoManager: undoManager) {
runCommand(markReadCommand)
}
@@ -264,7 +264,7 @@ protocol SidebarDelegate: AnyObject {
}
@IBAction func openInBrowser(_ sender: Any?) {
guard let feed = singleSelectedWebFeed, let homePageURL = feed.homePageURL else {
guard let feed = singleSelectedFeed, let homePageURL = feed.homePageURL else {
return
}
Browser.open(homePageURL, invertPreference: NSApp.currentEvent?.modifierFlags.contains(.shift) ?? false)
@@ -272,7 +272,7 @@ protocol SidebarDelegate: AnyObject {
@objc func openInAppBrowser(_ sender: Any?) {
// There is no In-App Browser for mac - so we use safari
guard let feed = singleSelectedWebFeed, let homePageURL = feed.homePageURL else {
guard let feed = singleSelectedFeed, let homePageURL = feed.homePageURL else {
return
}
Browser.open(homePageURL, invertPreference: NSApp.currentEvent?.modifierFlags.contains(.shift) ?? false)
@@ -521,7 +521,7 @@ private extension SidebarViewController {
return selectedNodes.first!
}
var singleSelectedWebFeed: Feed? {
var singleSelectedFeed: Feed? {
guard let node = singleSelectedNode else {
return nil
}
@@ -541,7 +541,7 @@ private extension SidebarViewController {
treeControllerDelegate.addFilterException(feedID)
}
} else if let webFeed = feed as? Feed {
if webFeed.account?.existingWebFeed(withWebFeedID: webFeed.webFeedID) != nil {
if webFeed.account?.existingWebFeed(withWebFeedID: webFeed.feedID) != nil {
treeControllerDelegate.addFilterException(feedID)
addParentFolderToFilterExceptions(webFeed)
}
@@ -741,7 +741,7 @@ private extension SidebarViewController {
guard let webFeedID = userInfo?[ArticlePathKey.webFeedID] as? String else {
return nil
}
if let node = startingNode.descendantNode(where: { ($0.representedObject as? Feed)?.webFeedID == webFeedID }) {
if let node = startingNode.descendantNode(where: { ($0.representedObject as? Feed)?.feedID == webFeedID }) {
return node
}
return nil

View File

@@ -594,7 +594,7 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr
}
@objc func webFeedIconDidBecomeAvailable(_ note: Notification) {
guard showIcons, let feed = note.userInfo?[UserInfoKey.webFeed] as? Feed else {
guard showIcons, let feed = note.userInfo?[UserInfoKey.feed] as? Feed else {
return
}
let indexesToReload = tableView.indexesOfAvailableRowsPassingTest { (row) -> Bool in
@@ -1235,14 +1235,14 @@ private extension TimelineViewController {
for representedObject in representedObjects {
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.hasWebFeed(with: oneFeed.webFeedID) || folder.hasWebFeed(withURL: oneFeed.url) {
if folder.hasWebFeed(with: oneFeed.feedID) || folder.hasFeed(withURL: oneFeed.url) {
return true
}
}