Changeset 222
- Timestamp:
- 09/12/07 10:57:22 (1 year ago)
- Files:
-
- trunk/SapphireImporterDataMenu.m (modified) (3 diffs)
- trunk/SapphireMetaData.h (modified) (2 diffs)
- trunk/SapphireMetaData.m (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/SapphireImporterDataMenu.m
r201 r222 185 185 canceled = NO; 186 186 suspended = NO; 187 [metaCollection setImporting:YES];188 187 collectionIndex = 0; 189 188 [self getItems]; … … 283 282 [importTimer invalidate]; 284 283 importTimer = nil; 285 [metaCollection setImporting:NO];286 284 [metaCollection writeMetaData]; 287 285 /*Update display*/ … … 307 305 /*Reset the display and write data*/ 308 306 [self resetUIElements]; 309 [metaCollection setImporting:NO];310 307 [metaCollection writeMetaData]; 311 308 } trunk/SapphireMetaData.h
r220 r222 91 91 NSMutableDictionary *hideCollection; 92 92 NSString *dictionaryPath; 93 BOOL importing;93 NSTimer *writeTimer; 94 94 } 95 95 - (id)initWithFile:(NSString *)dictionary; … … 98 98 - (SapphireMetaData *)dataForPath:(NSString *)path withData:(NSDictionary *)data; 99 99 - (NSArray *)collectionDirectories; 100 - (void)setImporting:(BOOL)isImporting;101 100 - (BOOL)hideCollection:(NSString *)collection; 102 101 - (void)setHide:(BOOL)hide forCollection:(NSString *)collection; trunk/SapphireMetaData.m
r220 r222 218 218 - (SapphireMetaData *)dataForSubPath:(NSString *)absPath inDirectory:(SapphireDirectoryMetaData *)directory; 219 219 - (void)linkCollections; 220 - (void)realWriteMetaData; 220 221 @end 221 222 … … 358 359 [hideCollection release]; 359 360 [dictionaryPath release]; 361 if(writeTimer != nil) 362 { 363 [writeTimer invalidate]; 364 [self realWriteMetaData]; 365 } 360 366 [super dealloc]; 361 367 } … … 461 467 - (void)writeMetaData 462 468 { 463 if(importing) 464 return; 469 [writeTimer invalidate]; 470 writeTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(realWriteMetaData) userInfo:nil repeats:NO]; 471 } 472 473 - (void)realWriteMetaData 474 { 475 [writeTimer invalidate]; 476 writeTimer = nil; 465 477 makeParentDir([NSFileManager defaultManager], [dictionaryPath stringByDeletingLastPathComponent]); 466 478 [metaData writeToFile:dictionaryPath atomically:YES]; … … 470 482 { 471 483 return self; 472 }473 474 /*!475 * @brief Set whether or not we are currently importing. If YES, this defers writes of the metadata until later476 *477 * @param isImporting YES if importing, NO otherwise478 */479 - (void)setImporting:(BOOL)isImporting480 {481 importing = isImporting;482 484 } 483 485 … … 1243 1245 - (void)setWatched:(BOOL)watched forPredicate:(SapphirePredicate *)predicate 1244 1246 { 1245 [[self collection] setImporting:YES];1246 1247 SEL select = @selector(setWatched:); 1247 1248 NSInvocation *fileInv = [NSInvocation invocationWithMethodSignature:[[SapphireFileMetaData class] instanceMethodSignatureForSelector:select]]; … … 1249 1250 [fileInv setArgument:&watched atIndex:2]; 1250 1251 [self invokeRecursivelyOnFiles:fileInv withPredicate:predicate]; 1251 [[self collection] setImporting:NO];1252 1252 [self writeMetaData]; 1253 1253 } … … 1275 1275 - (void)setFavorite:(BOOL)favorite forPredicate:(SapphirePredicate *)predicate 1276 1276 { 1277 [[self collection] setImporting:YES];1278 1277 SEL select = @selector(setFavorite:); 1279 1278 NSInvocation *fileInv = [NSInvocation invocationWithMethodSignature:[[SapphireFileMetaData class] instanceMethodSignatureForSelector:select]]; … … 1281 1280 [fileInv setArgument:&favorite atIndex:2]; 1282 1281 [self invokeRecursivelyOnFiles:fileInv withPredicate:predicate]; 1283 [[self collection] setImporting:NO];1284 1282 [self writeMetaData]; 1285 1283 } … … 1293 1291 - (void)setToImportFromSource:(NSString *)source forPredicate:(SapphirePredicate *)predicate 1294 1292 { 1295 [[self collection] setImporting:YES];1296 1293 SEL select = @selector(setToImportFromSource:); 1297 1294 NSInvocation *fileInv = [NSInvocation invocationWithMethodSignature:[[SapphireFileMetaData class] instanceMethodSignatureForSelector:select]]; … … 1299 1296 [fileInv setArgument:&source atIndex:2]; 1300 1297 [self invokeRecursivelyOnFiles:fileInv withPredicate:predicate]; 1301 [[self collection] setImporting:NO];1302 1298 [self writeMetaData]; 1303 1299 } … … 1311 1307 - (void)setFileClass:(FileClass)fileClass forPredicate:(SapphirePredicate *)predicate 1312 1308 { 1313 [[self collection] setImporting:YES];1314 1309 SEL select = @selector(setFileClass:); 1315 1310 NSInvocation *fileInv = [NSInvocation invocationWithMethodSignature:[[SapphireFileMetaData class] instanceMethodSignatureForSelector:select]]; … … 1317 1312 [fileInv setArgument:&fileClass atIndex:2]; 1318 1313 [self invokeRecursivelyOnFiles:fileInv withPredicate:predicate]; 1319 [[self collection] setImporting:NO];1320 1314 [self writeMetaData]; 1321 1315 }
