feat: show hidden articles by holding down option key

This commit is contained in:
relikd
2025-12-02 18:48:46 +01:00
parent 7a805ccdc4
commit ab71c51380
5 changed files with 7 additions and 5 deletions

View File

@@ -4,6 +4,7 @@
NS_ASSUME_NONNULL_BEGIN
@interface BarMenu : NSObject <NSMenuDelegate>
@property (assign) BOOL showHidden;
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)initWithStatusItem:(BarStatusItem*)statusItem NS_DESIGNATED_INITIALIZER;
@end

View File

@@ -64,7 +64,7 @@
- (void)setFeedGroups:(NSArray<FeedGroup*>*)sortedList forMenu:(NSMenu*)menu {
[menu insertDefaultHeader];
for (FeedGroup *fg in sortedList) {
[menu insertFeedGroupItem:fg withUnread:self.unreadMap].submenu.delegate = self;
[menu insertFeedGroupItem:fg withUnread:self.unreadMap showHidden:_showHidden].submenu.delegate = self;
}
[menu setHeaderHasUnread:self.unreadMap[menu.titleIndexPath]];
}
@@ -78,7 +78,7 @@
BOOL onlyUnread = UserPrefsBool(Pref_feedUnreadOnly);
for (FeedArticle *fa in sortedList) {
if (onlyUnread && !fa.unread)
if (onlyUnread && !fa.unread && !_showHidden)
continue;
if (--mc < 0) // mc == 0 will first decrement to -1, then evaluate
break;

View File

@@ -152,6 +152,7 @@
-(void)menuWillOpen:(NSMenu *)menu {
_mainMenu = menu; // autoreleased once closed
self.barMenu = [[BarMenu alloc] initWithStatusItem:self];
self.barMenu.showHidden = NSEvent.modifierFlags & NSEventModifierFlagOption;
[self insertMainMenuHeader:menu];
[self.barMenu menuNeedsUpdate:menu];

View File

@@ -9,7 +9,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (readonly) BOOL isFeedMenu;
// Generator
- (nullable NSMenuItem*)insertFeedGroupItem:(FeedGroup*)fg withUnread:(MapUnreadTotal*)unreadMap;
- (nullable NSMenuItem*)insertFeedGroupItem:(FeedGroup*)fg withUnread:(MapUnreadTotal*)unreadMap showHidden:(BOOL)showHidden;
- (void)insertDefaultHeader;
// Update menu
- (void)setHeaderHasUnread:(UnreadTotal*)count;

View File

@@ -44,7 +44,7 @@ typedef NS_ENUM(NSInteger, MenuItemTag) {
#pragma mark - Generator -
/// Create new @c NSMenuItem with empty submenu and append it to the menu. @return Inserted item.
- (nullable NSMenuItem*)insertFeedGroupItem:(FeedGroup*)fg withUnread:(MapUnreadTotal*)unreadMap {
- (nullable NSMenuItem*)insertFeedGroupItem:(FeedGroup*)fg withUnread:(MapUnreadTotal*)unreadMap showHidden:(BOOL)showHidden {
unichar chr = '-';
NSMenuItem *item = nil;
switch (fg.type) {
@@ -57,7 +57,7 @@ typedef NS_ENUM(NSInteger, MenuItemTag) {
NSUInteger unread = unreadMap[[t substringFromIndex:2]].unread;
// Check user preferences to show only unread entries
if (unread == 0
if (unread == 0 && !showHidden
&& (fg.type == FEED || fg.type == GROUP)
&& UserPrefsBool(Pref_groupUnreadOnly)) {
item.hidden = YES;