Change to use show/hide verbiage in menu items instead of check marks

This commit is contained in:
Maurice Parker 2019-11-24 04:29:15 -06:00
parent 00094858fa
commit e05fdc99dd
3 changed files with 31 additions and 10 deletions

View File

@ -238,16 +238,11 @@ class MainWindowController : NSWindowController, NSUserInterfaceValidations {
}
if item.action == #selector(toggleReadFeedsFilter(_:)) {
(item as! NSMenuItem).state = sidebarViewController?.isReadFiltered ?? false ? .on : .off
return validateToggleReadFeeds(item)
}
if item.action == #selector(toggleReadArticlesFilter(_:)) {
if let timelineContainer = timelineContainerViewController {
(item as! NSMenuItem).isEnabled = true
(item as! NSMenuItem).state = timelineContainer.isReadFiltered ? .on : .off
} else {
(item as! NSMenuItem).isEnabled = false
}
return validateToggleReadArticles(item)
}
if item.action == #selector(toggleSidebar(_:)) {
@ -832,6 +827,30 @@ private extension MainWindowController {
return result
}
func validateToggleReadFeeds(_ item: NSValidatedUserInterfaceItem) -> Bool {
guard let menuItem = item as? NSMenuItem else { return false }
let showCommand = NSLocalizedString("Show Read Feeds", comment: "Command")
let hideCommand = NSLocalizedString("Hide Read Feeds", comment: "Command")
menuItem.title = sidebarViewController?.isReadFiltered ?? false ? showCommand : hideCommand
return true
}
func validateToggleReadArticles(_ item: NSValidatedUserInterfaceItem) -> Bool {
guard let menuItem = item as? NSMenuItem else { return false }
let showCommand = NSLocalizedString("Show Read Articles", comment: "Command")
let hideCommand = NSLocalizedString("Hide Read Articles", comment: "Command")
if let isReadFiltered = timelineContainerViewController?.isReadFiltered {
menuItem.title = isReadFiltered ? showCommand : hideCommand
return true
} else {
menuItem.title = hideCommand
return false
}
}
// MARK: - Misc.

View File

@ -30,7 +30,8 @@ final class TimelineContainerViewController: NSViewController {
weak var delegate: TimelineContainerViewControllerDelegate?
var isReadFiltered: Bool {
var isReadFiltered: Bool? {
guard let currentTimelineViewController = currentTimelineViewController, mode(for: currentTimelineViewController) == .regular else { return nil }
return regularTimelineViewController.isReadFiltered
}

View File

@ -21,8 +21,9 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr
@IBOutlet var tableView: TimelineTableView!
private var articleReadFilterType: ReadFilterType?
var isReadFiltered: Bool {
return articleReadFilterType ?? .read != .none
var isReadFiltered: Bool? {
guard let articleReadFilterType = articleReadFilterType, articleReadFilterType != .alwaysRead else { return nil}
return articleReadFilterType != .none
}
var representedObjects: [AnyObject]? {