Make Mark All as Read command in sidebar gear menu work.

This commit is contained in:
Brent Simmons 2018-02-04 11:45:51 -08:00
parent 2999641572
commit c26c705de0

View File

@ -55,7 +55,19 @@ extension SidebarViewController {
@objc func markObjectsReadFromContextualMenu(_ sender: Any?) {
guard let menuItem = sender as? NSMenuItem, let objects = menuItem.representedObject as? [Any] else {
return
}
let articles = unreadArticles(for: objects)
if articles.isEmpty {
return
}
guard let undoManager = undoManager, let markReadCommand = MarkReadOrUnreadCommand(initialArticles: Array(articles), markingRead: true, undoManager: undoManager) else {
return
}
runCommand(markReadCommand)
}
@objc func deleteFromContextualMenu(_ sender: Any?) {
@ -215,5 +227,16 @@ private extension SidebarViewController {
item.target = self
return item
}
func unreadArticles(for objects: [Any]) -> Set<Article> {
var articles = Set<Article>()
for object in objects {
if let articleFetcher = object as? ArticleFetcher {
articles.formUnion(articleFetcher.fetchUnreadArticles())
}
}
return articles
}
}