Limit number of article items. Issue #2

This commit is contained in:
relikd
2019-03-06 03:34:56 +01:00
parent 1071c55eef
commit fc640250d8
5 changed files with 18 additions and 3 deletions

View File

@@ -56,6 +56,11 @@ With this Terminal command you can customize this number:
3) If you hold down the option key and click on an article item, you can mark a single item (un-)read. 3) If you hold down the option key and click on an article item, you can mark a single item (un-)read.
4) Limit number of displayed articles in feed menu.
**Note:** unread count for feed and group may be different than the unread items inside (if unread articles are omitted).
```defaults write de.relikd.baRSS articlesInMenuLimit -int 40```
ToDo ToDo

View File

@@ -32,7 +32,7 @@
</dict> </dict>
</array> </array>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1047</string> <string>1078</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string> <string>$(MACOSX_DEPLOYMENT_TARGET)</string>
<key>LSUIElement</key> <key>LSUIElement</key>

View File

@@ -32,4 +32,5 @@
+ (NSUInteger)openFewLinksLimit; // Change with: 'defaults write de.relikd.baRSS openFewLinksLimit -int 10' + (NSUInteger)openFewLinksLimit; // Change with: 'defaults write de.relikd.baRSS openFewLinksLimit -int 10'
+ (NSUInteger)shortArticleNamesLimit; // Change with: 'defaults write de.relikd.baRSS shortArticleNamesLimit -int 50' + (NSUInteger)shortArticleNamesLimit; // Change with: 'defaults write de.relikd.baRSS shortArticleNamesLimit -int 50'
+ (NSUInteger)articlesInMenuLimit; // Change with: 'defaults write de.relikd.baRSS articlesInMenuLimit -int 40'
@end @end

View File

@@ -67,14 +67,19 @@
#pragma mark - Hidden Plist Properties - #pragma mark - Hidden Plist Properties -
/// @return The limit on how many links should be opened at the same time, if user holds the option key. /// @return The limit on how many links should be opened at the same time, if user holds the option key. Default: @c 10
+ (NSUInteger)openFewLinksLimit { + (NSUInteger)openFewLinksLimit {
return (NSUInteger)[self defaultInt:10 forKey:@"openFewLinksLimit"]; return (NSUInteger)[self defaultInt:10 forKey:@"openFewLinksLimit"];
} }
/// @return The limit on when to truncate article titles (Short names setting must be active). /// @return The limit on when to truncate article titles (Short names setting must be active). Default: @c 60
+ (NSUInteger)shortArticleNamesLimit { + (NSUInteger)shortArticleNamesLimit {
return (NSUInteger)[self defaultInt:60 forKey:@"shortArticleNamesLimit"]; return (NSUInteger)[self defaultInt:60 forKey:@"shortArticleNamesLimit"];
} }
/// @return The maximum number of articles displayed per feed. Default: @c 0 (no limitation)
+ (NSUInteger)articlesInMenuLimit {
return (NSUInteger)[self defaultInt:0 forKey:@"articlesInMenuLimit"];
}
@end @end

View File

@@ -22,6 +22,7 @@
#import "BarMenu.h" #import "BarMenu.h"
#import "Constants.h" #import "Constants.h"
#import "UserPrefs.h"
#import "NSMenu+Ext.h" #import "NSMenu+Ext.h"
#import "BarStatusItem.h" #import "BarStatusItem.h"
#import "MapUnreadTotal.h" #import "MapUnreadTotal.h"
@@ -105,8 +106,11 @@
/// Generate items for @c FeedArticles menu. /// Generate items for @c FeedArticles menu.
- (void)setArticles:(NSArray<FeedArticle*>*)sortedList forMenu:(NSMenu*)menu { - (void)setArticles:(NSArray<FeedArticle*>*)sortedList forMenu:(NSMenu*)menu {
[menu insertDefaultHeader]; [menu insertDefaultHeader];
NSUInteger mc = [UserPrefs articlesInMenuLimit];
for (FeedArticle *fa in sortedList) { for (FeedArticle *fa in sortedList) {
[menu addItem:[fa newMenuItem]]; [menu addItem:[fa newMenuItem]];
if (--mc == 0) // if mc==0 then unsigned int will underflow and turn into INT_MAX
break;
} }
UnreadTotal *uct = self.unreadMap[menu.titleIndexPath]; UnreadTotal *uct = self.unreadMap[menu.titleIndexPath];
[menu setHeaderHasUnread:(uct.unread > 0) hasRead:(uct.unread < uct.total)]; [menu setHeaderHasUnread:(uct.unread > 0) hasRead:(uct.unread < uct.total)];