mirror of
https://github.com/Ranchero-Software/NetNewsWire.git
synced 2025-02-08 08:08:43 +01:00
Make Mark All as Read command in sidebar gear menu work.
This commit is contained in:
parent
2999641572
commit
c26c705de0
@ -55,7 +55,19 @@ extension SidebarViewController {
|
|||||||
|
|
||||||
@objc func markObjectsReadFromContextualMenu(_ sender: Any?) {
|
@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?) {
|
@objc func deleteFromContextualMenu(_ sender: Any?) {
|
||||||
@ -215,5 +227,16 @@ private extension SidebarViewController {
|
|||||||
item.target = self
|
item.target = self
|
||||||
return item
|
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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user