Revision: 27803
http://sourceforge.net/p/bibdesk/svn/27803
Author: hofman
Date: 2022-08-14 22:42:44 +0000 (Sun, 14 Aug 2022)
Log Message:
-----------
build dictionaries to save for web icon database, ensures keys used are
identical
Modified Paths:
--------------
trunk/bibdesk/BDSKWebIconDatabase.m
Modified: trunk/bibdesk/BDSKWebIconDatabase.m
===================================================================
--- trunk/bibdesk/BDSKWebIconDatabase.m 2022-08-14 17:42:02 UTC (rev 27802)
+++ trunk/bibdesk/BDSKWebIconDatabase.m 2022-08-14 22:42:44 UTC (rev 27803)
@@ -155,36 +155,30 @@
}
}
-- (void)removePagesWithLimit:(NSTimeInterval)limit {
+- (NSDictionary *)dictionaryWithLimit:(NSTimeInterval)limit {
NSMutableSet *bookmarkURLs = [NSMutableSet set];
addAllURLStrings(bookmarkURLs, [[BDSKBookmarkController
sharedBookmarkController] bookmarkRoot]);
- NSMutableArray *pagesToRemove = [NSMutableArray array];
- NSMutableSet *iconsToKeep = [NSMutableSet set];
- NSMutableSet *iconURLStrings = [NSMutableSet setWithArray:[icons allKeys]];
+ NSSet *iconURLStrings = [NSSet setWithArray:[icons allKeys]];
+ NSMutableDictionary *savedPages = [NSMutableDictionary dictionary];
+ NSMutableDictionary *savedIcons = [NSMutableDictionary dictionary];
[pages enumerateKeysAndObjectsUsingBlock:^(NSString *key, id obj, BOOL
*stop){
NSString *iconURLString;
if (([bookmarkURLs containsObject:key] || -[[obj
objectForKey:LASTVISITED_KEY] timeIntervalSinceNow] <= limit) &&
(iconURLString = [iconURLStrings member:[obj
objectForKey:ICONURL_KEY]])) {
- [iconsToKeep addObject:iconURLString];
- [obj setObject:iconURLString forKey:ICONURL_KEY];
- NSDate *date = [obj objectForKey:LASTVISITED_KEY];
- if (date)
- [obj setObject:date forKey:LASTVISITED_KEY];
- } else {
- [pagesToRemove addObject:key];
+ NSDictionary *dict = [[NSDictionary alloc]
initWithObjectsAndKeys:iconURLString, ICONURL_KEY, [obj
objectForKey:LASTVISITED_KEY], LASTVISITED_KEY, nil];
+ [savedPages setObject:dict forKey:key];
+ [dict release];
+ [savedIcons setObject:[icons objectForKey:iconURLString]
forKey:iconURLString];
}
}];
- [iconURLStrings minusSet:iconsToKeep];
- [pages removeObjectsForKeys:pagesToRemove];
- [icons removeObjectsForKeys:[iconURLStrings allObjects]];
+ return [NSDictionary dictionaryWithObjectsAndKeys:savedPages, PAGES_KEY,
savedIcons, ICONS_KEY, VERSION, VERSION_KEY, nil];
}
- (void)handleApplicationWillTerminate:(NSNotification *)notification {
- if (icons == nil || pages == nil || [recentIcons count] == 0)
+ if ([recentIcons count] == 0)
return;
- [self removePagesWithLimit:7.0 * 86400.0];
NSURL *dbURL = [self webIconDatabaseURL];
- NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:pages,
PAGES_KEY, icons, ICONS_KEY, VERSION, VERSION_KEY, nil];
+ NSDictionary *dict = [self dictionaryWithLimit:7.0 * 86400.0];
NSData *data = [NSPropertyListSerialization dataWithPropertyList:dict
format:NSPropertyListBinaryFormat_v1_0 options:0 error:NULL];
[data writeToURL:dbURL atomically:YES];
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit