Fixed some possible leaks, and added isAfterTiger, ... to MGMSystemInfo

This commit is contained in:
GRMrGecko 2010-01-12 14:05:09 +00:00
parent 3002113549
commit f54a3317f6
14 changed files with 178 additions and 307 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
build
*.zip
GeckoReporter

View File

@ -19,6 +19,7 @@
IBOutlet NSButton *cancelButton; IBOutlet NSButton *cancelButton;
MGMSender *mailSender; MGMSender *mailSender;
} }
+ (id)sharedBugWindow;
- (void)setButtonsEnabled:(BOOL)flag; - (void)setButtonsEnabled:(BOOL)flag;
- (void)close; - (void)close;
- (IBAction)send:(id)sender; - (IBAction)send:(id)sender;

View File

@ -13,7 +13,7 @@
#import "MGMLog.h" #import "MGMLog.h"
@implementation MGMBugWindow @implementation MGMBugWindow
+ (id)new { + (id)sharedBugWindow {
return [[self alloc] init]; return [[self alloc] init];
} }
- (id)init { - (id)init {
@ -56,7 +56,7 @@
- (IBAction)send:(id)sender { - (IBAction)send:(id)sender {
[[NSUserDefaults standardUserDefaults] setObject:[userEmailField stringValue] forKey:MGMGRUserEmail]; [[NSUserDefaults standardUserDefaults] setObject:[userEmailField stringValue] forKey:MGMGRUserEmail];
if (mailSender==nil) { if (mailSender==nil) {
mailSender = [[MGMSender new] retain]; mailSender = [MGMSender new];
[mailSender sendBug:[[bugView textStorage] string] reproduce:[[reproduceView textStorage] string] delegate:self]; [mailSender sendBug:[[bugView textStorage] string] reproduce:[[reproduceView textStorage] string] delegate:self];
} }
[sendButton setTitle:MGMLocalized(@"Sending...", nil)]; [sendButton setTitle:MGMLocalized(@"Sending...", nil)];

View File

@ -20,6 +20,7 @@
IBOutlet NSButton *cancelButton; IBOutlet NSButton *cancelButton;
MGMSender *mailSender; MGMSender *mailSender;
} }
+ (id)sharedContactWindow;
- (void)setButtonsEnabled:(BOOL)flag; - (void)setButtonsEnabled:(BOOL)flag;
- (void)close; - (void)close;
- (IBAction)send:(id)sender; - (IBAction)send:(id)sender;

View File

@ -13,7 +13,7 @@
#import "MGMLog.h" #import "MGMLog.h"
@implementation MGMContactWindow @implementation MGMContactWindow
+ (id)new { + (id)sharedContactWindow {
return [[self alloc] init]; return [[self alloc] init];
} }
- (id)init { - (id)init {
@ -67,7 +67,7 @@
[[NSUserDefaults standardUserDefaults] setObject:[userEmailField stringValue] forKey:MGMGRUserEmail]; [[NSUserDefaults standardUserDefaults] setObject:[userEmailField stringValue] forKey:MGMGRUserEmail];
[[NSUserDefaults standardUserDefaults] setObject:[userNameField stringValue] forKey:MGMGRUserName]; [[NSUserDefaults standardUserDefaults] setObject:[userNameField stringValue] forKey:MGMGRUserName];
if (mailSender==nil) { if (mailSender==nil) {
mailSender = [[MGMSender new] retain]; mailSender = [MGMSender new];
[mailSender sendMessage:[[messageView textStorage] string] subject:[subjectPopUp titleOfSelectedItem] delegate:self]; [mailSender sendMessage:[[messageView textStorage] string] subject:[subjectPopUp titleOfSelectedItem] delegate:self];
} }
[sendButton setTitle:MGMLocalized(@"Sending...", nil)]; [sendButton setTitle:MGMLocalized(@"Sending...", nil)];

View File

@ -12,9 +12,9 @@
@implementation MGMFeedback @implementation MGMFeedback
- (IBAction)openBugReport:(id)sender { - (IBAction)openBugReport:(id)sender {
[MGMBugWindow new]; [MGMBugWindow sharedBugWindow];
} }
- (IBAction)openContact:(id)sender { - (IBAction)openContact:(id)sender {
[MGMContactWindow new]; [MGMContactWindow sharedContactWindow];
} }
@end @end

View File

@ -31,7 +31,7 @@ extern NSString * const MGMSaveLastDate;
NSMenu *appMainMenu; NSMenu *appMainMenu;
} }
+ (id)newWindowWithReport:(NSString *)theReportFile reportDate:(NSDate *)theReportDate; + (id)sharedWindowWithReport:(NSString *)theReportFile reportDate:(NSDate *)theReportDate;
- (id)initWithReport:(NSString *)theReportFile reportDate:(NSDate *)theReportDate; - (id)initWithReport:(NSString *)theReportFile reportDate:(NSDate *)theReportDate;
- (void)setButtonsEnabled:(BOOL)flag; - (void)setButtonsEnabled:(BOOL)flag;
- (void)close; - (void)close;

View File

@ -16,7 +16,7 @@
NSString * const MGMSaveLastDate = @"MGMSaveLastDate"; NSString * const MGMSaveLastDate = @"MGMSaveLastDate";
@implementation MGMReportWindow @implementation MGMReportWindow
+ (id)newWindowWithReport:(NSString *)theReportFile reportDate:(NSDate *)theReportDate { + (id)sharedWindowWithReport:(NSString *)theReportFile reportDate:(NSDate *)theReportDate {
return [[self alloc] initWithReport:theReportFile reportDate:theReportDate]; return [[self alloc] initWithReport:theReportFile reportDate:theReportDate];
} }
- (id)initWithReport:(NSString *)theReportFile reportDate:(NSDate *)theReportDate { - (id)initWithReport:(NSString *)theReportFile reportDate:(NSDate *)theReportDate {
@ -29,7 +29,7 @@ NSString * const MGMSaveLastDate = @"MGMSaveLastDate";
reportDate = [theReportDate retain]; reportDate = [theReportDate retain];
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
NSUserDefaults *userDefautls = [NSUserDefaults standardUserDefaults]; NSUserDefaults *userDefautls = [NSUserDefaults standardUserDefaults];
MGMSystemInfo *sysInfo = [MGMSystemInfo new]; MGMSystemInfo *sysInfo = [[MGMSystemInfo new] autorelease];
NSString *applicationName = [sysInfo applicationName]; NSString *applicationName = [sysInfo applicationName];
appMainMenu = [[[NSApplication sharedApplication] mainMenu] retain]; appMainMenu = [[[NSApplication sharedApplication] mainMenu] retain];
@ -91,7 +91,7 @@ NSString * const MGMSaveLastDate = @"MGMSaveLastDate";
- (IBAction)sendReport:(id)sender { - (IBAction)sendReport:(id)sender {
[[NSUserDefaults standardUserDefaults] setObject:[userEmailField stringValue] forKey:MGMGRUserEmail]; [[NSUserDefaults standardUserDefaults] setObject:[userEmailField stringValue] forKey:MGMGRUserEmail];
if (mailSender==nil) { if (mailSender==nil) {
mailSender = [[MGMSender new] retain]; mailSender = [MGMSender new];
[mailSender sendReport:reportFile reportDate:reportDate userReport:[[userReportView textStorage] string] delegate:self]; [mailSender sendReport:reportFile reportDate:reportDate userReport:[[userReportView textStorage] string] delegate:self];
} }
[sendButton setTitle:MGMLocalized(@"Sending...", nil)]; [sendButton setTitle:MGMLocalized(@"Sending...", nil)];
@ -101,7 +101,7 @@ NSString * const MGMSaveLastDate = @"MGMSaveLastDate";
[[NSUserDefaults standardUserDefaults] setObject:[userEmailField stringValue] forKey:MGMGRUserEmail]; [[NSUserDefaults standardUserDefaults] setObject:[userEmailField stringValue] forKey:MGMGRUserEmail];
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithBool:YES] forKey:MGMGRSendAll]; [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithBool:YES] forKey:MGMGRSendAll];
if (mailSender==nil) { if (mailSender==nil) {
mailSender = [[MGMSender new] retain]; mailSender = [MGMSender new];
[mailSender sendReport:reportFile reportDate:reportDate userReport:[[userReportView textStorage] string] delegate:self]; [mailSender sendReport:reportFile reportDate:reportDate userReport:[[userReportView textStorage] string] delegate:self];
} }
[sendAllButton setTitle:MGMLocalized(@"Sending...", nil)]; [sendAllButton setTitle:MGMLocalized(@"Sending...", nil)];

View File

@ -12,8 +12,6 @@
#import "MGMSystemInfo.h" #import "MGMSystemInfo.h"
#import "MGMLog.h" #import "MGMLog.h"
static MGMReporter *MGMReporterSingleton = nil;
NSString * const MGMReportsPath = @"~/Library/Logs/CrashReporter"; NSString * const MGMReportsPath = @"~/Library/Logs/CrashReporter";
NSString * const MGMGRDoneNotification = @"MGMGRDoneNotification"; NSString * const MGMGRDoneNotification = @"MGMGRDoneNotification";
NSString * const MGMGRUserEmail = @"MGMGRUserEmail"; NSString * const MGMGRUserEmail = @"MGMGRUserEmail";
@ -24,12 +22,7 @@ NSString * const MGMGRIgnoreAll = @"MGMGRIgnoreAll";
@implementation MGMReporter @implementation MGMReporter
+ (id)sharedReporter { + (id)sharedReporter {
@synchronized(self) { return [[self alloc] init];
if (MGMReporterSingleton == nil) {
MGMReporterSingleton = [[self alloc] init];
}
}
return MGMReporterSingleton;
} }
- (id)init { - (id)init {
if (self = [super init]) { if (self = [super init]) {
@ -38,7 +31,7 @@ NSString * const MGMGRIgnoreAll = @"MGMGRIgnoreAll";
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if ([userDefaults objectForKey:MGMGRIgnoreAll]==nil || ![[userDefaults objectForKey:MGMGRIgnoreAll] boolValue]) { if ([userDefaults objectForKey:MGMGRIgnoreAll]==nil || ![[userDefaults objectForKey:MGMGRIgnoreAll] boolValue]) {
NSFileManager *manager = [NSFileManager defaultManager]; NSFileManager *manager = [NSFileManager defaultManager];
NSString *applicationName = [[MGMSystemInfo new] applicationEXECName]; NSString *applicationName = [[[MGMSystemInfo new] autorelease] applicationEXECName];
if (lastDate!=nil) { if (lastDate!=nil) {
[lastDate release]; [lastDate release];
lastDate = nil; lastDate = nil;
@ -68,11 +61,11 @@ NSString * const MGMGRIgnoreAll = @"MGMGRIgnoreAll";
MGMLog(@"Latest Crash Report %@, %@", lastDate, lastCrashFile); MGMLog(@"Latest Crash Report %@, %@", lastDate, lastCrashFile);
if ([userDefaults objectForKey:MGMGRSendAll]!=nil && [[userDefaults objectForKey:MGMGRSendAll] boolValue]) { if ([userDefaults objectForKey:MGMGRSendAll]!=nil && [[userDefaults objectForKey:MGMGRSendAll] boolValue]) {
if (mailSender==nil) { if (mailSender==nil) {
mailSender = [[MGMSender new] retain]; mailSender = [MGMSender new];
[mailSender sendReport:lastCrashFile reportDate:lastDate userReport:@"User set to send all." delegate:self]; [mailSender sendReport:lastCrashFile reportDate:lastDate userReport:@"User set to send all." delegate:self];
} }
} else { } else {
[MGMReportWindow newWindowWithReport:lastCrashFile reportDate:lastDate]; [MGMReportWindow sharedWindowWithReport:lastCrashFile reportDate:lastDate];
} }
} else { } else {
[[NSNotificationCenter defaultCenter] postNotificationName:MGMGRDoneNotification object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], MGMSaveLastDate, nil]]; [[NSNotificationCenter defaultCenter] postNotificationName:MGMGRDoneNotification object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], MGMSaveLastDate, nil]];

View File

@ -111,8 +111,8 @@ NSString * const MGMGRLogFiles = @"MGMGRLogFiles";
return data; return data;
} }
- (NSDictionary *)defaultObjects { - (NSDictionary *)defaultObjects {
MGMSystemInfo *sysInfo = [MGMSystemInfo new]; MGMSystemInfo *sysInfo = [[MGMSystemInfo new] autorelease];
NSMutableDictionary *objects = [NSMutableDictionary new]; NSMutableDictionary *objects = [NSMutableDictionary dictionary];
[objects setObject:[sysInfo frameworkVersion] forKey:@"GRVersion"]; [objects setObject:[sysInfo frameworkVersion] forKey:@"GRVersion"];
[objects setObject:[sysInfo applicationName] forKey:@"Application"]; [objects setObject:[sysInfo applicationName] forKey:@"Application"];
[objects setObject:[sysInfo applicationIdentifier] forKey:@"Application Identifier"]; [objects setObject:[sysInfo applicationIdentifier] forKey:@"Application Identifier"];
@ -153,7 +153,7 @@ NSString * const MGMGRLogFiles = @"MGMGRLogFiles";
delegate = theDelegate; delegate = theDelegate;
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
MGMSystemInfo *sysInfo = [MGMSystemInfo new]; MGMSystemInfo *sysInfo = [[MGMSystemInfo new] autorelease];
NSString *email = nil, *url = nil, *userEmail = nil, *logFiles = nil; NSString *email = nil, *url = nil, *userEmail = nil, *logFiles = nil;
BOOL reportAttached = NO; BOOL reportAttached = NO;
@ -233,7 +233,7 @@ NSString * const MGMGRLogFiles = @"MGMGRLogFiles";
delegate = theDelegate; delegate = theDelegate;
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
MGMSystemInfo *sysInfo = [MGMSystemInfo new]; MGMSystemInfo *sysInfo = [[MGMSystemInfo new] autorelease];
NSString *email = nil, *url = nil, *userEmail = nil; NSString *email = nil, *url = nil, *userEmail = nil;
if ([userDefaults objectForKey:MGMGRBugsEmail]!=nil && ![[userDefaults objectForKey:MGMGRBugsEmail] isEqualToString:@""]) { if ([userDefaults objectForKey:MGMGRBugsEmail]!=nil && ![[userDefaults objectForKey:MGMGRBugsEmail] isEqualToString:@""]) {
@ -293,7 +293,7 @@ NSString * const MGMGRLogFiles = @"MGMGRLogFiles";
delegate = theDelegate; delegate = theDelegate;
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
MGMSystemInfo *sysInfo = [MGMSystemInfo new]; MGMSystemInfo *sysInfo = [[MGMSystemInfo new] autorelease];
NSString *email = nil, *url = nil, *userEmail = nil, *userName = nil; NSString *email = nil, *url = nil, *userEmail = nil, *userName = nil;
if ([userDefaults objectForKey:MGMGRBugsEmail]!=nil && ![[userDefaults objectForKey:MGMGRBugsEmail] isEqualToString:@""]) { if ([userDefaults objectForKey:MGMGRBugsEmail]!=nil && ![[userDefaults objectForKey:MGMGRBugsEmail] isEqualToString:@""]) {
@ -360,8 +360,6 @@ NSString * const MGMGRLogFiles = @"MGMGRLogFiles";
MGMLog(@"%@", [error localizedDescription]); MGMLog(@"%@", [error localizedDescription]);
if (delegate!=nil && [delegate respondsToSelector:@selector(sendError:)]) if (delegate!=nil && [delegate respondsToSelector:@selector(sendError:)])
[delegate sendError:error]; [delegate sendError:error];
[self release];
self = nil;
} else { } else {
[receivedData setLength:0]; [receivedData setLength:0];
} }
@ -376,7 +374,6 @@ NSString * const MGMGRLogFiles = @"MGMGRLogFiles";
if (delegate!=nil && [delegate respondsToSelector:@selector(sendError:)]) if (delegate!=nil && [delegate respondsToSelector:@selector(sendError:)])
[delegate sendError:error]; [delegate sendError:error];
[self release]; [self release];
self = nil;
} }
- (void)connectionDidFinishLoading:(NSURLConnection *)connection { - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
@ -385,7 +382,5 @@ NSString * const MGMGRLogFiles = @"MGMGRLogFiles";
if (delegate!=nil && [delegate respondsToSelector:@selector(sendFinished:)]) if (delegate!=nil && [delegate respondsToSelector:@selector(sendFinished:)])
[delegate sendFinished:receivedString]; [delegate sendFinished:receivedString];
} }
[self release];
self = nil;
} }
@end @end

View File

@ -25,6 +25,13 @@
- (int)OSBugFixVersion; - (int)OSBugFixVersion;
- (NSString *)OSVersion; - (NSString *)OSVersion;
- (NSString *)OSVersionName; - (NSString *)OSVersionName;
- (BOOL)isAfterCheetah;
- (BOOL)isAfterPuma;
- (BOOL)isAfterJaguar;
- (BOOL)isAfterPanther;
- (BOOL)isAfterTiger;
- (BOOL)isAfterLeopard;
- (BOOL)isAfterSnowLeopard;
- (NSString *)language; - (NSString *)language;
- (NSString *)applicationIdentifier; - (NSString *)applicationIdentifier;
- (NSString *)applicationName; - (NSString *)applicationName;

View File

@ -31,10 +31,6 @@ NSString * const MGMModel = @"hw.model";
@end @end
@implementation MGMSystemInfo @implementation MGMSystemInfo
+ (id)new {
return [[[self alloc] init] autorelease];
}
- (int)valueFromSystem:(NSString *)theName { - (int)valueFromSystem:(NSString *)theName {
int value = 0; int value = 0;
unsigned long length = sizeof(value); unsigned long length = sizeof(value);
@ -207,6 +203,62 @@ NSString * const MGMModel = @"hw.model";
return @"Unknown"; return @"Unknown";
} }
- (BOOL)isAfterCheetah {
if ([self OSMajorVersion]==10) {
int minorVersion = [self OSMinorVersion];
return (minorVersion=>0);
}
return NO;
}
- (BOOL)isAfterPuma {
if ([self OSMajorVersion]==10) {
int minorVersion = [self OSMinorVersion];
return (minorVersion=>1);
}
return NO;
}
- (BOOL)isAfterJaguar {
if ([self OSMajorVersion]==10) {
int minorVersion = [self OSMinorVersion];
return (minorVersion=>2);
}
return NO;
}
- (BOOL)isAfterPanther {
if ([self OSMajorVersion]==10) {
int minorVersion = [self OSMinorVersion];
return (minorVersion=>3);
}
return NO;
}
- (BOOL)isAfterTiger {
if ([self OSMajorVersion]==10) {
int minorVersion = [self OSMinorVersion];
return (minorVersion=>4);
}
return NO;
}
- (BOOL)isAfterLeopard {
if ([self OSMajorVersion]==10) {
int minorVersion = [self OSMinorVersion];
return (minorVersion=>5);
}
return NO;
}
- (BOOL)isAfterSnowLeopard {
if ([self OSMajorVersion]==10) {
int minorVersion = [self OSMinorVersion];
return (minorVersion=>6);
}
return NO;
}
- (NSString *)language { - (NSString *)language {
NSArray *languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"]; NSArray *languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
if (languages!=nil && [languages count]>=1) if (languages!=nil && [languages count]>=1)

View File

@ -136,22 +136,11 @@
PBXFileDataSource_Warnings_ColumnID, PBXFileDataSource_Warnings_ColumnID,
); );
}; };
PBXPerProjectTemplateStateSaveDate = 284508832; PBXPerProjectTemplateStateSaveDate = 284996359;
PBXWorkspaceStateSaveDate = 284508832; PBXWorkspaceStateSaveDate = 284996359;
}; };
perUserProjectItems = { perUserProjectItems = {
2A85029A10F05D6B00CA1273 = 2A85029A10F05D6B00CA1273 /* PBXTextBookmark */; 2A85029A10F05D6B00CA1273 /* PBXTextBookmark */ = 2A85029A10F05D6B00CA1273 /* PBXTextBookmark */;
2AB297B910F51A920080C6A1 = 2AB297B910F51A920080C6A1 /* PBXTextBookmark */;
2AB297E110F5428A0080C6A1 = 2AB297E110F5428A0080C6A1 /* PBXTextBookmark */;
2AB297F610F542DF0080C6A1 /* PBXTextBookmark */ = 2AB297F610F542DF0080C6A1 /* PBXTextBookmark */;
2AB2988010F5537F0080C6A1 /* PBXBookmark */ = 2AB2988010F5537F0080C6A1 /* PBXBookmark */;
2AB2988E10F5590F0080C6A1 /* PBXTextBookmark */ = 2AB2988E10F5590F0080C6A1 /* PBXTextBookmark */;
2AB2989710F5590F0080C6A1 /* PBXTextBookmark */ = 2AB2989710F5590F0080C6A1 /* PBXTextBookmark */;
2AB2989A10F5590F0080C6A1 /* PBXTextBookmark */ = 2AB2989A10F5590F0080C6A1 /* PBXTextBookmark */;
2AB2989C10F5590F0080C6A1 /* PBXTextBookmark */ = 2AB2989C10F5590F0080C6A1 /* PBXTextBookmark */;
2AB298A510F55CBA0080C6A1 /* PBXTextBookmark */ = 2AB298A510F55CBA0080C6A1 /* PBXTextBookmark */;
2AB298A610F55CBA0080C6A1 /* PBXTextBookmark */ = 2AB298A610F55CBA0080C6A1 /* PBXTextBookmark */;
2AB298A710F55CBA0080C6A1 /* PBXTextBookmark */ = 2AB298A710F55CBA0080C6A1 /* PBXTextBookmark */;
}; };
sourceControlManager = 2A478DA110E8456500EBC4A9 /* Source Control */; sourceControlManager = 2A478DA110E8456500EBC4A9 /* Source Control */;
userBuildSettings = { userBuildSettings = {
@ -163,7 +152,7 @@
isSCMEnabled = 0; isSCMEnabled = 0;
scmConfiguration = { scmConfiguration = {
repositoryNamesForRoots = { repositoryNamesForRoots = {
"" = ""; "" = GeckoReporter;
}; };
}; };
}; };
@ -182,24 +171,24 @@
2A85014310EFA6A700CA1273 /* MGMFeedback.m */ = { 2A85014310EFA6A700CA1273 /* MGMFeedback.m */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1176, 646}}"; sepNavIntBoundsRect = "{{0, 0}, {1176, 646}}";
sepNavSelRange = "{181, 0}"; sepNavSelRange = "{362, 0}";
sepNavVisRange = "{0, 424}"; sepNavVisRange = "{0, 452}";
sepNavWindowFrame = "{{15, 4}, {1235, 774}}"; sepNavWindowFrame = "{{15, 4}, {1235, 774}}";
}; };
}; };
2A85014710EFA81C00CA1273 /* MGMBugWindow.h */ = { 2A85014710EFA81C00CA1273 /* MGMBugWindow.h */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1176, 646}}"; sepNavIntBoundsRect = "{{0, 0}, {1176, 646}}";
sepNavSelRange = "{182, 0}"; sepNavSelRange = "{521, 0}";
sepNavVisRange = "{0, 617}"; sepNavVisRange = "{0, 640}";
sepNavWindowFrame = "{{15, 4}, {1235, 774}}"; sepNavWindowFrame = "{{15, 4}, {1235, 774}}";
}; };
}; };
2A85014810EFA81C00CA1273 /* MGMBugWindow.m */ = { 2A85014810EFA81C00CA1273 /* MGMBugWindow.m */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1012, 1092}}"; sepNavIntBoundsRect = "{{0, 0}, {1176, 1157}}";
sepNavSelRange = "{2035, 0}"; sepNavSelRange = "{332, 21}";
sepNavVisRange = "{0, 0}"; sepNavVisRange = "{0, 1109}";
sepNavWindowFrame = "{{15, 4}, {1235, 774}}"; sepNavWindowFrame = "{{15, 4}, {1235, 774}}";
}; };
}; };
@ -224,16 +213,16 @@
2AB2902810F132290080C6A1 /* MGMContactWindow.h */ = { 2AB2902810F132290080C6A1 /* MGMContactWindow.h */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1176, 646}}"; sepNavIntBoundsRect = "{{0, 0}, {1176, 646}}";
sepNavSelRange = "{186, 0}"; sepNavSelRange = "{577, 0}";
sepNavVisRange = "{0, 669}"; sepNavVisRange = "{0, 696}";
sepNavWindowFrame = "{{15, 4}, {1235, 774}}"; sepNavWindowFrame = "{{15, 4}, {1235, 774}}";
}; };
}; };
2AB2902910F132290080C6A1 /* MGMContactWindow.m */ = { 2AB2902910F132290080C6A1 /* MGMContactWindow.m */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1176, 1196}}"; sepNavIntBoundsRect = "{{0, 0}, {1176, 1352}}";
sepNavSelRange = "{1530, 13}"; sepNavSelRange = "{344, 25}";
sepNavVisRange = "{941, 1725}"; sepNavVisRange = "{0, 1243}";
sepNavWindowFrame = "{{15, 4}, {1235, 774}}"; sepNavWindowFrame = "{{15, 4}, {1235, 774}}";
}; };
}; };
@ -242,36 +231,6 @@
sepNavWindowFrame = "{{15, 4}, {1235, 774}}"; sepNavWindowFrame = "{{15, 4}, {1235, 774}}";
}; };
}; };
2AB297B910F51A920080C6A1 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2A85014810EFA81C00CA1273 /* MGMBugWindow.m */;
name = "MGMBugWindow.m: 80";
rLen = 0;
rLoc = 2035;
rType = 0;
vrLen = 0;
vrLoc = 0;
};
2AB297E110F5428A0080C6A1 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2A85014810EFA81C00CA1273 /* MGMBugWindow.m */;
name = "MGMBugWindow.m: 80";
rLen = 0;
rLoc = 2035;
rType = 0;
vrLen = 0;
vrLoc = 0;
};
2AB297F610F542DF0080C6A1 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2A85014810EFA81C00CA1273 /* MGMBugWindow.m */;
name = "MGMBugWindow.m: 80";
rLen = 0;
rLoc = 2035;
rType = 0;
vrLen = 0;
vrLoc = 0;
};
2AB2983210F54BA00080C6A1 /* English */ = { 2AB2983210F54BA00080C6A1 /* English */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {2973, 646}}"; sepNavIntBoundsRect = "{{0, 0}, {2973, 646}}";
@ -311,95 +270,6 @@
sepNavVisRange = "{0, 1229}"; sepNavVisRange = "{0, 1229}";
}; };
}; };
2AB2988010F5537F0080C6A1 /* PBXBookmark */ = {
isa = PBXBookmark;
fRef = 2AB2987E10F5537D0080C6A1 /* License.txt */;
};
2AB2988E10F5590F0080C6A1 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2A85014810EFA81C00CA1273 /* MGMBugWindow.m */;
name = "MGMBugWindow.m: 80";
rLen = 0;
rLoc = 2035;
rType = 0;
vrLen = 0;
vrLoc = 0;
};
2AB2989710F5590F0080C6A1 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2AB2987E10F5537D0080C6A1 /* License.txt */;
name = "License.txt: 11";
rLen = 0;
rLoc = 670;
rType = 0;
vrLen = 1229;
vrLoc = 0;
};
2AB2989A10F5590F0080C6A1 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2AB2989B10F5590F0080C6A1 /* Sparkle.strings */;
rLen = 0;
rLoc = 2147483647;
rType = 0;
};
2AB2989B10F5590F0080C6A1 /* Sparkle.strings */ = {
isa = PBXFileReference;
lastKnownFileType = text.plist.strings;
name = Sparkle.strings;
path = "/Users/grmrgecko/Downloads/Sparkle 1.5b6/Extras/Source Code/en.lproj/Sparkle.strings";
sourceTree = "<absolute>";
};
2AB2989C10F5590F0080C6A1 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2AB2989D10F5590F0080C6A1 /* Sparkle.strings */;
name = "Sparkle.strings: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 2737;
vrLoc = 0;
};
2AB2989D10F5590F0080C6A1 /* Sparkle.strings */ = {
isa = PBXFileReference;
name = Sparkle.strings;
path = "/Users/grmrgecko/Downloads/Sparkle 1.5b6/Extras/Source Code/en.lproj/Sparkle.strings";
sourceTree = "<absolute>";
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {2588, 1105}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 2737}";
};
};
2AB298A510F55CBA0080C6A1 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2A85014810EFA81C00CA1273 /* MGMBugWindow.m */;
name = "MGMBugWindow.m: 80";
rLen = 0;
rLoc = 2035;
rType = 0;
vrLen = 0;
vrLoc = 0;
};
2AB298A610F55CBA0080C6A1 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2AB2987E10F5537D0080C6A1 /* License.txt */;
name = "License.txt: 11";
rLen = 0;
rLoc = 670;
rType = 0;
vrLen = 1229;
vrLoc = 0;
};
2AB298A710F55CBA0080C6A1 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2AB2989D10F5590F0080C6A1 /* Sparkle.strings */;
name = "Sparkle.strings: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 2737;
vrLoc = 0;
};
2AC8693C10EE7EDE000743D2 /* Prefix.pch */ = { 2AC8693C10EE7EDE000743D2 /* Prefix.pch */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1176, 646}}"; sepNavIntBoundsRect = "{{0, 0}, {1176, 646}}";
@ -426,9 +296,9 @@
}; };
2AC8694C10EE8062000743D2 /* MGMReporter.m */ = { 2AC8694C10EE8062000743D2 /* MGMReporter.m */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1176, 1495}}"; sepNavIntBoundsRect = "{{0, 0}, {1176, 1352}}";
sepNavSelRange = "{183, 0}"; sepNavSelRange = "{791, 0}";
sepNavVisRange = "{0, 1845}"; sepNavVisRange = "{0, 2162}";
sepNavWindowFrame = "{{15, 4}, {1235, 774}}"; sepNavWindowFrame = "{{15, 4}, {1235, 774}}";
}; };
}; };
@ -442,9 +312,9 @@
}; };
2AC8694E10EE8062000743D2 /* MGMReportWindow.m */ = { 2AC8694E10EE8062000743D2 /* MGMReportWindow.m */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1475, 1807}}"; sepNavIntBoundsRect = "{{0, 0}, {1475, 1846}}";
sepNavSelRange = "{3461, 13}"; sepNavSelRange = "{3108, 10}";
sepNavVisRange = "{2748, 2013}"; sepNavVisRange = "{1834, 1670}";
sepNavWindowFrame = "{{15, 4}, {1235, 774}}"; sepNavWindowFrame = "{{15, 4}, {1235, 774}}";
}; };
}; };
@ -459,16 +329,16 @@
2AC8695110EE8062000743D2 /* MGMSystemInfo.h */ = { 2AC8695110EE8062000743D2 /* MGMSystemInfo.h */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1176, 646}}"; sepNavIntBoundsRect = "{{0, 0}, {1176, 646}}";
sepNavSelRange = "{185, 0}"; sepNavSelRange = "{568, 0}";
sepNavVisRange = "{0, 880}"; sepNavVisRange = "{0, 1046}";
sepNavWindowFrame = "{{15, 4}, {1235, 774}}"; sepNavWindowFrame = "{{15, 4}, {1235, 774}}";
}; };
}; };
2AC8695210EE8062000743D2 /* MGMSystemInfo.m */ = { 2AC8695210EE8062000743D2 /* MGMSystemInfo.m */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1176, 3224}}"; sepNavIntBoundsRect = "{{0, 0}, {1176, 4030}}";
sepNavSelRange = "{86, 99}"; sepNavSelRange = "{4846, 914}";
sepNavVisRange = "{0, 1448}"; sepNavVisRange = "{4169, 1117}";
sepNavWindowFrame = "{{15, 4}, {1235, 774}}"; sepNavWindowFrame = "{{15, 4}, {1235, 774}}";
}; };
}; };
@ -526,6 +396,21 @@
dylibVariantSuffix = ""; dylibVariantSuffix = "";
enableDebugStr = 1; enableDebugStr = 1;
environmentEntries = ( environmentEntries = (
{
active = YES;
name = NSDebugEnabled;
value = YES;
},
{
active = YES;
name = NSZombieEnabled;
value = YES;
},
{
active = YES;
name = MallocStackLogging;
value = YES;
},
); );
executableSystemSymbolLevel = 0; executableSystemSymbolLevel = 0;
executableUserSymbolLevel = 0; executableUserSymbolLevel = 0;
@ -575,8 +460,8 @@
2AC86B4610EE9DD7000743D2 /* MGMLog.m */ = { 2AC86B4610EE9DD7000743D2 /* MGMLog.m */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1176, 1196}}"; sepNavIntBoundsRect = "{{0, 0}, {1176, 1196}}";
sepNavSelRange = "{176, 0}"; sepNavSelRange = "{2825, 6}";
sepNavVisRange = "{0, 1785}"; sepNavVisRange = "{1151, 2082}";
sepNavWindowFrame = "{{15, 4}, {1235, 774}}"; sepNavWindowFrame = "{{15, 4}, {1235, 774}}";
}; };
}; };
@ -589,9 +474,9 @@
}; };
2AC86CF010EEC54C000743D2 /* MGMSender.m */ = { 2AC86CF010EEC54C000743D2 /* MGMSender.m */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1176, 5239}}"; sepNavIntBoundsRect = "{{0, 0}, {1209, 5083}}";
sepNavSelRange = "{706, 0}"; sepNavSelRange = "{19655, 0}";
sepNavVisRange = "{0, 1732}"; sepNavVisRange = "{18391, 2142}";
sepNavWindowFrame = "{{15, 4}, {1235, 774}}"; sepNavWindowFrame = "{{15, 4}, {1235, 774}}";
}; };
}; };

View File

@ -197,88 +197,7 @@
<key>Notifications</key> <key>Notifications</key>
<array/> <array/>
<key>OpenEditors</key> <key>OpenEditors</key>
<array> <array/>
<dict>
<key>Content</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>2AB2989510F5590F0080C6A1</string>
<key>PBXProjectModuleLabel</key>
<string>License.txt</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>2AB2989610F5590F0080C6A1</string>
<key>PBXProjectModuleLabel</key>
<string>License.txt</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>2AB298A610F55CBA0080C6A1</string>
<key>history</key>
<array>
<string>2AB2988010F5537F0080C6A1</string>
</array>
</dict>
<key>SplitCount</key>
<string>1</string>
</dict>
<key>StatusBarVisibility</key>
<true/>
</dict>
<key>Geometry</key>
<dict>
<key>Frame</key>
<string>{{0, 20}, {1235, 677}}</string>
<key>PBXModuleWindowStatusBarHidden2</key>
<false/>
<key>RubberWindowFrame</key>
<string>15 60 1235 718 0 0 1280 778 </string>
</dict>
</dict>
<dict>
<key>Content</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>2AB2989810F5590F0080C6A1</string>
<key>PBXProjectModuleLabel</key>
<string>Sparkle.strings</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>2AB2989910F5590F0080C6A1</string>
<key>PBXProjectModuleLabel</key>
<string>Sparkle.strings</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>2AB298A710F55CBA0080C6A1</string>
<key>history</key>
<array>
<string>2AB2989A10F5590F0080C6A1</string>
</array>
</dict>
<key>SplitCount</key>
<string>1</string>
</dict>
<key>StatusBarVisibility</key>
<true/>
</dict>
<key>Geometry</key>
<dict>
<key>Frame</key>
<string>{{0, 20}, {1235, 677}}</string>
<key>PBXModuleWindowStatusBarHidden2</key>
<false/>
<key>RubberWindowFrame</key>
<string>15 60 1235 718 0 0 1280 778 </string>
</dict>
</dict>
</array>
<key>PerspectiveWidths</key> <key>PerspectiveWidths</key>
<array> <array>
<integer>1280</integer> <integer>1280</integer>
@ -363,11 +282,12 @@
<string>1058C7B0FEA5585E11CA2CBB</string> <string>1058C7B0FEA5585E11CA2CBB</string>
<string>034768DFFF38A50411DB9C8B</string> <string>034768DFFF38A50411DB9C8B</string>
<string>1C37FBAC04509CD000000102</string> <string>1C37FBAC04509CD000000102</string>
<string>1C37FAAC04509CD000000102</string>
</array> </array>
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array> <array>
<array> <array>
<integer>16</integer> <integer>18</integer>
<integer>2</integer> <integer>2</integer>
<integer>1</integer> <integer>1</integer>
<integer>0</integer> <integer>0</integer>
@ -391,7 +311,7 @@
<real>185</real> <real>185</real>
</array> </array>
<key>RubberWindowFrame</key> <key>RubberWindowFrame</key>
<string>0 58 1280 719 0 0 1280 778 </string> <string>0 59 1280 719 0 0 1280 778 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>PBXSmartGroupTreeModule</string> <string>PBXSmartGroupTreeModule</string>
@ -407,7 +327,7 @@
<key>PBXProjectModuleGUID</key> <key>PBXProjectModuleGUID</key>
<string>2A478DDD10E8598900EBC4A9</string> <string>2A478DDD10E8598900EBC4A9</string>
<key>PBXProjectModuleLabel</key> <key>PBXProjectModuleLabel</key>
<string>MGMBugWindow.m</string> <string></string>
<key>PBXSplitModuleInNavigatorKey</key> <key>PBXSplitModuleInNavigatorKey</key>
<dict> <dict>
<key>Split0</key> <key>Split0</key>
@ -415,15 +335,10 @@
<key>PBXProjectModuleGUID</key> <key>PBXProjectModuleGUID</key>
<string>2A478DDE10E8598900EBC4A9</string> <string>2A478DDE10E8598900EBC4A9</string>
<key>PBXProjectModuleLabel</key> <key>PBXProjectModuleLabel</key>
<string>MGMBugWindow.m</string> <string></string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>2AB298A510F55CBA0080C6A1</string>
<key>history</key> <key>history</key>
<array> <array>
<string>2A85029A10F05D6B00CA1273</string> <string>2A85029A10F05D6B00CA1273</string>
<string>2AB297E110F5428A0080C6A1</string>
</array> </array>
</dict> </dict>
<key>SplitCount</key> <key>SplitCount</key>
@ -439,7 +354,7 @@
<key>Frame</key> <key>Frame</key>
<string>{{0, 0}, {1073, 0}}</string> <string>{{0, 0}, {1073, 0}}</string>
<key>RubberWindowFrame</key> <key>RubberWindowFrame</key>
<string>0 58 1280 719 0 0 1280 778 </string> <string>0 59 1280 719 0 0 1280 778 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>PBXNavigatorGroup</string> <string>PBXNavigatorGroup</string>
@ -464,7 +379,7 @@
<key>Frame</key> <key>Frame</key>
<string>{{10, 27}, {1073, 646}}</string> <string>{{10, 27}, {1073, 646}}</string>
<key>RubberWindowFrame</key> <key>RubberWindowFrame</key>
<string>0 58 1280 719 0 0 1280 778 </string> <string>0 59 1280 719 0 0 1280 778 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>XCDetailModule</string> <string>XCDetailModule</string>
@ -490,6 +405,27 @@
<dict> <dict>
<key>PBXCVSModuleFilterTypeKey</key> <key>PBXCVSModuleFilterTypeKey</key>
<integer>1032</integer> <integer>1032</integer>
<key>PBXCVSModuleTreeModuleColumnData</key>
<dict>
<key>PBXCVSModuleTreeModuleColumnWidthsKey</key>
<array>
<real>655</real>
<real>56</real>
<real>63</real>
<real>60</real>
<real>63</real>
<real>139</real>
</array>
<key>PBXCVSModuleTreeModuleColumnsKey</key>
<array>
<string>Name</string>
<string>Status</string>
<string>Update</string>
<string>Revision</string>
<string>Author</string>
<string>Date</string>
</array>
</dict>
<key>PBXProjectModuleGUID</key> <key>PBXProjectModuleGUID</key>
<string>1CA23EE10692099D00951B8B</string> <string>1CA23EE10692099D00951B8B</string>
<key>PBXProjectModuleLabel</key> <key>PBXProjectModuleLabel</key>
@ -546,11 +482,11 @@
</array> </array>
<key>TableOfContents</key> <key>TableOfContents</key>
<array> <array>
<string>2AB297F710F542DF0080C6A1</string> <string>2A5B7AC810FCB63600051C18</string>
<string>1CA23ED40692098700951B8B</string> <string>1CA23ED40692098700951B8B</string>
<string>2AB297F810F542DF0080C6A1</string> <string>2A5B7AC910FCB63600051C18</string>
<string>2A478DDD10E8598900EBC4A9</string> <string>2A478DDD10E8598900EBC4A9</string>
<string>2AB297F910F542DF0080C6A1</string> <string>2A5B7ACA10FCB63600051C18</string>
<string>1CA23EDF0692099D00951B8B</string> <string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string> <string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string> <string>1CA23EE10692099D00951B8B</string>
@ -701,14 +637,14 @@
</array> </array>
<key>TableOfContents</key> <key>TableOfContents</key>
<array> <array>
<string>2AB2988F10F5590F0080C6A1</string> <string>2A5B7ACB10FCB63600051C18</string>
<string>1CCC7628064C1048000F2A68</string> <string>1CCC7628064C1048000F2A68</string>
<string>1CCC7629064C1048000F2A68</string> <string>1CCC7629064C1048000F2A68</string>
<string>2AB2989010F5590F0080C6A1</string> <string>2A5B7ACC10FCB63600051C18</string>
<string>2AB2989110F5590F0080C6A1</string> <string>2A5B7ACD10FCB63600051C18</string>
<string>2AB2989210F5590F0080C6A1</string> <string>2A5B7ACE10FCB63600051C18</string>
<string>2AB2989310F5590F0080C6A1</string> <string>2A5B7ACF10FCB63600051C18</string>
<string>2AB2989410F5590F0080C6A1</string> <string>2A5B7AB710FCB54600051C18</string>
</array> </array>
<key>ToolbarConfigUserDefaultsMinorVersion</key> <key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string> <string>2</string>
@ -742,15 +678,13 @@
<integer>5</integer> <integer>5</integer>
<key>WindowOrderList</key> <key>WindowOrderList</key>
<array> <array>
<string>2AB298A810F55CBA0080C6A1</string> <string>2A478EAD10E881CF00EBC4A9</string>
<string>2AB298A910F55CBA0080C6A1</string> <string>2A5B7AD310FCB63600051C18</string>
<string>2AB2989E10F5590F0080C6A1</string> <string>2A5B7AD410FCB63600051C18</string>
<string>2AB2989F10F5590F0080C6A1</string>
<string>2AB2989510F5590F0080C6A1</string>
<string>/Development/James' Applications/GeckoReporter/GeckoReporter.xcodeproj</string> <string>/Development/James' Applications/GeckoReporter/GeckoReporter.xcodeproj</string>
</array> </array>
<key>WindowString</key> <key>WindowString</key>
<string>0 58 1280 719 0 0 1280 778 </string> <string>0 59 1280 719 0 0 1280 778 </string>
<key>WindowToolsV3</key> <key>WindowToolsV3</key>
<array> <array>
<dict> <dict>
@ -1588,7 +1522,7 @@
<key>TableOfContents</key> <key>TableOfContents</key>
<array> <array>
<string>2A478EAD10E881CF00EBC4A9</string> <string>2A478EAD10E881CF00EBC4A9</string>
<string>2A85015810EFA8BA00CA1273</string> <string>2A5B7AD010FCB63600051C18</string>
<string>2A478EAC10E881CF00EBC4A9</string> <string>2A478EAC10E881CF00EBC4A9</string>
</array> </array>
<key>WindowString</key> <key>WindowString</key>