feat: show hidden articles by holding down option key
This commit is contained in:
@@ -4,6 +4,7 @@
|
|||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
@interface BarMenu : NSObject <NSMenuDelegate>
|
@interface BarMenu : NSObject <NSMenuDelegate>
|
||||||
|
@property (assign) BOOL showHidden;
|
||||||
- (instancetype)init NS_UNAVAILABLE;
|
- (instancetype)init NS_UNAVAILABLE;
|
||||||
- (instancetype)initWithStatusItem:(BarStatusItem*)statusItem NS_DESIGNATED_INITIALIZER;
|
- (instancetype)initWithStatusItem:(BarStatusItem*)statusItem NS_DESIGNATED_INITIALIZER;
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
- (void)setFeedGroups:(NSArray<FeedGroup*>*)sortedList forMenu:(NSMenu*)menu {
|
- (void)setFeedGroups:(NSArray<FeedGroup*>*)sortedList forMenu:(NSMenu*)menu {
|
||||||
[menu insertDefaultHeader];
|
[menu insertDefaultHeader];
|
||||||
for (FeedGroup *fg in sortedList) {
|
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]];
|
[menu setHeaderHasUnread:self.unreadMap[menu.titleIndexPath]];
|
||||||
}
|
}
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
BOOL onlyUnread = UserPrefsBool(Pref_feedUnreadOnly);
|
BOOL onlyUnread = UserPrefsBool(Pref_feedUnreadOnly);
|
||||||
|
|
||||||
for (FeedArticle *fa in sortedList) {
|
for (FeedArticle *fa in sortedList) {
|
||||||
if (onlyUnread && !fa.unread)
|
if (onlyUnread && !fa.unread && !_showHidden)
|
||||||
continue;
|
continue;
|
||||||
if (--mc < 0) // mc == 0 will first decrement to -1, then evaluate
|
if (--mc < 0) // mc == 0 will first decrement to -1, then evaluate
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -152,6 +152,7 @@
|
|||||||
-(void)menuWillOpen:(NSMenu *)menu {
|
-(void)menuWillOpen:(NSMenu *)menu {
|
||||||
_mainMenu = menu; // autoreleased once closed
|
_mainMenu = menu; // autoreleased once closed
|
||||||
self.barMenu = [[BarMenu alloc] initWithStatusItem:self];
|
self.barMenu = [[BarMenu alloc] initWithStatusItem:self];
|
||||||
|
self.barMenu.showHidden = NSEvent.modifierFlags & NSEventModifierFlagOption;
|
||||||
|
|
||||||
[self insertMainMenuHeader:menu];
|
[self insertMainMenuHeader:menu];
|
||||||
[self.barMenu menuNeedsUpdate:menu];
|
[self.barMenu menuNeedsUpdate:menu];
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
@property (readonly) BOOL isFeedMenu;
|
@property (readonly) BOOL isFeedMenu;
|
||||||
|
|
||||||
// Generator
|
// Generator
|
||||||
- (nullable NSMenuItem*)insertFeedGroupItem:(FeedGroup*)fg withUnread:(MapUnreadTotal*)unreadMap;
|
- (nullable NSMenuItem*)insertFeedGroupItem:(FeedGroup*)fg withUnread:(MapUnreadTotal*)unreadMap showHidden:(BOOL)showHidden;
|
||||||
- (void)insertDefaultHeader;
|
- (void)insertDefaultHeader;
|
||||||
// Update menu
|
// Update menu
|
||||||
- (void)setHeaderHasUnread:(UnreadTotal*)count;
|
- (void)setHeaderHasUnread:(UnreadTotal*)count;
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ typedef NS_ENUM(NSInteger, MenuItemTag) {
|
|||||||
#pragma mark - Generator -
|
#pragma mark - Generator -
|
||||||
|
|
||||||
/// Create new @c NSMenuItem with empty submenu and append it to the menu. @return Inserted item.
|
/// 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 = '-';
|
unichar chr = '-';
|
||||||
NSMenuItem *item = nil;
|
NSMenuItem *item = nil;
|
||||||
switch (fg.type) {
|
switch (fg.type) {
|
||||||
@@ -57,7 +57,7 @@ typedef NS_ENUM(NSInteger, MenuItemTag) {
|
|||||||
NSUInteger unread = unreadMap[[t substringFromIndex:2]].unread;
|
NSUInteger unread = unreadMap[[t substringFromIndex:2]].unread;
|
||||||
|
|
||||||
// Check user preferences to show only unread entries
|
// Check user preferences to show only unread entries
|
||||||
if (unread == 0
|
if (unread == 0 && !showHidden
|
||||||
&& (fg.type == FEED || fg.type == GROUP)
|
&& (fg.type == FEED || fg.type == GROUP)
|
||||||
&& UserPrefsBool(Pref_groupUnreadOnly)) {
|
&& UserPrefsBool(Pref_groupUnreadOnly)) {
|
||||||
item.hidden = YES;
|
item.hidden = YES;
|
||||||
|
|||||||
Reference in New Issue
Block a user