From 3a4abb6d6ebb812526bc76659a62f72ee2910da8 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Thu, 13 Sep 2018 07:15:26 -0500 Subject: [PATCH] Rolledback changes to the Feed List (directory) window. --- NetNewsWire/FeedList/FeedList.storyboard | 82 ++++++----------- .../FeedList/FeedListViewController.swift | 88 +++---------------- 2 files changed, 39 insertions(+), 131 deletions(-) diff --git a/NetNewsWire/FeedList/FeedList.storyboard b/NetNewsWire/FeedList/FeedList.storyboard index 8b7413366..480c7b595 100644 --- a/NetNewsWire/FeedList/FeedList.storyboard +++ b/NetNewsWire/FeedList/FeedList.storyboard @@ -1,16 +1,15 @@ - + - - + - - + + @@ -33,25 +32,25 @@ - + - + - + - - + + - + @@ -82,7 +81,7 @@ - + @@ -121,24 +120,21 @@ - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - + - + - diff --git a/NetNewsWire/FeedList/FeedListViewController.swift b/NetNewsWire/FeedList/FeedListViewController.swift index c4259c318..6d7ca1790 100644 --- a/NetNewsWire/FeedList/FeedListViewController.swift +++ b/NetNewsWire/FeedList/FeedListViewController.swift @@ -7,7 +7,6 @@ // import AppKit -import Account import RSTree import RSCore @@ -23,12 +22,10 @@ struct FeedListUserInfoKey { final class FeedListViewController: NSViewController { - @IBOutlet weak var outlineView: NSOutlineView! - @IBOutlet weak var openHomePageButton: NSButton! - @IBOutlet weak var addToFeedsButton: NSButton! - @IBOutlet weak var folderPopupButton: NSPopUpButton! - - fileprivate var folderTreeController: TreeController? + @IBOutlet var outlineView: NSOutlineView! + @IBOutlet var openHomePageButton: NSButton! + @IBOutlet var addToFeedsButton: NSButton! + private var sidebarCellAppearance: SidebarCellAppearance! private let treeControllerDelegate = FeedListTreeControllerDelegate() lazy var treeController: TreeController = { @@ -54,24 +51,16 @@ final class FeedListViewController: NSViewController { sidebarCellAppearance = SidebarCellAppearance(theme: appDelegate.currentTheme, fontSize: AppDefaults.shared.sidebarFontSize) NotificationCenter.default.addObserver(self, selector: #selector(faviconDidBecomeAvailable(_:)), name: .FaviconDidBecomeAvailable, object: nil) - NotificationCenter.default.addObserver(self, selector: #selector(childrenDidChange(_:)), name: .ChildrenDidChange, object: nil) - outlineView.needsLayout = true - - updateFolderMenu() - updateButtons() - + updateUI() } // MARK: - Notifications + @objc func faviconDidBecomeAvailable(_ note: Notification) { + configureAvailableCells() } - - @objc func childrenDidChange(_ note: Notification) { - updateFolderMenu() - } - } // MARK: Actions @@ -88,51 +77,6 @@ extension FeedListViewController { @IBAction func addToFeeds(_ sender: Any?) { - guard let container = folderPopupButton.selectedItem?.representedObject as? Container else { - assertionFailure("Expected the folderPopupButton to have a container.") - return - } - - var account: Account? - var folder: Folder? - if container is Folder { - folder = (container as! Folder) - account = folder!.account - } else { - account = (container as! Account) - } - - for selectedObject in selectedObjects { - - guard let feedListFeed = selectedObject as? FeedListFeed else { - continue - } - - if account!.hasFeed(withURL: feedListFeed.url) { - continue - } - - guard let feed = account!.createFeed(with: feedListFeed.nameForDisplay, editedName: nil, url: feedListFeed.url) else { - continue - } - - guard let url = URL(string: feedListFeed.url) else { - assertionFailure("Malformed URL string: \(feedListFeed.url).") - continue - } - - if account!.addFeed(feed, to: folder) { - NotificationCenter.default.post(name: .UserDidAddFeed, object: self, userInfo: [UserInfoKey.feed: feed]) - } - - InitialFeedDownloader.download(url) { (parsedFeed) in - if let parsedFeed = parsedFeed { - account!.update(feed, with: parsedFeed, {}) - } - } - - } - } } @@ -180,8 +124,8 @@ extension FeedListViewController: NSOutlineViewDelegate { func outlineViewSelectionDidChange(_ notification: Notification) { - updateButtons() - + updateUI() + let selectedRow = self.outlineView.selectedRow if selectedRow < 0 || selectedRow == NSNotFound { @@ -267,15 +211,11 @@ private extension FeedListViewController { NotificationCenter.default.post(name: .FeedListSidebarSelectionDidChange, object: self, userInfo: userInfo) } - func updateFolderMenu() { - - let rootNode = Node(representedObject: AccountManager.shared.localAccount, parent: nil) - rootNode.canHaveChildNodes = true - folderTreeController = TreeController(delegate: FolderTreeControllerDelegate(), rootNode: rootNode) - - folderPopupButton.menu = FolderTreeMenu.createFolderPopupMenu(with: folderTreeController!.rootNode) + func updateUI() { + + updateButtons() } - + func updateButtons() { let objects = selectedObjects @@ -283,12 +223,10 @@ private extension FeedListViewController { if objects.isEmpty { openHomePageButton.isEnabled = false addToFeedsButton.isEnabled = false - folderPopupButton.isEnabled = false return } addToFeedsButton.isEnabled = true - folderPopupButton.isEnabled = true if let _ = singleSelectedHomePageURL() { openHomePageButton.isEnabled = true