- Timestamp:
- 04/26/09 17:24:48 (3 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
branches/CoreData/SapphireFrappliance/MetaDataImporting/SapphirePosterChooser.m
r744 r827 25 25 #import "SapphireMedia.h" 26 26 #import "SapphireMetaData.h" 27 #import "SapphireWaitDisplay.h" 27 28 #import "SapphireDirectoryMetaData.h" 28 29 #import <SapphireCompatClasses/SapphireFrontRowCompat.h> 29 30 #import "SapphireApplianceController.h" 31 32 #import "NSImage-Extensions.h" 30 33 31 34 NSData *CreateBitmapDataFromImage(CGImageRef image, unsigned int width, unsigned int height); … … 94 97 } 95 98 99 - (void)setRefreshInvokation: (NSInvocation *)invoke; 100 { 101 [refreshInvoke release]; 102 refreshInvoke = [invoke retain]; 103 } 104 96 105 - (void) resetLayout 97 106 { … … 147 156 } 148 157 158 - (BRLayerController *)doRefresh 159 { 160 [refreshInvoke invoke]; 161 BRLayerController *ret = nil; 162 [refreshInvoke getReturnValue:&ret]; 163 return ret; 164 } 165 149 166 - (void) itemSelected: (long) row 150 167 { 151 168 /*User made a selection*/ 152 // if(selection==0) 153 // { 154 /*User requested a menu refresh*/ 155 // [self resetLayout]; 156 // } 157 // else 158 // { 159 selectedPoster = row; 160 [[self stack] popController]; 161 // } 169 if ( refreshInvoke != nil && row == [posters count] ) 170 { 171 NSInvocation *invoke = [NSInvocation invocationWithMethodSignature: [self methodSignatureForSelector: @selector(doRefresh)]]; 172 [invoke setSelector: @selector(doRefresh)]; 173 [invoke setTarget: self]; 174 175 SapphireWaitDisplay *wait = [[SapphireWaitDisplay alloc] initWithScene: [self scene] 176 title: BRLocalizedString(@"Getting artwork selection", @"Getting artwork selection") 177 invokation: invoke]; 178 [[self stack] swapController:wait]; 179 } 180 else 181 { 182 selectedPoster = row; 183 if ( [[posters objectAtIndex:selectedPoster] isKindOfClass:[NSImage class]] ) 184 [[posters objectAtIndex:row] writeToFile:[meta coverArtPath] atomically:YES]; 185 [[self stack] popController]; 186 } 162 187 } 163 188 … … 186 211 [posterMarch setIconSource: self]; 187 212 [[self list] setDatasource:self]; 213 } 214 215 - (void)setPosterImages:(NSArray *)posterList 216 { 217 posters = [posterList retain]; 218 219 [posterMarch release]; 220 posterMarch = nil; 221 222 [[self list] setDatasource: self]; 188 223 } 189 224 … … 234 269 235 270 NSRect master = [SapphireFrontRowCompat frameOfController:self]; 236 [fileInfoText setMaximumSize:NSMakeSize(master.size.width * 2.0f/3.0f, master.size.height * 0.4f)]; 237 NSSize txtSize = [fileInfoText renderedSize]; 271 NSSize txtSize = [SapphireFrontRowCompat textControl:fileInfoText renderedSizeWithMaxSize:NSMakeSize(master.size.width * 2.0f/3.0f, master.size.height * 0.4f)]; 238 272 NSRect frame; 239 273 frame.origin.x = (master.size.width - txtSize.width) * 0.5f; … … 274 308 - (long) itemCount 275 309 { 310 if ( refreshInvoke != nil ) 311 return [posters count] + 1; 312 276 313 return [posters count]; 277 314 } … … 281 318 { 282 319 BRAdornedMenuItemLayer *result = [SapphireFrontRowCompat textMenuItemForScene:[self scene] folder:NO]; 283 // if(row==0)284 // [SapphireFrontRowCompat setTitle:BRLocalizedString(@"< Refresh Posters >", @"Reload posterimages") forMenu:result];285 //else286 [SapphireFrontRowCompat setTitle:[NSString stringWithFormat:@"Version %2d",row+1] forMenu:result];320 if ( refreshInvoke != nil && row == [posters count] ) 321 [SapphireFrontRowCompat setTitle:BRLocalizedString(@"Refresh", @"Reload images") forMenu:result]; 322 else 323 [SapphireFrontRowCompat setTitle:[NSString stringWithFormat:@"Version %2d",row+1] forMenu:result]; 287 324 return result; 288 325 } … … 292 329 if(row > [posters count]) 293 330 return nil; 294 else 295 return [NSString stringWithFormat:@"Version %2d",row+1]; 331 332 if (refreshInvoke != nil && row == [posters count]) 333 return BRLocalizedString(@"Refresh", @"Reload images"); 334 335 return [NSString stringWithFormat:@"Version %2d",row+1]; 296 336 } 297 337 … … 438 478 if(posterMarch != nil) 439 479 return nil; 480 440 481 SapphireMediaPreview *preview = [[SapphireMediaPreview alloc] initWithScene:[self scene]]; 441 SapphireMedia *asset = [[SapphireMedia alloc] initWithMediaURL:[NSURL fileURLWithPath:@"none"]];442 NSString *poster = [posters objectAtIndex:row];443 NSString *posterDest=[NSString stringWithFormat:@"%@/%@",444 [applicationSupportDir() stringByAppendingPathComponent:@"Poster_Buffer"],445 [poster lastPathComponent]];446 [preview setShowsMetadataImmediately:NO];447 SapphireDirectoryMetaData *parent = [meta parent];448 [preview setMetaData:meta inMetaData:parent];449 482 [preview setShowsMetadataImmediately:YES]; 450 [asset setImagePath:posterDest]; 451 [preview setAsset:asset]; 452 [asset release]; 453 483 484 if ( row < [posters count] ) 485 { 486 [preview setMetaData:meta inMetaData:[meta parent]]; 487 488 SapphireMedia *asset = [[SapphireMedia alloc] initWithMediaURL:[NSURL fileURLWithPath:@"none"]]; 489 id poster = [posters objectAtIndex:row]; 490 491 if ( [poster isKindOfClass:[NSString class]] ) 492 { 493 NSString *posterDest = [NSString stringWithFormat:@"%@/%@", [applicationSupportDir() stringByAppendingPathComponent:@"Poster_Buffer"], 494 [poster lastPathComponent]]; 495 [asset setImagePath: posterDest]; 496 } 497 else 498 { 499 [asset setImage: poster]; 500 } 501 502 [preview setAsset:asset]; 503 [asset release]; 504 } 505 else if ( row == [posters count] ) 506 { 507 NSMutableDictionary *refreshMeta = [[NSMutableDictionary alloc] init]; 508 [refreshMeta setObject: BRLocalizedString( @"Refresh the artwork selection", @"Refresh the artwork selection" ) forKey: META_TITLE_KEY]; 509 [preview setUtilityData: refreshMeta]; 510 } 511 454 512 return [preview autorelease]; 455 513 }
