From efcc62f4522a85bc5b9452ce4d332a95c7e78957 Mon Sep 17 00:00:00 2001 From: Sergey Dolin Date: Sun, 27 Oct 2013 10:51:33 +0500 Subject: [PATCH] Custom image support --- .../xcdebugger/Breakpoints.xcbkptlist | 234 +++++++++--------- RSSCue/RCFeed.h | 4 + RSSCue/RCFeed.m | 25 ++ RSSCue/RCFeedsPool.m | 6 +- RSSCue/RCPreferencesController.m | 27 +- RSSCue/RSS Cue-Info.plist | 2 +- RSSCue/en.lproj/Preferences.xib | 209 ++++++++++++---- 7 files changed, 330 insertions(+), 177 deletions(-) diff --git a/RSS Cue.xcodeproj/xcuserdata/dsa.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/RSS Cue.xcodeproj/xcuserdata/dsa.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist index 19b99a9..0d12312 100644 --- a/RSS Cue.xcodeproj/xcuserdata/dsa.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist +++ b/RSS Cue.xcodeproj/xcuserdata/dsa.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist @@ -9,11 +9,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCPreferencesController.m" - timestampString = "404424262.611322" + timestampString = "404544921.49221" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "186" - endingLineNumber = "186" + startingLineNumber = "192" + endingLineNumber = "192" landmarkName = "-updateInfoText" landmarkType = "5"> @@ -23,11 +23,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeedsPool.m" - timestampString = "404396280.759695" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "133" - endingLineNumber = "133" + startingLineNumber = "135" + endingLineNumber = "135" landmarkName = "-feedSuccess:" landmarkType = "5"> @@ -37,11 +37,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeedsPool.m" - timestampString = "404396280.759695" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "143" - endingLineNumber = "143" + startingLineNumber = "145" + endingLineNumber = "145" landmarkName = "-feedSuccess:" landmarkType = "5"> @@ -51,11 +51,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "298" - endingLineNumber = "298" + startingLineNumber = "323" + endingLineNumber = "323" landmarkName = "-parser:didStartElement:namespaceURI:qualifiedName:attributes:" landmarkType = "5"> @@ -65,11 +65,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "306" - endingLineNumber = "306" + startingLineNumber = "331" + endingLineNumber = "331" landmarkName = "-parser:didStartElement:namespaceURI:qualifiedName:attributes:" landmarkType = "5"> @@ -79,11 +79,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "352" - endingLineNumber = "352" + startingLineNumber = "377" + endingLineNumber = "377" landmarkName = "-parser:foundCharacters:" landmarkType = "5"> @@ -93,11 +93,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "361" - endingLineNumber = "361" + startingLineNumber = "386" + endingLineNumber = "386" landmarkName = "-parser:foundCharacters:" landmarkType = "5"> @@ -107,11 +107,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "256" - endingLineNumber = "256" + startingLineNumber = "281" + endingLineNumber = "281" landmarkName = "-parser:didStartElement:namespaceURI:qualifiedName:attributes:" landmarkType = "5"> @@ -121,11 +121,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "277" - endingLineNumber = "277" + startingLineNumber = "302" + endingLineNumber = "302" landmarkName = "-parser:didStartElement:namespaceURI:qualifiedName:attributes:" landmarkType = "5"> @@ -135,11 +135,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "328" - endingLineNumber = "328" + startingLineNumber = "353" + endingLineNumber = "353" landmarkName = "-parser:didStartElement:namespaceURI:qualifiedName:attributes:" landmarkType = "5"> @@ -149,11 +149,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeedsPool.m" - timestampString = "404396280.759695" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "161" - endingLineNumber = "161" + startingLineNumber = "163" + endingLineNumber = "163" landmarkName = "-feedStateChanged:" landmarkType = "5"> @@ -163,11 +163,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeedsPool.m" - timestampString = "404396280.759695" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "159" - endingLineNumber = "159" + startingLineNumber = "161" + endingLineNumber = "161" landmarkName = "-feedSuccess:" landmarkType = "5"> @@ -177,11 +177,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "324" - endingLineNumber = "324" + startingLineNumber = "349" + endingLineNumber = "349" landmarkName = "-parser:didStartElement:namespaceURI:qualifiedName:attributes:" landmarkType = "5"> @@ -191,11 +191,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "321" - endingLineNumber = "321" + startingLineNumber = "346" + endingLineNumber = "346" landmarkName = "-parser:didStartElement:namespaceURI:qualifiedName:attributes:" landmarkType = "5"> @@ -205,11 +205,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "364" - endingLineNumber = "364" + startingLineNumber = "389" + endingLineNumber = "389" landmarkName = "-parser:foundCharacters:" landmarkType = "5"> @@ -219,11 +219,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "367" - endingLineNumber = "367" + startingLineNumber = "392" + endingLineNumber = "392" landmarkName = "-parser:foundCharacters:" landmarkType = "5"> @@ -233,11 +233,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "282" - endingLineNumber = "282" + startingLineNumber = "307" + endingLineNumber = "307" landmarkName = "-parser:didStartElement:namespaceURI:qualifiedName:attributes:" landmarkType = "5"> @@ -261,11 +261,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "285" - endingLineNumber = "285" + startingLineNumber = "310" + endingLineNumber = "310" landmarkName = "-parser:didStartElement:namespaceURI:qualifiedName:attributes:" landmarkType = "5"> @@ -289,11 +289,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "408" - endingLineNumber = "408" + startingLineNumber = "433" + endingLineNumber = "433" landmarkName = "-parserDidEndDocument:" landmarkType = "5"> @@ -303,11 +303,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "183" - endingLineNumber = "183" + startingLineNumber = "208" + endingLineNumber = "208" landmarkName = "-connectionDidFinishLoading:" landmarkType = "5"> @@ -317,11 +317,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "132" - endingLineNumber = "132" + startingLineNumber = "157" + endingLineNumber = "157" landmarkName = "-connection:didReceiveResponse:" landmarkType = "5"> @@ -331,11 +331,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "146" - endingLineNumber = "146" + startingLineNumber = "171" + endingLineNumber = "171" landmarkName = "-connection:didFailWithError:" landmarkType = "5"> @@ -415,11 +415,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCPreferencesController.m" - timestampString = "404427067.430174" + timestampString = "404544921.49221" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "329" - endingLineNumber = "329" + startingLineNumber = "335" + endingLineNumber = "335" landmarkName = "-addRemoveFeed:" landmarkType = "5"> @@ -429,11 +429,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCPreferencesController.m" - timestampString = "404488940.050152" + timestampString = "404544921.49221" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "394" - endingLineNumber = "394" + startingLineNumber = "401" + endingLineNumber = "401" landmarkName = "-feedsConfigWillUpdate:" landmarkType = "5"> @@ -443,11 +443,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCPreferencesController.m" - timestampString = "404424262.611322" + timestampString = "404544921.49221" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "180" - endingLineNumber = "180" + startingLineNumber = "186" + endingLineNumber = "186" landmarkName = "-updateInfoText" landmarkType = "5"> @@ -513,11 +513,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "245" - endingLineNumber = "245" + startingLineNumber = "270" + endingLineNumber = "270" landmarkName = "-connection:didReceiveAuthenticationChallenge:" landmarkType = "5"> @@ -527,11 +527,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "234" - endingLineNumber = "234" + startingLineNumber = "259" + endingLineNumber = "259" landmarkName = "-connection:didReceiveAuthenticationChallenge:" landmarkType = "5"> @@ -541,11 +541,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "249" - endingLineNumber = "249" + startingLineNumber = "274" + endingLineNumber = "274" landmarkName = "-connection:didCancelAuthenticationChallenge:" landmarkType = "5"> @@ -555,11 +555,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "164" - endingLineNumber = "164" + startingLineNumber = "189" + endingLineNumber = "189" landmarkName = "-connectionDidFinishLoading:" landmarkType = "5"> @@ -569,11 +569,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404401780.29416" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "241" - endingLineNumber = "241" + startingLineNumber = "266" + endingLineNumber = "266" landmarkName = "-connection:didReceiveAuthenticationChallenge:" landmarkType = "5"> @@ -583,11 +583,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404402387.254408" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "220" - endingLineNumber = "220" + startingLineNumber = "245" + endingLineNumber = "245" landmarkName = "-connection:canAuthenticateAgainstProtectionSpace:" landmarkType = "5"> @@ -597,11 +597,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCFeed.m" - timestampString = "404402421.519495" + timestampString = "404545604.011209" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "228" - endingLineNumber = "228" + startingLineNumber = "253" + endingLineNumber = "253" landmarkName = "-connection:didReceiveAuthenticationChallenge:" landmarkType = "5"> @@ -695,11 +695,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCPreferencesController.m" - timestampString = "404427067.430174" + timestampString = "404544921.49221" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "269" - endingLineNumber = "269" + startingLineNumber = "275" + endingLineNumber = "275" landmarkName = "-observeValueForKeyPath:ofObject:change:context:" landmarkType = "5"> @@ -709,11 +709,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCPreferencesController.m" - timestampString = "404424262.611322" + timestampString = "404544921.49221" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "136" - endingLineNumber = "136" + startingLineNumber = "142" + endingLineNumber = "142" landmarkName = "@implementation RCPreferencesController" landmarkType = "3"> @@ -723,11 +723,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCPreferencesController.m" - timestampString = "404424262.611322" + timestampString = "404544921.49221" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "124" - endingLineNumber = "124" + startingLineNumber = "130" + endingLineNumber = "130" landmarkName = "-setRunOnLaunch:" landmarkType = "5"> @@ -737,11 +737,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCPreferencesController.m" - timestampString = "404424426.985534" + timestampString = "404544921.49221" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "122" - endingLineNumber = "122" + startingLineNumber = "128" + endingLineNumber = "128" landmarkName = "-setRunOnLaunch:" landmarkType = "5"> @@ -751,11 +751,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCPreferencesController.m" - timestampString = "404488940.050152" + timestampString = "404544921.49221" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "392" - endingLineNumber = "392" + startingLineNumber = "399" + endingLineNumber = "399" landmarkName = "-feedsConfigWillUpdate:" landmarkType = "5"> @@ -765,11 +765,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCPreferencesController.m" - timestampString = "404488940.050152" + timestampString = "404544921.49221" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "400" - endingLineNumber = "400" + startingLineNumber = "407" + endingLineNumber = "407" landmarkName = "-feedsConfigDidUpdate:" landmarkType = "5"> @@ -779,11 +779,11 @@ continueAfterRunningActions = "No" isPathRelative = "1" filePath = "RSSCue/RCPreferencesController.m" - timestampString = "404488940.050152" + timestampString = "404544921.49221" startingColumnNumber = "2147483647" endingColumnNumber = "2147483647" - startingLineNumber = "413" - endingLineNumber = "413" + startingLineNumber = "420" + endingLineNumber = "420" landmarkName = "-feedsConfigDidUpdate:" landmarkType = "5"> diff --git a/RSSCue/RCFeed.h b/RSSCue/RCFeed.h index 6b5af79..416c195 100644 --- a/RSSCue/RCFeed.h +++ b/RSSCue/RCFeed.h @@ -48,6 +48,8 @@ typedef enum { NSString *_description; NSData * _imageData; NSString *_imageURL; + NSString *_customImageURL; + NSData * _customImageData; NSArray *_items; NSError *_error; @@ -68,6 +70,7 @@ typedef enum { @property (readonly) NSString * name; @property (readonly) NSString * uuid; @property (readonly) NSData * imageData; +@property (readonly) NSData * customImageData; @property (retain) id delegate; @property (assign) RC_FEED_STATE state; @@ -79,5 +82,6 @@ typedef enum { - (NSMutableDictionary*) configuration; - (void) setImageURL:(NSString*)url; +- (void) setCustomImageURL:(NSString*)url; @end diff --git a/RSSCue/RCFeed.m b/RSSCue/RCFeed.m index 650f4ec..0709ca0 100644 --- a/RSSCue/RCFeed.m +++ b/RSSCue/RCFeed.m @@ -71,11 +71,29 @@ - (void) setImageURL:(NSString *)url{ _imageData=nil; } } +- (void) setCustomImageURL:(NSString *)url{ + if (url==nil && _customImageURL==nil) return; + if ([url isEqualToString:_customImageURL]) return; + [_customImageURL release]; + [_customImageData release]; + if (url!=nil){ + NSImage *image=[[NSImage alloc] initWithContentsOfURL:[NSURL URLWithString:url]]; + _customImageData=[[image TIFFRepresentation] retain]; + [image release]; + }else{ + _customImageURL=nil; + _customImageData=nil; + } +} - (NSData *)imageData{ return _imageData; } +- (NSData *)customImageData{ + return _customImageData; +} + #pragma mark Initialization - (id)initWithUUID:(NSString *)uuid andDelegate:(id)delegate{ @@ -85,6 +103,13 @@ - (id)initWithUUID:(NSString *)uuid andDelegate:(id)delegate{ self.delegate=delegate; _uuid=[uuid retain]; _state=kUndefined; + NSDictionary * config=[NSUserDefaults configForFeedByUUID:uuid]; + NSString *imgURL=[config objectForKey:@"img"]; + if (imgURL && ![imgURL isEqualToString:@""]){ + NSImage *image=[[NSImage alloc] initWithContentsOfURL:[NSURL URLWithString:imgURL]]; + _customImageData=[[image TIFFRepresentation] retain]; + [image release]; + } return self; } diff --git a/RSSCue/RCFeedsPool.m b/RSSCue/RCFeedsPool.m index 22340e5..e128ceb 100644 --- a/RSSCue/RCFeedsPool.m +++ b/RSSCue/RCFeedsPool.m @@ -127,15 +127,17 @@ - (void) feedSuccess:(RCFeed *) feed{ for(RCItem * i in feed.items) i.reported=YES; feed.reported=(unsigned int)feed.items.count; }else{ + NSDictionary* config=[feed configuration]; unsigned int repc=0,rept=0; - unsigned int max=[[feed.configuration objectForKey:@"max"] unsignedIntValue]; + unsigned int max=[[config objectForKey:@"max"] unsignedIntValue]; + [feed setCustomImageURL:[config objectForKey:@"img"]];// may change between runs so need to be refreshed for(RCItem * i in feed.items){ if (!i.isReported){ [GrowlApplicationBridge notifyWithTitle:i.title description:[NSString stringWithFormat:@"%@",i.description] notificationName:@"ItemArrived" - iconData:feed.imageData + iconData:(feed.customImageData?feed.customImageData:feed.imageData) priority:0 isSticky:NO clickContext:i.link]; diff --git a/RSSCue/RCPreferencesController.m b/RSSCue/RCPreferencesController.m index f0d07b9..24db1f3 100644 --- a/RSSCue/RCPreferencesController.m +++ b/RSSCue/RCPreferencesController.m @@ -97,8 +97,10 @@ - (BOOL)loginItemExistsWithLoginItemReference:(LSSharedFileListRef)theLoginItems if ([[(NSURL *)thePath path] hasPrefix:@"/Applications/MyApp.app"]) exists = YES; } + CFRelease(loginItemsArray); return exists; }; + CFRelease(loginItemsArray); return NO; } @@ -111,9 +113,13 @@ -(BOOL) findLaunchItem:(LSSharedFileListItemRef*)pItemRef inLoginsList:(LSShared *pItemRef = (LSSharedFileListItemRef)item; NSURL* path; if (LSSharedFileListItemResolve(*pItemRef, 0, (CFURLRef*) &path, NULL) == noErr) { - if ([path isEqual:appPath]) return YES; + if ([path isEqual:appPath]) { + CFRelease(loginItemsArray); + return YES; + } } }; + CFRelease(loginItemsArray); return NO; } -(void)setRunOnLaunch:(NSNumber*)runOnLaunch{ @@ -190,10 +196,10 @@ - (void) updateInfoText { NSString * summary=[config valueForKey:@"description"];if (summary==nil) summary=@""; NSDate * lastFetch=[config valueForKey:@"lastFetch"]; NSString * lastFetchTxt; - + id total; id reported; - + if (lastFetch) { NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"MMM dd, yyyy HH:mm:ss"]; @@ -247,20 +253,20 @@ - (id)initWithWindow:(NSWindow *)window - (void)windowDidLoad { [super windowDidLoad]; - + } - (void) awakeFromNib { [self setControlsEnabled]; [self updateInfoText]; [_feedsArrayController addObserver:self forKeyPath:@"selection" options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld) context:nil]; - + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(feedsConfigWillUpdate:) name:@"feeds_config_to_be_updated" object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(feedsConfigDidUpdate:) - name:@"feeds_config_updated" object:nil]; + selector:@selector(feedsConfigDidUpdate:) + name:@"feeds_config_updated" object:nil]; } #pragma mark Controls observers & delegators @@ -281,7 +287,7 @@ - (void)controlTextDidBeginEditing:(NSNotification *)obj{ - (void)controlTextDidEndEditing:(NSNotification *)aNotification { // The problem with this is the method may be called by the code, not by user action // I detect this with _isEditing=Yes/No - NSAssert(!_isEditing || !_isConfigUpdatingOutside,@"External update must be disable while the Preferences are editing"); + NSAssert(!_isEditing || !_isConfigUpdatingOutside,@"External update must be disable while the Preferences are editing"); if (_isEditing){ NSString* uuid=[self selectedUUID]; NSAssert(uuid,@"If it was manual editing then uuid must be set. If it was not then isEditing must be NO"); @@ -313,7 +319,7 @@ - (IBAction)addRemoveFeed:(id)sender { [self endEditing]; NSInteger button=[sender selectedSegment]; - + NSArray * selection=[_feedsArrayController selectedObjects]; NSDictionary * config=[selection count]>0?[selection objectAtIndex:0]:nil; @@ -334,6 +340,7 @@ - (IBAction)addRemoveFeed:(id)sender { [NSNumber numberWithBool:NO],@"enabled", [NSNumber numberWithInt: 3],@"max", [NSNumber numberWithInteger:60],@"interval", + @"",@"img", nil]; [_feedsArrayController addObject:newConfig]; [_feedsArrayController setSelectedObjects:[NSArray arrayWithObject: newConfig]]; @@ -417,7 +424,7 @@ -(void) feedsConfigDidUpdate:(NSNotification *)notification { #pragma mark FeedDelegate -(void) feedFailed:(RCFeed *)feed { - + [self.progress stopAnimation:self]; NSAlert* msgBox = [NSAlert alertWithError:feed.error]; diff --git a/RSSCue/RSS Cue-Info.plist b/RSSCue/RSS Cue-Info.plist index 99aad9f..5e86e7d 100644 --- a/RSSCue/RSS Cue-Info.plist +++ b/RSSCue/RSS Cue-Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 18 + 19 LSApplicationCategoryType public.app-category.productivity LSMinimumSystemVersion diff --git a/RSSCue/en.lproj/Preferences.xib b/RSSCue/en.lproj/Preferences.xib index 226658b..8a12680 100644 --- a/RSSCue/en.lproj/Preferences.xib +++ b/RSSCue/en.lproj/Preferences.xib @@ -71,7 +71,7 @@ 3 2 - {{196, 240}, {586, 432}} + {{196, 240}, {586, 477}} 544735232 RSS Cue Preferences NSWindow @@ -84,7 +84,7 @@ 12 - {{13, 36}, {560, 390}} + {{13, 53}, {560, 418}} @@ -100,7 +100,7 @@ 268 - {{17, 14}, {189, 23}} + {{17, 42}, {189, 23}} @@ -310,7 +310,7 @@ 0.99468082189559937 - {{17, 35}, {189, 303}} + {{17, 63}, {189, 303}} @@ -336,7 +336,7 @@ {{4, 7}, {304, 117}} - + YES 67239424 @@ -364,7 +364,7 @@ - {{211, 11}, {314, 132}} + {{211, 5}, {314, 132}} @@ -394,7 +394,7 @@ 268 - {{214, 299}, {308, 22}} + {{214, 327}, {308, 22}} @@ -418,7 +418,7 @@ 268 - {{214, 255}, {308, 22}} + {{214, 283}, {308, 22}} @@ -437,7 +437,7 @@ 268 - {{211, 324}, {45, 17}} + {{211, 352}, {45, 17}} @@ -455,7 +455,7 @@ 268 - {{211, 280}, {33, 17}} + {{211, 308}, {33, 17}} @@ -470,10 +470,47 @@ + + + 268 + {{296, 164}, {226, 22}} + + + + YES + + -1804468671 + 272630784 + + + + YES + + + + + + + 268 + {{211, 167}, {75, 17}} + + + + YES + + 68288064 + 272630784 + Image URL: + + + + + + 268 - {{211, 171}, {43, 17}} + {{211, 199}, {43, 17}} @@ -491,7 +528,7 @@ 268 - {{254, 168}, {100, 22}} + {{254, 196}, {100, 22}} @@ -510,7 +547,7 @@ 268 - {{355, 171}, {68, 17}} + {{355, 199}, {68, 17}} @@ -528,10 +565,10 @@ 268 - {{422, 168}, {100, 22}} + {{422, 196}, {100, 22}} - + YES 343014976 @@ -551,7 +588,7 @@ 268 - {{419, 224}, {19, 27}} + {{419, 252}, {19, 27}} @@ -570,7 +607,7 @@ 268 - {{211, 230}, {133, 17}} + {{211, 258}, {133, 17}} @@ -588,7 +625,7 @@ 268 - {{346, 230}, {71, 17}} + {{346, 258}, {71, 17}} @@ -606,7 +643,7 @@ 268 - {{419, 191}, {19, 27}} + {{419, 219}, {19, 27}} @@ -625,7 +662,7 @@ 268 - {{211, 197}, {140, 17}} + {{211, 225}, {140, 17}} @@ -643,7 +680,7 @@ 268 - {{349, 197}, {68, 17}} + {{349, 225}, {68, 17}} @@ -661,7 +698,7 @@ 268 - {{212, 146}, {80, 18}} + {{212, 141}, {80, 18}} @@ -702,10 +739,10 @@ NeXT TIFF v4.0 pasteboard type - {{296, 146}, {16, 16}} + {{296, 142}, {16, 16}} - + YES 130560 @@ -736,10 +773,10 @@ NeXT TIFF v4.0 pasteboard type - {{304, 148}, {16, 16}} + {{305, 141}, {16, 17}} - + YES 130560 @@ -767,10 +804,10 @@ NeXT TIFF v4.0 pasteboard type - {{304, 145}, {16, 16}} + {{305, 143}, {16, 16}} - + YES 130560 @@ -784,7 +821,7 @@ YES - {{10, 33}, {540, 344}} + {{10, 33}, {540, 372}} @@ -803,7 +840,7 @@ 268 - {{291, 316}, {232, 18}} + {{291, 344}, {232, 18}} YES @@ -826,7 +863,7 @@ 268 - {{291, 286}, {161, 18}} + {{291, 314}, {161, 18}} YES @@ -849,7 +886,7 @@ 268 - {{293, 255}, {161, 18}} + {{293, 283}, {161, 18}} YES @@ -872,7 +909,7 @@ 268 - {{519, 280}, {19, 27}} + {{519, 308}, {19, 27}} YES @@ -888,7 +925,7 @@ 268 - {{448, 286}, {47, 17}} + {{448, 314}, {47, 17}} YES @@ -905,7 +942,7 @@ 268 - {{492, 287}, {38, 17}} + {{492, 315}, {38, 17}} YES @@ -922,7 +959,7 @@ 268 - {{293, 199}, {250, 38}} + {{293, 227}, {250, 38}} YES @@ -1027,9 +1064,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 - {{436, 153}, {127, 42}} + {{436, 181}, {127, 42}} - YES 67239424 @@ -1047,7 +1083,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 - {{467, 222}, {38, 17}} + {{467, 250}, {38, 17}} YES @@ -1067,7 +1103,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 - {{412, 203}, {38, 17}} + {{412, 231}, {38, 17}} YES @@ -1099,7 +1135,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA NeXT TIFF v4.0 pasteboard type - {{-3, -3}, {338, 332}} + {{-3, 25}, {338, 332}} YES @@ -1118,7 +1154,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA YES - {{10, 33}, {540, 344}} + {{10, 33}, {540, 372}} General @@ -1139,7 +1175,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 - {{387, 12}, {185, 32}} + {{387, 14}, {185, 32}} @@ -1162,7 +1198,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 1292 - {{18, 18}, {363, 20}} + {{18, 20}, {363, 20}} @@ -1170,7 +1206,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 100 - {586, 432} + {586, 477} @@ -1850,6 +1886,46 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 300 + + + delegate + + + + 312 + + + + enabled: selection.@count + + + + + + enabled: selection.@count + enabled + selection.@count + 2 + + + 314 + + + + value: selection.img + + + + + + value: selection.img + value + selection.img + 2 + + + 316 + @@ -1982,8 +2058,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - + + + @@ -2516,6 +2594,35 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + 308 + + + YES + + + + Feed url field + + + 309 + + + YES + + + + + + 310 + + + + + 311 + + + @@ -2587,6 +2694,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 305.IBPluginDependency 306.IBPluginDependency 307.IBPluginDependency + 308.IBPluginDependency + 309.IBPluginDependency + 310.IBPluginDependency + 311.IBPluginDependency 32.IBPluginDependency 33.IBPluginDependency 34.IBPluginDependency @@ -2688,6 +2799,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -2723,7 +2838,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - 307 + 316