Unread indicator for groups

This commit is contained in:
relikd
2019-10-03 18:02:38 +02:00
parent ae18e93b6a
commit 850351a966
6 changed files with 27 additions and 20 deletions

View File

@@ -25,6 +25,7 @@ and this project does adhere to [Semantic Versioning](https://semver.org/spec/v2
- *UI:* Accessibility hints for most UI elements
- *UI*: Show welcome message upon first usage (empty db)
- *UI*: Custom colors via user defaults plist (bar icon tint & unread indicator)
- *UI:* Unread indicator for groups
- Welcome message also adds Github releases feed
- Config URL scheme `barss:` with `open/preferences`, `config/fixcache`, and `backup/show`

View File

@@ -46,6 +46,7 @@
/** default: @c YES */ static NSString* const Pref_groupMarkRead = @"groupMarkRead";
/** default: @c YES */ static NSString* const Pref_groupMarkUnread = @"groupMarkUnread";
/** default: @c YES */ static NSString* const Pref_groupUnreadCount = @"groupUnreadCount";
/** default: @c NO */ static NSString* const Pref_groupUnreadIndicator = @"groupUnreadIndicator";
/** default: @c YES */ static NSString* const Pref_feedOpenUnread = @"feedOpenUnread";
/** default: @c YES */ static NSString* const Pref_feedMarkRead = @"feedMarkRead";
/** default: @c YES */ static NSString* const Pref_feedMarkUnread = @"feedMarkUnread";

View File

@@ -39,7 +39,8 @@ void UserPrefsInit(void) {
Pref_globalMarkUnread, Pref_groupMarkUnread, Pref_feedMarkUnread,
Pref_globalUnreadCount, Pref_groupUnreadCount, Pref_feedUnreadCount,
Pref_feedUnreadIndicator]);
defaultsAppend(defs, @NO, @[Pref_feedTruncateTitle,
defaultsAppend(defs, @NO, @[Pref_groupUnreadIndicator,
Pref_feedTruncateTitle,
Pref_feedLimitArticles]);
// Display limits & truncation ( defaults write de.relikd.baRSS {KEY} -int 10 )
[defs setObject:[NSNumber numberWithUnsignedInteger:10] forKey:Pref_openFewLinksLimit];

View File

@@ -70,7 +70,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>14336</string>
<string>14344</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.news</string>
<key>LSMinimumSystemVersion</key>

View File

@@ -51,7 +51,7 @@
[self entry:NSLocalizedString(@"Mark all read", nil) c1:Pref_globalMarkRead c2:Pref_groupMarkRead c3:Pref_feedMarkRead];
[self entry:NSLocalizedString(@"Mark all unread", nil) c1:Pref_globalMarkUnread c2:Pref_groupMarkUnread c3:Pref_feedMarkUnread];
[self entry:NSLocalizedString(@"Number of unread articles", nil) c1:Pref_globalUnreadCount c2:Pref_groupUnreadCount c3:Pref_feedUnreadCount];
[self entry:NSLocalizedString(@"Indicator for unread articles", nil) c1:nil c2:nil c3:Pref_feedUnreadIndicator];
[self entry:NSLocalizedString(@"Indicator for unread articles", nil) c1:nil c2:Pref_groupUnreadIndicator c3:Pref_feedUnreadIndicator];
[[self entry:NSLocalizedString(@"Truncate article title", nil) c1:nil c2:nil c3:Pref_feedTruncateTitle]
tooltip:NSLocalizedString(@"Truncate article title after 60 characters", nil)];
[[self entry:NSLocalizedString(@"Limit number of articles", nil) c1:nil c2:nil c3:Pref_feedLimitArticles]

View File

@@ -246,6 +246,7 @@ typedef NS_ENUM(NSInteger, MenuItemTag) {
- (void)setTitleCount:(NSUInteger)count {
if (self.tag == TagTitleCountVisible) {
self.tag = 0; // clear mask
self.state = NSControlStateValueOff;
NSUInteger loc = [self.title rangeOfString:@" (" options:NSLiteralSearch | NSBackwardsSearch].location;
if (loc != NSNotFound)
self.title = [self.title substringToIndex:loc];
@@ -253,6 +254,9 @@ typedef NS_ENUM(NSInteger, MenuItemTag) {
if (count > 0 && UserPrefsBool(self.submenu.isFeedMenu ? Pref_feedUnreadCount : Pref_groupUnreadCount)) {
self.tag = TagTitleCountVisible; // apply new mask
self.title = [self.title stringByAppendingFormat:@" (%ld)", count];
self.onStateImage = [NSImage imageNamed:RSSImageMenuItemUnread];
if (UserPrefsBool(Pref_groupUnreadIndicator))
self.state = NSControlStateValueOn;
}
}