Changeset 572

Show
Ignore:
Timestamp:
06/02/08 14:42:05 (7 months ago)
Author:
gbooker
Message:

Some spinner stuff added; now this works in leopard; not yet tested in take 2
Also removed some NSLogs

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/CoreData/SapphireCompatibilityClasses/SapphireFrontRowCompat.h

    r499 r572  
    356356 */ 
    357357+ (BRTextWithSpinnerController *)textWithSpinnerControllerTitled:(NSString *)title text:(NSString *)text isNetworkDependent:(BOOL)networkDependent scene:(BRRenderScene *)scene; 
     358 
     359/*! 
     360 * @brief Sets whether a BRWaitSpinnerControl should spin or not 
     361 * 
     362 * @param spinner The spinner 
     363 * @param spin YES if the spinner should spin, NO otherwise 
     364 */ 
     365+ (void)setSpinner:(BRWaitSpinnerControl *)spinner toSpin:(BOOL)spin; 
    358366 
    359367/*! 
  • branches/CoreData/SapphireCompatibilityClasses/SapphireFrontRowCompat.m

    r501 r572  
    8080@end 
    8181 
     82@interface BRWaitSpinnerControl (compat) 
     83- (void)setSpins:(BOOL)spin; 
     84@end 
     85 
    8286@implementation SapphireFrontRowCompat 
    8387 
     
    411415} 
    412416 
     417+ (void)setSpinner:(BRWaitSpinnerControl *)spinner toSpin:(BOOL)spin 
     418{ 
     419        if([spinner respondsToSelector:@selector(setSpins:)]) 
     420                [spinner setSpins:spin]; 
     421        else if([spinner respondsToSelector:@selector(startSpinning)]) 
     422        { 
     423                if(spin) 
     424                        [spinner startSpinning]; 
     425                else 
     426                        [spinner stopSpinning]; 
     427        } 
     428} 
     429 
    413430+ (NSArray *)callStackReturnAddressesForException:(NSException *)exception 
    414431{ 
  • branches/CoreData/SapphireFrappliance/FRAppliance/SapphireAppliance.h

    r541 r572  
    3737 */ 
    3838@interface SapphireAppliance : NSObject <BRAppliance, BRApplianceProtocol> { 
     39        BOOL            upgradeNeeded;          /*!< @brief YES if upgrade is needed*/ 
    3940} 
    4041@end 
  • branches/CoreData/SapphireFrappliance/FRAppliance/SapphireAppliance.m

    r570 r572  
    4949@end 
    5050 
    51  
    5251@implementation SapphireAppliance 
    5352 
     
    128127} 
    129128 
     129- (id)upgradeControllerWithScene:(BRRenderScene *)scene 
     130{ 
     131        return [[[SapphireMetaDataUpgrading alloc] initWithScene:scene] autorelease]; 
     132} 
     133 
    130134static SapphireApplianceController *mainCont = nil; 
    131135- (id)applianceController 
    132136{ 
     137        return [self applianceControllerWithScene:nil]; 
     138} 
     139 
     140- (id) applianceControllerWithScene: (id) scene 
     141{ 
     142        // this function is called when your item is selected on the main menu 
    133143        @try { 
    134                 mainCont = [[[SapphireApplianceController alloc] initWithScene: nil] autorelease]; 
     144                if([SapphireApplianceController upgradeNeeded]) 
     145                        return [self upgradeControllerWithScene:scene]; 
     146                mainCont = [[[SapphireApplianceController alloc] initWithScene:scene] autorelease]; 
    135147        } 
    136148        @catch (NSException * e) { 
     
    139151         
    140152        return mainCont; 
    141 } 
    142  
    143 - (id) applianceControllerWithScene: (id) scene 
    144 { 
    145         // this function is called when your item is selected on the main menu 
    146         return ( [[[SapphireApplianceController alloc] initWithScene: scene] autorelease] ); 
    147153} 
    148154 
     
    151157 */ 
    152158-(id)applianceInfo { 
    153         BRApplianceInfo* p = [BRApplianceInfo infoForApplianceBundle:[NSBundle bundleForClass:[self class]]]; 
    154         NSMutableArray *categories = [NSMutableArray array]; 
    155          
    156         NSEnumerator *enumerator = [[p applianceCategoryDescriptors] objectEnumerator]; 
    157         id obj; 
    158         while((obj = [enumerator nextObject]) != nil) { 
    159                 BRApplianceCategory *category = [BRApplianceCategory categoryWithName:[obj valueForKey:@"name"] identifier:[obj valueForKey:@"identifier"] preferredOrder:[[obj valueForKey:@"preferred-order"] floatValue]]; 
    160                 [categories addObject:category]; 
    161         } 
    162         [[self applianceController] setToMountsOnly]; 
    163159        return [BRApplianceInfo infoForApplianceBundle:[NSBundle bundleForClass:[self class]]]; 
    164160} 
     
    167163        NSMutableArray *categories = [NSMutableArray array]; 
    168164         
    169         if([[self applianceController] upgradeNeeded]) 
     165        if([SapphireApplianceController upgradeNeeded]) 
    170166        { 
    171167                categories = [NSArray arrayWithObject: 
     
    180176                        [categories addObject:category]; 
    181177                }                
    182         } 
    183         [[self applianceController] setToMountsOnly]; 
     178               [[self applianceController] setToMountsOnly]; 
     179        } 
    184180        return categories; 
    185181} 
     
    192188{ 
    193189        NSString *identifier = (NSString *)ident; 
    194         SapphireApplianceController *controller = [self applianceController]; 
    195190        if([identifier isEqualToString:UPGRADE_IDENTIFIER]) 
    196191        { 
    197                 NSLog(@"Starting upgrade"); 
    198192                [mainCont release]; 
    199193                mainCont = nil; 
    200                 return [[[SapphireMetaDataUpgrading alloc] initWithScene:nil title:BRLocalizedString(@"Importing Metadata", @"") text:BRLocalizedString(@"Importing Metadata", @"") showBack:NO isNetworkDependent:NO] autorelease]; 
    201         } 
     194                return [self upgradeControllerWithScene:nil]; 
     195        } 
     196        SapphireApplianceController *controller = [self applianceController]; 
    202197        if([identifier isEqualToString:TV_SHOW_IDENTIFIER]) 
    203198                return [controller tvBrowser]; 
  • branches/CoreData/SapphireFrappliance/FRAppliance/SapphireApplianceController.h

    r570 r572  
    3838        SapphireLeopardOnly                     *leoOnly;                               /*!< @brief Leopard only stuff*/ 
    3939        BOOL                                            mountsOnly;                             /*!< @brief YES if only display mounts*/ 
    40         BOOL                                            needsUpgrade;                   /*!< @brief YES if we need to do an upgrade*/ 
    4140} 
    4241 
     
    8685 
    8786/*! 
     87 * @brief Gets whether an upgrade is needed 
     88 * 
     89 * @return YES if upgrade neeeded, NO otherwise 
     90 */ 
     91+ (BOOL)upgradeNeeded; 
     92 
     93/*! 
    8894 * @brief Sets to display mounts only 
    8995 * 
     
    127133 */ 
    128134- (SapphireSettings *)settings; 
    129  
    130 /*! 
    131  * @brief Gets whether an upgrade is needed 
    132  * 
    133  * @return YES if upgrade neeeded, NO otherwise 
    134  */ 
    135 - (BOOL)upgradeNeeded; 
    136135@end 
  • branches/CoreData/SapphireFrappliance/FRAppliance/SapphireApplianceController.m

    r570 r572  
    168168} 
    169169 
    170 - (id) initWithScene: (BRRenderScene *) scene 
    171 
    172         self = [super initWithScene:scene]; 
    173          
    174         //Setup the theme's scene 
    175         SapphireTheme *theme = [SapphireTheme sharedTheme]; 
    176         [theme setScene:[self scene]]; 
    177          
     170+ (BOOL)upgradeNeeded 
     171
    178172        NSFileManager *fm = [NSFileManager defaultManager]; 
    179173        NSString *storeFile = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/Sapphire/metaData.sapphireData"]; 
     
    181175        NSString *plistFile = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/Sapphire/metaData.plist"]; 
    182176        BOOL oldExists = [fm fileExistsAtPath:plistFile]; 
    183         if(!exists && oldExists) 
    184         { 
    185                 NSLog(@"Detected upgrade needed"); 
    186                 needsUpgrade = YES; 
    187                 return self; 
    188         } 
     177        return !exists && oldExists; 
     178
     179 
     180- (id) initWithScene: (BRRenderScene *) scene 
     181
     182        self = [super initWithScene:scene]; 
     183         
     184        //Setup the theme's scene 
     185        SapphireTheme *theme = [SapphireTheme sharedTheme]; 
     186        [theme setScene:[self scene]]; 
     187         
     188        NSString *storeFile = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/Sapphire/metaData.sapphireData"]; 
    189189        moc = [[NSManagedObjectContext alloc] init]; 
    190190        [moc setUndoManager:nil]; 
     
    321321} 
    322322 
    323 - (BOOL)upgradeNeeded 
    324 { 
    325         return needsUpgrade; 
    326 } 
    327  
    328323- (void)setMenuFromSettings 
    329324{ 
  • branches/CoreData/SapphireFrappliance/FRAppliance/SapphireMetaDataUpgrading.h

    r571 r572  
    1919 */ 
    2020 
    21 #import <SapphireCompatClasses/SapphireTextWithSpinnerController.h> 
     21#import <SapphireCompatClasses/SapphireCenteredMenuController.h> 
    2222 
    23 @interface SapphireMetaDataUpgrading : SapphireTextWithSpinnerController { 
     23@interface SapphireMetaDataUpgrading : SapphireCenteredMenuController { 
     24        BRWaitSpinnerControl    *spinner;                       /*!< @brief The spinner*/ 
     25        BRTextControl                   *status;                        /*!< @brief Status message*/ 
    2426        NSManagedObjectContext  *moc;                           /*!< @brief The context*/ 
    2527} 
  • branches/CoreData/SapphireFrappliance/FRAppliance/SapphireMetaDataUpgrading.m

    r571 r572  
    2323#import "SapphireMetaDataSupport.h" 
    2424 
     25@interface SapphireMetaDataUpgrading (private) 
     26- (void)layoutFrame; 
     27@end 
     28 
    2529@implementation SapphireMetaDataUpgrading 
    2630 
    27 - (id) initWithScene: (BRRenderScene *) scene title:(id)fp12 text:(id)fp16 showBack:(BOOL)fp20 isNetworkDependent:(BOOL)fp24 
     31- (id) initWithScene: (BRRenderScene *) scene 
    2832{ 
    29         self = [super initWithScene:scene title:fp12 text:fp16 showBack:fp20 isNetworkDependent:fp24]; 
     33        self = [super initWithScene:scene]; 
    3034        if(self == nil) 
    3135                return self; 
     36 
     37        [self setListTitle:BRLocalizedString(@"Upgrading Metadata", @"")]; 
    3238 
    3339        moc = [[NSManagedObjectContext alloc] init]; 
     
    4450        NSError *error = nil; 
    4551        [coord addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]; 
     52         
     53        status = [SapphireFrontRowCompat newTextControlWithScene:scene]; 
     54        if([BRWaitSpinnerControl instancesRespondToSelector:@selector(initWithScene:)]) 
     55                spinner = [[BRWaitSpinnerControl alloc] initWithScene:scene]; 
     56        else 
     57                spinner = [[BRWaitSpinnerControl alloc] init]; 
     58         
     59        if([SapphireFrontRowCompat usingFrontRow] && ![SapphireFrontRowCompat usingTakeTwo]) 
     60        { 
     61                [spinner release]; 
     62                spinner = [[BRWaitSpinnerLayer alloc] init]; 
     63        } 
     64         
     65        [self layoutFrame]; 
     66         
     67        [self addControl:status]; 
     68        if([SapphireFrontRowCompat usingFrontRow] && ![SapphireFrontRowCompat usingTakeTwo]) 
     69                [SapphireFrontRowCompat addSublayer:spinner toControl:self]; 
     70        else 
     71                [self addControl:spinner]; 
    4672 
    4773        return self; 
     
    4975} 
    5076 
     77- (void)layoutFrame 
     78{ 
     79        /*title*/ 
     80        NSRect frame = [SapphireFrontRowCompat frameOfController:self]; 
     81        frame.origin.y += frame.size.height / 2.0f; 
     82        frame.origin.x = frame.size.width / 2.0f; 
     83        frame.size.width = frame.size.height = frame.size.height / 6.0f; 
     84        [spinner setFrame:frame] ; 
     85} 
     86 
    5187- (void) dealloc 
    5288{ 
     89        [spinner release]; 
     90        [status release]; 
    5391        [moc release]; 
    5492        [super dealloc]; 
    5593} 
    5694 
     95- (void)realSetCurrentFile:(NSString *)file 
     96{ 
     97        if(file == nil) 
     98                file = @""; 
     99        [SapphireFrontRowCompat setText:file withAtrributes:[[BRThemeInfo sharedTheme] paragraphTextAttributes] forControl:status]; 
     100         
     101        NSRect master = [SapphireFrontRowCompat frameOfController:self]; 
     102        NSSize progressSize = [SapphireFrontRowCompat textControl:status renderedSizeWithMaxSize:NSMakeSize(master.size.width * 1.0f/2.0f, master.size.height * 0.3f)]; 
     103         
     104        NSRect frame; 
     105        frame.origin.x =  (master.size.width) * 0.1f; 
     106        frame.origin.y = (master.size.height * 0.12f) + master.origin.y; 
     107        frame.size = progressSize; 
     108        [status setFrame:frame]; 
     109} 
     110 
    57111- (void)setCurrentFile:(NSString *)file 
    58112{ 
     113        [self performSelectorOnMainThread:@selector(realSetCurrentFile:) withObject:file waitUntilDone:YES]; 
    59114} 
    60115 
    61116- (void)finished 
    62117{ 
    63         [[self stack] pop]; 
     118        [[self stack] popController]; 
    64119} 
    65120 
     
    76131- (void)wasPushed 
    77132{ 
    78         NSLog(@"Upgrade pushed"); 
    79133        [super wasPushed]; 
     134        [SapphireFrontRowCompat setSpinner:spinner toSpin:YES]; 
    80135        [NSThread detachNewThreadSelector:@selector(doUpgrade:) toTarget:self withObject:nil]; 
    81136} 
  • branches/CoreData/SapphireFrappliance/MetaData/Support/SapphireMetaDataSupport.m

    r571 r572  
    237237                        NSLog(@"%@", error); 
    238238        } 
    239          
    240         NSLog(@"Sapphire Import Complete"); 
    241239} 
    242240 
  • branches/CoreData/SapphireFrappliance/Sapphire.xcodeproj/project.pbxproj

    r570 r572  
    712712                                F5B418360D0B1EA100BDD361 /* SapphireImportHelper.h */, 
    713713                                F5B418370D0B1EA100BDD361 /* SapphireImportHelper.m */, 
    714                                 F5B418640D0B28A200BDD361 /* main_helper.m */, 
    715714                                F59BB9160DF43C3E00EC11A2 /* SapphireMetaDataUpgrading.h */, 
    716715                                F59BB9170DF43C3E00EC11A2 /* SapphireMetaDataUpgrading.m */, 
     716                                F5B418640D0B28A200BDD361 /* main_helper.m */, 
    717717                        ); 
    718718                        path = FRAppliance;