Mac OS X gui: Check for update on startup.
authorPierre d'Herbemont <pdherbemont@videolan.org>
Tue, 27 Mar 2007 23:17:37 +0000 (23:17 +0000)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Tue, 27 Mar 2007 23:17:37 +0000 (23:17 +0000)
modules/gui/macosx/intf.m
modules/gui/macosx/update.m

index 4555b94..c1aad0c 100644 (file)
@@ -737,6 +737,15 @@ static VLCMain *_o_sharedMainInstance = nil;
     return YES;
 }
 
+- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
+{
+    /* Check for update silently on startup */
+    NSLog(@"checking for update");
+    if ( !nib_update_loaded )
+        nib_update_loaded = [NSBundle loadNibNamed:@"Update" owner:self];
+    [NSThread detachNewThreadSelector:@selector(checkForUpdate) toTarget:o_update withObject:NULL];
+}
+
 /* Listen to the remote in exclusive mode, only when VLC is the active
    application */
 - (void)applicationDidBecomeActive:(NSNotification *)aNotification
@@ -1844,12 +1853,9 @@ static VLCMain *_o_sharedMainInstance = nil;
 - (IBAction)checkForUpdate:(id)sender
 {
     if ( !nib_update_loaded )
-    {
         nib_update_loaded = [NSBundle loadNibNamed:@"Update" owner:self];
-        [o_update showUpdateWindow];
-    } else {
-        [o_update showUpdateWindow];
-    }
+
+    [o_update showUpdateWindow];
 }
 
 - (IBAction)openReadMe:(id)sender
index ff08a8c..39f9745 100644 (file)
@@ -145,7 +145,7 @@ static VLCUpdate *_o_sharedInstance = nil;
     NSString * pathToReleaseNote;
     pathToReleaseNote = [NSString stringWithFormat: \
         @"/tmp/vlc_releasenote_%d.tmp", mdate()];
-    
+
     if( p_uit )
     {
         p_uit->i_rs = UPDATE_RELEASE_STATUS_NEWER;
@@ -205,6 +205,10 @@ static VLCUpdate *_o_sharedInstance = nil;
                             p_uit->mirror.psz_type );
                     /* make sure that we perform this check only once */
                     releaseChecked = YES;
+                    /* Make sure the update window is showed in case we have something */
+                    [o_update_window center];
+                    [o_update_window makeKeyAndOrderFront: self];
+
                 }
                 else if(! releaseChecked )
                 {
@@ -219,7 +223,7 @@ static VLCUpdate *_o_sharedInstance = nil;
         }
 
         update_iterator_Delete( p_uit );
-        
+
         /* wait for our release notes if necessary, since the download is done
          * by another thread -- this does usually take 300000 to 500000 ms */
         if( gettingReleaseNote )