Auto increase bundle version, handling url scheme, image generation
This commit is contained in:
@@ -26,6 +26,8 @@
|
||||
@class RSParsedFeed;
|
||||
|
||||
@interface Feed (Ext)
|
||||
@property (nonnull, readonly) NSImage* iconImage16;
|
||||
|
||||
// Generator methods / Feed update
|
||||
+ (instancetype)newFeedAndMetaInContext:(NSManagedObjectContext*)context;
|
||||
+ (instancetype)appendToRootWithDefaultIntervalInContext:(NSManagedObjectContext*)moc;
|
||||
@@ -35,6 +37,5 @@
|
||||
// Article properties
|
||||
- (NSArray<FeedArticle*>*)sortedArticles;
|
||||
// Icon
|
||||
- (NSImage*)iconImage16;
|
||||
- (BOOL)setIconImage:(NSImage*)img;
|
||||
@end
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
item.title = self.group.nameOrError;
|
||||
item.toolTip = self.subtitle;
|
||||
item.enabled = (self.articles.count > 0);
|
||||
item.image = [self iconImage16];
|
||||
item.image = self.iconImage16;
|
||||
item.representedObject = self.indexPath;
|
||||
item.target = [self class];
|
||||
item.action = @selector(didClickOnMenuItem:);
|
||||
@@ -200,30 +200,17 @@
|
||||
/**
|
||||
@return Return @c 16x16px image. Either from core data storage or generated default RSS icon.
|
||||
*/
|
||||
- (NSImage*)iconImage16 {
|
||||
NSData *imgData = self.icon.icon;
|
||||
if (imgData)
|
||||
{
|
||||
NSImage *img = [[NSImage alloc] initWithData:imgData];
|
||||
[img setSize:NSMakeSize(16, 16)];
|
||||
return img;
|
||||
}
|
||||
else if (self.articles.count == 0)
|
||||
{
|
||||
static NSImage *warningIcon;
|
||||
if (!warningIcon) {
|
||||
warningIcon = [NSImage imageNamed:NSImageNameCaution];
|
||||
[warningIcon setSize:NSMakeSize(16, 16)];
|
||||
}
|
||||
return warningIcon;
|
||||
}
|
||||
else
|
||||
{
|
||||
static NSImage *defaultRSSIcon; // TODO: setup imageNamed: for default rss icon
|
||||
if (!defaultRSSIcon)
|
||||
defaultRSSIcon = [RSSIcon iconWithSize:16];
|
||||
return defaultRSSIcon;
|
||||
- (nonnull NSImage*)iconImage16 {
|
||||
NSImage *img = nil;
|
||||
if (self.articles.count == 0) {
|
||||
img = [NSImage imageNamed:NSImageNameCaution];
|
||||
} else if (self.icon.icon) {
|
||||
img = [[NSImage alloc] initWithData:self.icon.icon];
|
||||
} else {
|
||||
return [RSSIcon iconWithSize:16]; // TODO: setup imageNamed: for default rss icon?
|
||||
}
|
||||
[img setSize:NSMakeSize(16, 16)];
|
||||
return img;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -34,11 +34,12 @@ typedef NS_ENUM(int16_t, FeedGroupType) {
|
||||
/// Overwrites @c type attribute with enum. Use one of: @c GROUP, @c FEED, @c SEPARATOR.
|
||||
@property (nonatomic) FeedGroupType type;
|
||||
@property (nonnull, readonly) NSString *nameOrError;
|
||||
@property (nonnull, readonly) NSImage* groupIconImage16;
|
||||
@property (nonnull, readonly) NSImage* iconImage16;
|
||||
|
||||
+ (instancetype)newGroup:(FeedGroupType)type inContext:(NSManagedObjectContext*)context;
|
||||
- (void)setParent:(FeedGroup *)parent andSortIndex:(int32_t)sortIndex;
|
||||
- (void)setNameIfChanged:(NSString*)name;
|
||||
- (NSImage*)groupIconImage16;
|
||||
- (NSMenuItem*)newMenuItem;
|
||||
// Handle children and parents
|
||||
- (NSString*)indexPathString;
|
||||
|
||||
@@ -27,6 +27,33 @@
|
||||
|
||||
@implementation FeedGroup (Ext)
|
||||
|
||||
#pragma mark - Properties
|
||||
|
||||
/// @return Returns "(error)" if @c self.name is @c nil.
|
||||
- (nonnull NSString*)nameOrError {
|
||||
return (self.name ? self.name : NSLocalizedString(@"(error)", nil));
|
||||
}
|
||||
|
||||
/// @return Return @c 16x16px NSImageNameFolder image.
|
||||
- (nonnull NSImage*)groupIconImage16 {
|
||||
NSImage *groupIcon = [NSImage imageNamed:NSImageNameFolder];
|
||||
groupIcon.size = NSMakeSize(16, 16);
|
||||
return groupIcon;
|
||||
}
|
||||
|
||||
/**
|
||||
@return Return @c 16x16px image.
|
||||
Either feed icon ( @c type @c == @c FEED ) or @c NSImageNameFolder ( @c type @c == @c GROUP ).
|
||||
*/
|
||||
- (nonnull NSImage*)iconImage16 {
|
||||
if (self.type == FEED)
|
||||
return self.feed.iconImage16;
|
||||
return self.groupIconImage16;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Generator
|
||||
|
||||
/// Create new instance and set @c Feed and @c FeedMeta if group type is @c FEED
|
||||
+ (instancetype)newGroup:(FeedGroupType)type inContext:(NSManagedObjectContext*)moc {
|
||||
FeedGroup *fg = [[FeedGroup alloc] initWithEntity: FeedGroup.entity insertIntoManagedObjectContext:moc];
|
||||
@@ -49,27 +76,12 @@
|
||||
self.name = name;
|
||||
}
|
||||
|
||||
/// @return Return static @c 16x16px NSImageNameFolder image.
|
||||
- (NSImage*)groupIconImage16 {
|
||||
static NSImage *groupIcon;
|
||||
if (!groupIcon) {
|
||||
groupIcon = [NSImage imageNamed:NSImageNameFolder];
|
||||
groupIcon.size = NSMakeSize(16, 16);
|
||||
}
|
||||
return groupIcon;
|
||||
}
|
||||
|
||||
/// @return Returns "(error)" if @c self.name is @c nil.
|
||||
- (nonnull NSString*)nameOrError {
|
||||
return (self.name ? self.name : NSLocalizedString(@"(error)", nil));
|
||||
}
|
||||
|
||||
/// @return Fully initialized @c NSMenuItem with @c title and @c image.
|
||||
- (NSMenuItem*)newMenuItem {
|
||||
NSMenuItem *item = [NSMenuItem new];
|
||||
item.title = self.nameOrError;
|
||||
item.enabled = (self.children.count > 0);
|
||||
item.image = [self groupIconImage16];
|
||||
item.image = self.groupIconImage16;
|
||||
item.representedObject = self.objectID;
|
||||
return item;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user