From 3ff00b7eb0325fd571115c7dfabd5e496f3687bc Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Sat, 27 Jan 2018 12:39:07 -0800 Subject: [PATCH] Make Go > Today, Unread, Starred commands work. Fix #310. --- Evergreen/AppDelegate.swift | 24 ++++++++++++++++--- Evergreen/Base.lproj/Main.storyboard | 18 +++++++++++--- .../MainWindow/MainWindowController.swift | 15 ++++++++++++ .../Sidebar/SidebarViewController.swift | 15 ++++++++++++ 4 files changed, 66 insertions(+), 6 deletions(-) diff --git a/Evergreen/AppDelegate.swift b/Evergreen/AppDelegate.swift index 94fb3cd6c..f811c113d 100644 --- a/Evergreen/AppDelegate.swift +++ b/Evergreen/AppDelegate.swift @@ -50,7 +50,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations, private let windowControllers = NSMutableArray() private var preferencesWindowController: NSWindowController? - private var mainWindowController: NSWindowController? + private var mainWindowController: MainWindowController? private var readerWindows = [NSWindowController]() private var feedListWindowController: NSWindowController? private var addFeedController: AddFeedController? @@ -442,13 +442,31 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations, AccountManager.shared.accounts.forEach{ $0.debugDropConditionalGetInfo() } #endif } + + @IBAction func gotoToday(_ sender: Any?) { + + createAndShowMainWindow() + mainWindowController!.gotoToday(sender) + } + + @IBAction func gotoAllUnread(_ sender: Any?) { + + createAndShowMainWindow() + mainWindowController!.gotoAllUnread(sender) + } + + @IBAction func gotoStarred(_ sender: Any?) { + + createAndShowMainWindow() + mainWindowController!.gotoStarred(sender) + } } private extension AppDelegate { - func createReaderWindow() -> NSWindowController { + func createReaderWindow() -> MainWindowController { - return windowControllerWithName("MainWindow") + return windowControllerWithName("MainWindow") as! MainWindowController } func objectsForInspector() -> [Any]? { diff --git a/Evergreen/Base.lproj/Main.storyboard b/Evergreen/Base.lproj/Main.storyboard index aaee9a232..59802f397 100644 --- a/Evergreen/Base.lproj/Main.storyboard +++ b/Evergreen/Base.lproj/Main.storyboard @@ -372,9 +372,21 @@ - - - + + + + + + + + + + + + + + + diff --git a/Evergreen/MainWindow/MainWindowController.swift b/Evergreen/MainWindow/MainWindowController.swift index 5fb8cc31c..5a7959c84 100644 --- a/Evergreen/MainWindow/MainWindowController.swift +++ b/Evergreen/MainWindow/MainWindowController.swift @@ -277,6 +277,21 @@ class MainWindowController : NSWindowController, NSUserInterfaceValidations { sidebarViewController?.outlineView.selectNextRow(sender) } + @IBAction func gotoToday(_ sender: Any?) { + + sidebarViewController?.gotoToday(sender) + } + + @IBAction func gotoAllUnread(_ sender: Any?) { + + sidebarViewController?.gotoAllUnread(sender) + } + + @IBAction func gotoStarred(_ sender: Any?) { + + sidebarViewController?.gotoStarred(sender) + } + @IBAction func toolbarShowShareMenu(_ sender: Any?) { guard let selectedArticles = selectedArticles, !selectedArticles.isEmpty else { diff --git a/Evergreen/MainWindow/Sidebar/SidebarViewController.swift b/Evergreen/MainWindow/Sidebar/SidebarViewController.swift index a2d735746..957b6d6d0 100644 --- a/Evergreen/MainWindow/Sidebar/SidebarViewController.swift +++ b/Evergreen/MainWindow/Sidebar/SidebarViewController.swift @@ -146,6 +146,21 @@ import RSCore Browser.open(homePageURL) } + @IBAction func gotoToday(_ sender: Any?) { + + outlineView.revealAndSelectRepresentedObject(SmartFeedsController.shared.todayFeed, treeController) + } + + @IBAction func gotoAllUnread(_ sender: Any?) { + + outlineView.revealAndSelectRepresentedObject(SmartFeedsController.shared.unreadFeed, treeController) + } + + @IBAction func gotoStarred(_ sender: Any?) { + + outlineView.revealAndSelectRepresentedObject(SmartFeedsController.shared.starredFeed, treeController) + } + // MARK: Navigation func canGoToNextUnread() -> Bool {