+ if(!(found && [[NSFileManager defaultManager] fileExistsAtPath: latestLog]))
+ return nil;
+
+ if( !previouslySeen )
+ {
+ [[NSUserDefaults standardUserDefaults] setInteger:year forKey:@"LatestCrashReportYear"];
+ [[NSUserDefaults standardUserDefaults] setInteger:month forKey:@"LatestCrashReportMonth"];
+ [[NSUserDefaults standardUserDefaults] setInteger:day forKey:@"LatestCrashReportDay"];
+ [[NSUserDefaults standardUserDefaults] setInteger:hours forKey:@"LatestCrashReportHours"];
+ }
+ return latestLog;
+}
+
+- (NSString *)latestCrashLogPath
+{
+ return [self latestCrashLogPathPreviouslySeen:YES];
+}
+
+- (void)lookForCrashLog
+{
+ NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+
+ // This pref key doesn't exists? this VLC is an upgrade, and this crash log come from previous version
+ BOOL areCrashLogsTooOld = ![[NSUserDefaults standardUserDefaults] integerForKey:@"LatestCrashReportYear"];
+ NSString * latestLog = [self latestCrashLogPathPreviouslySeen:NO];
+ if( latestLog && !areCrashLogsTooOld )
+ [self performSelectorOnMainThread:@selector(notifyCrashLogToUser:) withObject:latestLog waitUntilDone:NO];
+
+ [pool release];
+}
+
+- (void)notifyCrashLogToUser:(NSString *)crashLog
+{
+ int ret = NSRunInformationalAlertPanel(_NS("VLC has previously crashed"),
+ _NS("VLC has previously crashed, do you want to send an email with the crash to VLC's team?"),
+ _NS("Send"), _NS("Don't Send"), nil, nil);
+ if( ret == NSAlertDefaultReturn )
+ {
+ [self mailCrashLog:crashLog withUserComment:@"<Explain here what you were doing when VLC crashed>"];
+ }
+}
+
+- (IBAction)openCrashLog:(id)sender
+{
+ NSString * latestLog = [self latestCrashLogPath];
+ if( latestLog )