96 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
//
 | 
						|
//  MGMBugWindow.m
 | 
						|
//  GeckoReporter
 | 
						|
//
 | 
						|
//  Created by Mr. Gecko on 1/2/10.
 | 
						|
//  Copyright (c) 2011 Mr. Gecko's Media (James Coleman). http://mrgeckosmedia.com/
 | 
						|
//
 | 
						|
//  Permission to use, copy, modify, and/or distribute this software for any purpose
 | 
						|
//  with or without fee is hereby granted, provided that the above copyright notice
 | 
						|
//  and this permission notice appear in all copies.
 | 
						|
//
 | 
						|
//  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
 | 
						|
//  REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
 | 
						|
//  FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,
 | 
						|
//  OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 | 
						|
//  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
 | 
						|
//  ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
						|
//
 | 
						|
 | 
						|
#import "MGMBugWindow.h"
 | 
						|
#import "MGMReporter.h"
 | 
						|
#import "MGMSender.h"
 | 
						|
#import "MGMLocalized.h"
 | 
						|
#import "MGMSystemInfo.h"
 | 
						|
#import "MGMLog.h"
 | 
						|
 | 
						|
@implementation MGMBugWindow
 | 
						|
+ (id)sharedBugWindow {
 | 
						|
	return [[self alloc] init];
 | 
						|
}
 | 
						|
- (id)init {
 | 
						|
	if ((self = [super init])) {
 | 
						|
		if (![NSBundle loadNibNamed:@"MGMBugWindow" owner:self]) {
 | 
						|
			[self release];
 | 
						|
			self = nil;
 | 
						|
		} else {
 | 
						|
			NSUserDefaults *userDefautls = [NSUserDefaults standardUserDefaults];
 | 
						|
			if ([userDefautls objectForKey:MGMGRUserEmail])
 | 
						|
				[userEmailField setStringValue:[userDefautls objectForKey:MGMGRUserEmail]];
 | 
						|
			
 | 
						|
			[mainWindow makeKeyAndOrderFront:self];
 | 
						|
			MGMSystemInfo *sysInfo = [MGMSystemInfo info];
 | 
						|
			if ([sysInfo isUIElement])
 | 
						|
				[[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
 | 
						|
		}
 | 
						|
		
 | 
						|
	}
 | 
						|
	return self;
 | 
						|
}
 | 
						|
 | 
						|
- (void)dealloc {
 | 
						|
	MGMLog(@"%s Releasing", __PRETTY_FUNCTION__);
 | 
						|
	[mailSender release];
 | 
						|
	[mainWindow release];
 | 
						|
	[super dealloc];
 | 
						|
	self = nil;
 | 
						|
}
 | 
						|
 | 
						|
- (void)setButtonsEnabled:(BOOL)flag {
 | 
						|
	[sendButton setEnabled:flag];
 | 
						|
	[cancelButton setEnabled:flag];
 | 
						|
}
 | 
						|
 | 
						|
- (void)close {
 | 
						|
	[mainWindow orderOut:self];
 | 
						|
	[self release];
 | 
						|
}
 | 
						|
 | 
						|
- (IBAction)send:(id)sender {
 | 
						|
	[[NSUserDefaults standardUserDefaults] setObject:[userEmailField stringValue] forKey:MGMGRUserEmail];
 | 
						|
	if (mailSender==nil) {
 | 
						|
		mailSender = [MGMSender new];
 | 
						|
		[mailSender sendBug:[[bugView textStorage] string] reproduce:[[reproduceView textStorage] string] delegate:self];
 | 
						|
	}
 | 
						|
	[sendButton setTitle:MGMLocalized(@"Sending...", nil)];
 | 
						|
	[self setButtonsEnabled:NO];
 | 
						|
}
 | 
						|
- (IBAction)cancel:(id)sender {
 | 
						|
	[self close];
 | 
						|
}
 | 
						|
 | 
						|
- (void)sendError:(NSError *)error {
 | 
						|
	NSAlert *theAlert = [[NSAlert new] autorelease];
 | 
						|
	[theAlert addButtonWithTitle:MGMLocalized(@"Ok", nil)];
 | 
						|
	[theAlert setMessageText:MGMLocalized(@"Error could not send bug report.", nil)];
 | 
						|
	[theAlert setInformativeText:[error localizedDescription]];
 | 
						|
	[theAlert setAlertStyle:2];
 | 
						|
	[theAlert runModal];
 | 
						|
	[self setButtonsEnabled:YES];
 | 
						|
}
 | 
						|
 | 
						|
- (void)sendFinished:(NSString *)received {
 | 
						|
	MGMLog(@"%@", received);
 | 
						|
	[self close];
 | 
						|
}
 | 
						|
@end |