Changeset 2970
- Timestamp:
- 06/18/05 00:22:06 (3 years ago)
- Files:
-
- Footagehead/trunk/FHCache.h (modified) (3 diffs)
- Footagehead/trunk/FHCache.m (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
Footagehead/trunk/FHCache.h
r2948 r2970 27 27 */ 28 28 29 @class FHImage; 30 29 31 @interface FHCache : ZAObject { 30 32 NSImage *_directoryIcon; 31 33 NSMutableDictionary *_fileIcons; 32 34 NSMutableDictionary *_largeFileIcons; 33 34 NSRecursiveLock *_lock; 35 NSMutableDictionary *_thumbnails; 35 36 } 36 37 … … 39 40 40 41 - (NSImage *)directoryIcon; 41 42 - (void)setFileIcon:(NSImage *)icon forExtension:(NSString *)extension;43 - (NSImage *)fileIconForExtension:(NSString *)extension;44 42 45 43 - (void)setFileIcon:(NSImage *)icon forURL:(ZAURL *)url; … … 52 50 - (NSImage *)largeFileIconForURL:(ZAURL *)url; 53 51 52 - (void)setThumbnail:(FHImage *)image forURL:(ZAURL *)url; 53 - (FHImage *)thumbnailForURL:(ZAURL *)url; 54 54 55 @end Footagehead/trunk/FHCache.m
r2948 r2970 28 28 29 29 #import "FHCache.h" 30 #import "FHImage.h" 30 31 31 32 @implementation FHCache … … 45 46 self = [super init]; 46 47 47 _directoryIcon = [[[NSWorkspace sharedWorkspace] iconForFile:@"/tmp"] retain];48 _directoryIcon = [[[NSWorkspace sharedWorkspace] iconForFile:@"/tmp"] retain]; 48 49 [_directoryIcon setSize:NSMakeSize(128, 128)]; 49 50 50 _fileIcons = [[NSMutableDictionary alloc] initWithCapacity:100]; 51 _largeFileIcons = [[NSMutableDictionary alloc] initWithCapacity:100]; 52 53 _lock = [[NSRecursiveLock alloc] init]; 51 _fileIcons = [[NSMutableDictionary alloc] initWithCapacity:100]; 52 _largeFileIcons = [[NSMutableDictionary alloc] initWithCapacity:100]; 53 _thumbnails = [[NSMutableDictionary alloc] initWithCapacity:500]; 54 54 55 55 return self; … … 62 62 [_fileIcons release]; 63 63 [_largeFileIcons release]; 64 65 [_lock release];66 64 67 65 [super dealloc]; … … 80 78 #pragma mark - 81 79 82 - (void)setFileIcon:(NSImage *)icon forExtension:(NSString *)extension {83 [_lock lock];84 85 if([_fileIcons count] > 100)86 [_fileIcons removeObjectForKey:[[_fileIcons allKeys] objectAtIndex:0]];87 88 [_fileIcons setObject:icon forKey:extension];89 90 [_lock unlock];91 }92 93 94 95 - (NSImage *)fileIconForExtension:(NSString *)extension {96 NSImage *image;97 98 [_lock lock];99 image = [_fileIcons objectForKey:extension];100 [_lock unlock];101 102 return image;103 }104 105 106 107 #pragma mark -108 109 80 - (void)setFileIcon:(NSImage *)icon forURL:(ZAURL *)url { 110 [_lock lock];111 112 81 if([_fileIcons count] > 100) 113 82 [_fileIcons removeObjectForKey:[[_fileIcons allKeys] objectAtIndex:0]]; 114 83 115 84 [_fileIcons setObject:icon forKey:[url string]]; 116 117 [_lock unlock];118 85 } 119 86 … … 121 88 122 89 - (NSImage *)fileIconForURL:(ZAURL *)url { 123 NSImage *image; 124 125 [_lock lock]; 126 image = [_fileIcons objectForKey:[url string]]; 127 [_lock unlock]; 128 129 return image; 90 return [_fileIcons objectForKey:[url string]]; 130 91 } 131 92 … … 135 96 136 97 - (void)setLargeFileIcon:(NSImage *)icon forExtension:(NSString *)extension { 137 [_lock lock];138 139 98 if([_largeFileIcons count] > 100) 140 99 [_largeFileIcons removeObjectForKey:[[_largeFileIcons allKeys] objectAtIndex:0]]; 141 100 142 101 [_largeFileIcons setObject:icon forKey:extension]; 143 144 [_lock unlock];145 102 } 146 103 … … 148 105 149 106 - (NSImage *)largeFileIconForExtension:(NSString *)extension { 150 NSImage *image; 151 152 [_lock lock]; 153 image = [_largeFileIcons objectForKey:extension]; 154 [_lock unlock]; 155 156 return image; 107 return [_largeFileIcons objectForKey:extension]; 157 108 } 158 109 … … 162 113 163 114 - (void)setLargeFileIcon:(NSImage *)icon forURL:(ZAURL *)url { 164 [_lock lock];165 166 115 if([_largeFileIcons count] > 100) 167 116 [_largeFileIcons removeObjectForKey:[[_largeFileIcons allKeys] objectAtIndex:0]]; 168 117 169 118 [_largeFileIcons setObject:icon forKey:[url string]]; 170 171 [_lock unlock];172 119 } 173 120 … … 175 122 176 123 - (NSImage *)largeFileIconForURL:(ZAURL *)url { 177 NSImage *image; 124 return [_largeFileIcons objectForKey:[url string]]; 125 } 126 127 128 129 #pragma mark - 130 131 - (void)setThumbnail:(FHImage *)image forURL:(ZAURL *)url { 132 if([_thumbnails count] > 500) 133 [_largeFileIcons removeObjectForKey:[[_thumbnails allKeys] objectAtIndex:0]]; 178 134 179 [_lock lock]; 180 image = [_largeFileIcons objectForKey:[url string]]; 181 [_lock unlock]; 182 183 return image; 135 [_thumbnails setObject:image forKey:[url string]]; 136 } 137 138 139 140 - (FHImage *)thumbnailForURL:(ZAURL *)url { 141 return [_thumbnails objectForKey:[url string]]; 184 142 } 185 143
