From f62050cc4a01db9df53d84e6d65d06c3bbbf0bc5 Mon Sep 17 00:00:00 2001 From: relikd Date: Wed, 13 Feb 2019 13:04:13 +0100 Subject: [PATCH] Mark individual menu items un/read with option click --- baRSS/Core Data/FeedArticle+Ext.m | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/baRSS/Core Data/FeedArticle+Ext.m b/baRSS/Core Data/FeedArticle+Ext.m index f2ea4ff..b880de2 100644 --- a/baRSS/Core Data/FeedArticle+Ext.m +++ b/baRSS/Core Data/FeedArticle+Ext.m @@ -76,16 +76,18 @@ /// Callback method for @c NSMenuItem. Will open url associated with @c FeedArticle and mark it read. + (void)didClickOnMenuItem:(NSMenuItem*)sender { + BOOL flipUnread = (([NSEvent modifierFlags] & NSEventModifierFlagOption) != 0); NSManagedObjectContext *moc = [StoreCoordinator createChildContext]; FeedArticle *fa = [moc objectWithID:sender.representedObject]; NSString *url = fa.link; - if (fa.unread) { - fa.unread = NO; + if (flipUnread || fa.unread) { + fa.unread = !fa.unread; + NSNumber *num = (fa.unread ? @+1 : @-1); [StoreCoordinator saveContext:moc andParent:YES]; - [[NSNotificationCenter defaultCenter] postNotificationName:kNotificationTotalUnreadCountChanged object:@-1]; + [[NSNotificationCenter defaultCenter] postNotificationName:kNotificationTotalUnreadCountChanged object:num]; } [moc reset]; - if (url && url.length > 0) + if (url && url.length > 0 && !flipUnread) // flipUnread == change unread state [UserPrefs openURLsWithPreferredBrowser:@[[NSURL URLWithString:url]]]; }