Bugfix: unread count needs sorted children! + ManagedContext fix
This commit is contained in:
@@ -48,7 +48,7 @@
|
||||
*/
|
||||
- (BOOL)descendantFeedItems:(FeedConfigRecursiveItemsBlock)block {
|
||||
if (self.children.count > 0) {
|
||||
for (FeedConfig *config in self.children) {
|
||||
for (FeedConfig *config in self.sortedChildren) {
|
||||
if ([config descendantFeedItems:block] == NO)
|
||||
return NO;
|
||||
}
|
||||
|
||||
@@ -105,14 +105,18 @@
|
||||
item.refreshUnit = (int16_t)self.refreshUnit.indexOfSelectedItem;
|
||||
|
||||
if (self.feedResult) {
|
||||
Feed *rss = [StoreCoordinator createFeedFromDictionary:self.feedResult inContext:item.managedObjectContext];
|
||||
if (item.feed)
|
||||
[item.managedObjectContext deleteObject:(NSManagedObject*)item.feed];
|
||||
item.feed = rss;
|
||||
[item.managedObjectContext performBlockAndWait:^{
|
||||
Feed *rss = [StoreCoordinator createFeedFromDictionary:self.feedResult inContext:item.managedObjectContext];
|
||||
if (item.feed)
|
||||
[item.managedObjectContext deleteObject:(NSManagedObject*)item.feed];
|
||||
item.feed = rss;
|
||||
}];
|
||||
}
|
||||
if ([item.managedObjectContext hasChanges]) {
|
||||
self.objectIsModified = YES;
|
||||
[item.managedObjectContext refreshObject:item mergeChanges:YES];
|
||||
[item.managedObjectContext performBlockAndWait:^{
|
||||
[item.managedObjectContext refreshObject:item mergeChanges:YES];
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -202,7 +206,9 @@
|
||||
NSString *name = ((NSTextField*)self.view).stringValue;
|
||||
if (![item.name isEqualToString: name]) {
|
||||
item.name = name;
|
||||
[item.managedObjectContext refreshObject:item mergeChanges:YES];
|
||||
[item.managedObjectContext performBlockAndWait:^{
|
||||
[item.managedObjectContext refreshObject:item mergeChanges:YES];
|
||||
}];
|
||||
[self.delegate modalDidUpdateFeedConfig:item];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,14 +59,15 @@ static NSString *dragNodeType = @"baRSS-feed-drag";
|
||||
self.undoManager = self.dataStore.managedObjectContext.undoManager;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[self saveAndRebuildMenu];
|
||||
}
|
||||
|
||||
- (void)saveAndRebuildMenu {
|
||||
[StoreCoordinator saveContext:self.dataStore.managedObjectContext];
|
||||
[StoreCoordinator saveContext:self.dataStore.managedObjectContext.parentContext];
|
||||
[[(AppHook*)NSApp barMenu] rebuildMenu]; // updating individual items was way to complicated ...
|
||||
[self.dataStore.managedObjectContext performBlock:^{
|
||||
[StoreCoordinator saveContext:self.dataStore.managedObjectContext];
|
||||
[[(AppHook*)NSApp barMenu] rebuildMenu]; // updating individual items was way to complicated ...
|
||||
[self.dataStore.managedObjectContext.parentContext performBlock:^{
|
||||
[StoreCoordinator saveContext:self.dataStore.managedObjectContext.parentContext];
|
||||
}];
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
- (IBAction)addFeed:(id)sender {
|
||||
|
||||
Reference in New Issue
Block a user