From 131bfaa14d39d9b12054b6f18867354496a689a3 Mon Sep 17 00:00:00 2001 From: relikd Date: Mon, 21 Jul 2025 13:14:01 +0200 Subject: [PATCH] ref: use UnreadTotal instead of two bool --- baRSS/Status Bar Menu/BarMenu.m | 8 +++----- baRSS/Status Bar Menu/NSMenu+Ext.h | 4 ++-- baRSS/Status Bar Menu/NSMenu+Ext.m | 4 +++- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/baRSS/Status Bar Menu/BarMenu.m b/baRSS/Status Bar Menu/BarMenu.m index 6d4cb7f..52b1fee 100644 --- a/baRSS/Status Bar Menu/BarMenu.m +++ b/baRSS/Status Bar Menu/BarMenu.m @@ -66,8 +66,7 @@ for (FeedGroup *fg in sortedList) { [menu insertFeedGroupItem:fg withUnread:self.unreadMap].submenu.delegate = self; } - UnreadTotal *uct = self.unreadMap[menu.titleIndexPath]; - [menu setHeaderHasUnread:(uct.unread > 0) hasRead:(uct.unread < uct.total)]; + [menu setHeaderHasUnread:self.unreadMap[menu.titleIndexPath]]; } /// Generate items for @c FeedArticles menu. @@ -85,8 +84,7 @@ break; [menu addItem:[fa newMenuItem]]; } - UnreadTotal *uct = self.unreadMap[menu.titleIndexPath]; - [menu setHeaderHasUnread:(uct.unread > 0) hasRead:(uct.unread < uct.total)]; + [menu setHeaderHasUnread:self.unreadMap[menu.titleIndexPath]]; } @@ -131,7 +129,7 @@ // 3. set unread count & enabled header for all parents NSArray *itms = [self.unreadMap itemsForPath:item.submenu.titleIndexPath create:NO]; for (UnreadTotal *uct in itms.reverseObjectEnumerator) { - [item.submenu setHeaderHasUnread:(uct.unread > 0) hasRead:(uct.unread < uct.total)]; + [item.submenu setHeaderHasUnread:uct]; [item setTitleCount:uct.unread]; item = item.parentItem; } diff --git a/baRSS/Status Bar Menu/NSMenu+Ext.h b/baRSS/Status Bar Menu/NSMenu+Ext.h index 9b446f0..6ef3e56 100644 --- a/baRSS/Status Bar Menu/NSMenu+Ext.h +++ b/baRSS/Status Bar Menu/NSMenu+Ext.h @@ -1,5 +1,5 @@ @import Cocoa; -@class FeedGroup, MapUnreadTotal; +@class FeedGroup, MapUnreadTotal, UnreadTotal; NS_ASSUME_NONNULL_BEGIN @@ -12,7 +12,7 @@ NS_ASSUME_NONNULL_BEGIN - (nullable NSMenuItem*)insertFeedGroupItem:(FeedGroup*)fg withUnread:(MapUnreadTotal*)unreadMap; - (void)insertDefaultHeader; // Update menu -- (void)setHeaderHasUnread:(BOOL)hasUnread hasRead:(BOOL)hasRead; +- (void)setHeaderHasUnread:(UnreadTotal*)count; - (nullable NSMenuItem*)deepestItemWithPath:(nonnull NSString*)path; @end diff --git a/baRSS/Status Bar Menu/NSMenu+Ext.m b/baRSS/Status Bar Menu/NSMenu+Ext.m index 2f84960..1209988 100644 --- a/baRSS/Status Bar Menu/NSMenu+Ext.m +++ b/baRSS/Status Bar Menu/NSMenu+Ext.m @@ -92,7 +92,9 @@ typedef NS_ENUM(NSInteger, MenuItemTag) { /// Loop over default header and enable 'OpenAllUnread' and 'TagMarkAllRead' based on unread count. -- (void)setHeaderHasUnread:(BOOL)hasUnread hasRead:(BOOL)hasRead { +- (void)setHeaderHasUnread:(UnreadTotal*)count { + BOOL hasUnread = count.unread > 0; + BOOL hasRead = count.unread < count.total; NSInteger i = [self indexOfItemWithTag:TagHeaderDelimiter] - 1; for (; i >= 0; i--) { NSMenuItem *item = [self itemAtIndex:i];