aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--TableDocument.m1020
1 files changed, 505 insertions, 515 deletions
diff --git a/TableDocument.m b/TableDocument.m
index e456aacd..89dd0b85 100644
--- a/TableDocument.m
+++ b/TableDocument.m
@@ -41,40 +41,40 @@ NSString *TableDocumentFavoritesControllerFavoritesDidChange = @"TableDocumentFa
- (id)init
{
- if (![super init])
- return nil;
-
- _encoding = [@"utf8" retain];
- chooseDatabaseButton = nil;
- chooseDatabaseToolbarItem = nil;
-
- return self;
+ if (![super init])
+ return nil;
+
+ _encoding = [@"utf8" retain];
+ chooseDatabaseButton = nil;
+ chooseDatabaseToolbarItem = nil;
+
+ return self;
}
- (void)awakeFromNib
{
- // register selection did change handler for favorites controller (used in connect sheet)
- [favoritesController addObserver:self forKeyPath:@"selectionIndex" options:NSKeyValueChangeInsertion context:TableDocumentFavoritesControllerSelectionIndexDidChange];
+ // register selection did change handler for favorites controller (used in connect sheet)
+ [favoritesController addObserver:self forKeyPath:@"selectionIndex" options:NSKeyValueChangeInsertion context:TableDocumentFavoritesControllerSelectionIndexDidChange];
// register value change handler for favourites, so we can save them to preferences
[self addObserver:self forKeyPath:@"favorites" options:0 context:TableDocumentFavoritesControllerFavoritesDidChange];
-
- // register double click for the favorites view (double click favorite to connect)
- [connectFavoritesTableView setTarget:self];
-
- // find the Database -> Database Encoding menu (it's not in our nib, so we can't use interface builder)
- selectEncodingMenu = [[[[[NSApp mainMenu] itemWithTag:1] submenu] itemWithTag:1] submenu];
-
- // hide the tabs in the tab view (we only show them to allow switching tabs in interface builder)
- [tableTabView setTabViewType:NSNoTabsNoBorder];
+
+ // register double click for the favorites view (double click favorite to connect)
+ [connectFavoritesTableView setTarget:self];
+
+ // find the Database -> Database Encoding menu (it's not in our nib, so we can't use interface builder)
+ selectEncodingMenu = [[[[[NSApp mainMenu] itemWithTag:1] submenu] itemWithTag:1] submenu];
+
+ // hide the tabs in the tab view (we only show them to allow switching tabs in interface builder)
+ [tableTabView setTabViewType:NSNoTabsNoBorder];
}
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
- if (context == TableDocumentFavoritesControllerSelectionIndexDidChange) {
- [self chooseFavorite:self];
+ if (context == TableDocumentFavoritesControllerSelectionIndexDidChange) {
+ [self chooseFavorite:self];
return;
- }
+ }
if (context == TableDocumentFavoritesControllerFavoritesDidChange) {
[prefs setObject:[self favorites] forKey:@"favorites"];
@@ -105,68 +105,67 @@ NSString *TableDocumentFavoritesControllerFavoritesDidChange = @"TableDocumentFa
// run the connect sheet (modal)
[NSApp beginSheet:connectSheet
- modalForWindow:tableWindow
- modalDelegate:self
+ modalForWindow:tableWindow
+ modalDelegate:self
didEndSelector:@selector(connectSheetDidEnd:returnCode:contextInfo:)
- contextInfo:nil];
+ contextInfo:nil];
}
-
+
/*
-invoked when user hits the connect-button of the connectSheet
-stops modal session with code:
-1 when connected with success
-2 when no connection to host
-3 when no connection to db
-4 when hostField and socketField are empty
-*/
+ invoked when user hits the connect-button of the connectSheet
+ stops modal session with code:
+ 1 when connected with success
+ 2 when no connection to host
+ 3 when no connection to db
+ 4 when hostField and socketField are empty
+ */
- (IBAction)connect:(id)sender
{
- int code;
-
- [connectProgressBar startAnimation:self];
- [connectProgressStatusText setHidden:NO];
- [connectProgressStatusText display];
-
- [selectedDatabase autorelease];
- selectedDatabase = nil;
-
- code = 0;
- if ( [[hostField stringValue] isEqualToString:@""] && [[socketField stringValue] isEqualToString:@""] ) {
- code = 4;
- } else {
- if ( ![[socketField stringValue] isEqualToString:@""] ) {
- //connect to socket
- mySQLConnection = [[CMMCPConnection alloc] initToSocket:[socketField stringValue]
- withLogin:[userField stringValue]
- password:[passwordField stringValue]];
- [hostField setStringValue:@"localhost"];
+ int code;
+
+ [connectProgressBar startAnimation:self];
+ [connectProgressStatusText setHidden:NO];
+ [connectProgressStatusText display];
+
+ [selectedDatabase autorelease];
+ selectedDatabase = nil;
+
+ code = 0;
+ if ( [[hostField stringValue] isEqualToString:@""] && [[socketField stringValue] isEqualToString:@""] ) {
+ code = 4;
} else {
- //connect to host
- mySQLConnection = [[CMMCPConnection alloc] initToHost:[hostField stringValue]
- withLogin:[userField stringValue]
- password:[passwordField stringValue]
- usingPort:[portField intValue]];
- }
- if ( ![mySQLConnection isConnected] )
- code = 2;
- if ( !code && ![[databaseField stringValue] isEqualToString:@""] ) {
- if ([mySQLConnection selectDB:[databaseField stringValue]]) {
- selectedDatabase = [[databaseField stringValue] retain];
- } else {
- code = 3;
- }
+ if ( ![[socketField stringValue] isEqualToString:@""] ) {
+ //connect to socket
+ mySQLConnection = [[CMMCPConnection alloc] initToSocket:[socketField stringValue]
+ withLogin:[userField stringValue]
+ password:[passwordField stringValue]];
+ [hostField setStringValue:@"localhost"];
+ } else {
+ //connect to host
+ mySQLConnection = [[CMMCPConnection alloc] initToHost:[hostField stringValue]
+ withLogin:[userField stringValue]
+ password:[passwordField stringValue]
+ usingPort:[portField intValue]];
+ }
+ if ( ![mySQLConnection isConnected] )
+ code = 2;
+ if ( !code && ![[databaseField stringValue] isEqualToString:@""] ) {
+ if ([mySQLConnection selectDB:[databaseField stringValue]]) {
+ selectedDatabase = [[databaseField stringValue] retain];
+ } else {
+ code = 3;
+ }
+ }
+ if ( !code )
+ code = 1;
}
- if ( !code )
- code = 1;
- }
-
- // close sheet
+
+ // close sheet
[connectSheet orderOut:nil];
- [NSApp endSheet:connectSheet returnCode:code];
-// [NSApp stopModalWithCode:code];
- [connectProgressBar stopAnimation:self];
- [connectProgressStatusText setHidden:YES];
+ [NSApp endSheet:connectSheet returnCode:code];
+ [connectProgressBar stopAnimation:self];
+ [connectProgressStatusText setHidden:YES];
}
-(void)connectSheetDidEnd:(NSWindow*)sheet returnCode:(int)code contextInfo:(void*)contextInfo
@@ -188,7 +187,6 @@ stops modal session with code:
[self setEncoding:[self mysqlEncodingFromDisplayEncoding:encodingName]];
}
//get mysql version
- // theResult = [mySQLConnection queryString:@"SHOW VARIABLES LIKE \"version\""];
theResult = [mySQLConnection queryString:@"SHOW VARIABLES LIKE 'version'"];
version = [[theResult fetchRowAsArray] objectAtIndex:1];
if ( [version isKindOfClass:[NSData class]] ) {
@@ -234,14 +232,6 @@ stops modal session with code:
//no host is given
NSBeginAlertSheet(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil,
@selector(sheetDidEnd:returnCode:contextInfo:), @"connect", NSLocalizedString(@"Please enter at least a host or socket.", @"message of panel when host/socket are missing"));
- } else {
- //cancel button was pressed
- //since the window is getting ready to be toast ignore events for awhile
- //so as not to crash, this happens to me when hitten esc key instead of
- //cancel button, but with this code it does not crash
- // [[NSApplication sharedApplication] discardEventsMatchingMask:NSAnyEventMask
- // beforeEvent:[[NSApplication sharedApplication] nextEventMatchingMask:NSLeftMouseDownMask | NSLeftMouseUpMask |NSRightMouseDownMask | NSRightMouseUpMask | NSFlagsChangedMask | NSKeyDownMask | NSKeyUpMask untilDate:[NSDate distantPast] inMode:NSEventTrackingRunLoopMode dequeue:YES]];
- // [tableWindow close];
}
}
@@ -253,10 +243,10 @@ stops modal session with code:
- (IBAction)closeSheet:(id)sender
/*
-invoked when user hits the cancel button of the connectSheet
-stops modal session with code 0
-reused when user hits the close button of the variablseSheet or of the createTableSyntaxSheet
-*/
+ invoked when user hits the cancel button of the connectSheet
+ stops modal session with code 0
+ reused when user hits the close button of the variablseSheet or of the createTableSyntaxSheet
+ */
{
[NSApp stopModalWithCode:0];
}
@@ -266,33 +256,33 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (IBAction)chooseFavorite:(id)sender
{
- if (![self selectedFavorite])
+ if (![self selectedFavorite])
return;
[hostField setStringValue:[self valueForKeyPath:@"selectedFavorite.host"]];
- [socketField setStringValue:[self valueForKeyPath:@"selectedFavorite.socket"]];
- [userField setStringValue:[self valueForKeyPath:@"selectedFavorite.user"]];
- [portField setStringValue:[self valueForKeyPath:@"selectedFavorite.port"]];
- [databaseField setStringValue:[self valueForKeyPath:@"selectedFavorite.database"]];
- [passwordField setStringValue:[self selectedFavoritePassword]];
-
- [selectedFavorite release];
- selectedFavorite = [[favoritesButton titleOfSelectedItem] retain];
+ [socketField setStringValue:[self valueForKeyPath:@"selectedFavorite.socket"]];
+ [userField setStringValue:[self valueForKeyPath:@"selectedFavorite.user"]];
+ [portField setStringValue:[self valueForKeyPath:@"selectedFavorite.port"]];
+ [databaseField setStringValue:[self valueForKeyPath:@"selectedFavorite.database"]];
+ [passwordField setStringValue:[self selectedFavoritePassword]];
+
+ [selectedFavorite release];
+ selectedFavorite = [[favoritesButton titleOfSelectedItem] retain];
}
- (NSMutableArray *)favorites
{
- // if no favorites, load from user defaults
- if (!favorites) {
- favorites = [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"favorites"]];
- }
-
+ // if no favorites, load from user defaults
+ if (!favorites) {
+ favorites = [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"favorites"]];
+ }
+
// if no favorites in user defaults, load empty ones
if (!favorites) {
- favorites = [[NSMutableArray array] retain];
- }
+ favorites = [[NSMutableArray array] retain];
+ }
- return favorites;
+ return favorites;
}
/**
@@ -318,9 +308,9 @@ reused when user hits the close button of the variablseSheet or of the createTab
NSString *keychainName = [NSString stringWithFormat:@"Sequel Pro : %@", [self valueForKeyPath:@"selectedFavorite.name"]];
NSString *keychainAccount = [NSString stringWithFormat:@"%@@%@/%@",
- [self valueForKeyPath:@"selectedFavorite.user"],
- [self valueForKeyPath:@"selectedFavorite.host"],
- [self valueForKeyPath:@"selectedFavorite.database"]];
+ [self valueForKeyPath:@"selectedFavorite.user"],
+ [self valueForKeyPath:@"selectedFavorite.host"],
+ [self valueForKeyPath:@"selectedFavorite.database"]];
return [keyChainInstance getPasswordForName:keychainName account:keychainAccount];
}
@@ -336,39 +326,39 @@ reused when user hits the close button of the variablseSheet or of the createTab
- (void)addToFavoritesHost:(NSString *)host socket:(NSString *)socket
user:(NSString *)user password:(NSString *)password
port:(NSString *)port database:(NSString *)database
- useSSH:(BOOL)useSSH // no-longer in use
- sshHost:(NSString *)sshHost // no-longer in use
- sshUser:(NSString *)sshUser // no-longer in use
- sshPassword:(NSString *)sshPassword // no-longer in use
- sshPort:(NSString *)sshPort // no-longer in use
-{
- NSString *favoriteName = [NSString stringWithFormat:@"%@@%@", user, host];
- if (![database isEqualToString:@""])
- favoriteName = [NSString stringWithFormat:@"%@ %@", database, favoriteName];
-
- // test if host and socket are not nil
- if ([host isEqualToString:@""] && [socket isEqualToString:@""]) {
- NSRunAlertPanel(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"Please enter at least a host or socket.", @"message of panel when host/socket are missing"), NSLocalizedString(@"OK", @"OK button"), nil, nil);
- return;
- }
+ useSSH:(BOOL)useSSH // no-longer in use
+ sshHost:(NSString *)sshHost // no-longer in use
+ sshUser:(NSString *)sshUser // no-longer in use
+ sshPassword:(NSString *)sshPassword // no-longer in use
+ sshPort:(NSString *)sshPort // no-longer in use
+{
+ NSString *favoriteName = [NSString stringWithFormat:@"%@@%@", user, host];
+ if (![database isEqualToString:@""])
+ favoriteName = [NSString stringWithFormat:@"%@ %@", database, favoriteName];
+
+ // test if host and socket are not nil
+ if ([host isEqualToString:@""] && [socket isEqualToString:@""]) {
+ NSRunAlertPanel(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"Please enter at least a host or socket.", @"message of panel when host/socket are missing"), NSLocalizedString(@"OK", @"OK button"), nil, nil);
+ return;
+ }
[self willChangeValueForKey:@"favorites"];
-
- // write favorites and password
- NSDictionary *newFavorite = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:favoriteName, host, socket, user, port, database, nil]
- forKeys:[NSArray arrayWithObjects:@"name", @"host", @"socket", @"user", @"port", @"database", nil]];
- [favorites addObject:newFavorite];
-
- if (![password isEqualToString:@""]) {
- [keyChainInstance addPassword:password
- forName:[NSString stringWithFormat:@"Sequel Pro : %@", favoriteName]
- account:[NSString stringWithFormat:@"%@@%@/%@", user, host, database]];
- }
-
- // select new favorite
- selectedFavorite = [favoriteName retain];
- [self didChangeValueForKey:@"favorites"];
+ // write favorites and password
+ NSDictionary *newFavorite = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:favoriteName, host, socket, user, port, database, nil]
+ forKeys:[NSArray arrayWithObjects:@"name", @"host", @"socket", @"user", @"port", @"database", nil]];
+ [favorites addObject:newFavorite];
+
+ if (![password isEqualToString:@""]) {
+ [keyChainInstance addPassword:password
+ forName:[NSString stringWithFormat:@"Sequel Pro : %@", favoriteName]
+ account:[NSString stringWithFormat:@"%@@%@/%@", user, host, database]];
+ }
+
+ // select new favorite
+ selectedFavorite = [favoriteName retain];
+
+ [self didChangeValueForKey:@"favorites"];
}
/**
@@ -379,31 +369,31 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (void)sheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(NSString *)contextInfo
{
- [sheet orderOut:self];
-
- if ([contextInfo isEqualToString:@"connect"]) {
- [self connectToDB:nil];
- return;
- }
-
- if ([contextInfo isEqualToString:@"removedatabase"]) {
- if (returnCode != NSAlertDefaultReturn)
- return;
-
- [mySQLConnection queryString:[NSString stringWithFormat:@"DROP DATABASE `%@`", [self database]]];
- if (![[mySQLConnection getLastErrorMessage] isEqualToString:@""]) {
- // error while deleting db
- NSBeginAlertSheet(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, [NSString stringWithFormat:NSLocalizedString(@"Couldn't remove database.\nMySQL said: %@", @"message of panel when removing db failed"), [mySQLConnection getLastErrorMessage]]);
- return;
+ [sheet orderOut:self];
+
+ if ([contextInfo isEqualToString:@"connect"]) {
+ [self connectToDB:nil];
+ return;
}
- // db deleted with success
- selectedDatabase = nil;
- [self setDatabases:self];
- [tablesListInstance setConnection:mySQLConnection];
- [tableDumpInstance setConnection:mySQLConnection];
- [tableWindow setTitle:[NSString stringWithFormat:@"(MySQL %@) %@@%@/", mySQLVersion, [userField stringValue], [hostField stringValue]]];
- }
+ if ([contextInfo isEqualToString:@"removedatabase"]) {
+ if (returnCode != NSAlertDefaultReturn)
+ return;
+
+ [mySQLConnection queryString:[NSString stringWithFormat:@"DROP DATABASE `%@`", [self database]]];
+ if (![[mySQLConnection getLastErrorMessage] isEqualToString:@""]) {
+ // error while deleting db
+ NSBeginAlertSheet(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, [NSString stringWithFormat:NSLocalizedString(@"Couldn't remove database.\nMySQL said: %@", @"message of panel when removing db failed"), [mySQLConnection getLastErrorMessage]]);
+ return;
+ }
+
+ // db deleted with success
+ selectedDatabase = nil;
+ [self setDatabases:self];
+ [tablesListInstance setConnection:mySQLConnection];
+ [tableDumpInstance setConnection:mySQLConnection];
+ [tableWindow setTitle:[NSString stringWithFormat:@"(MySQL %@) %@@%@/", mySQLVersion, [userField stringValue], [hostField stringValue]]];
+ }
}
@@ -414,27 +404,27 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (IBAction)setDatabases:(id)sender;
{
- if (!chooseDatabaseButton)
- return;
-
+ if (!chooseDatabaseButton)
+ return;
+
[chooseDatabaseButton removeAllItems];
[chooseDatabaseButton addItemWithTitle:NSLocalizedString(@"Choose Database...", @"menu item for choose db")];
[[chooseDatabaseButton menu] addItem:[NSMenuItem separatorItem]];
[[chooseDatabaseButton menu] addItemWithTitle:NSLocalizedString(@"Add Database...", @"menu item to add db") action:@selector(addDatabase:) keyEquivalent:@""];
[[chooseDatabaseButton menu] addItem:[NSMenuItem separatorItem]];
-
- MCPResult *queryResult = [mySQLConnection listDBs];
- int i;
- for ( i = 0 ; i < [queryResult numOfRows] ; i++ ) {
- [queryResult dataSeek:i];
- [chooseDatabaseButton addItemWithTitle:[[queryResult fetchRowAsArray] objectAtIndex:0]];
- }
- if ( ![self database] ) {
- [chooseDatabaseButton selectItemAtIndex:0];
- } else {
- [chooseDatabaseButton selectItemWithTitle:[self database]];
- }
+
+ MCPResult *queryResult = [mySQLConnection listDBs];
+ int i;
+ for ( i = 0 ; i < [queryResult numOfRows] ; i++ ) {
+ [queryResult dataSeek:i];
+ [chooseDatabaseButton addItemWithTitle:[[queryResult fetchRowAsArray] objectAtIndex:0]];
+ }
+ if ( ![self database] ) {
+ [chooseDatabaseButton selectItemAtIndex:0];
+ } else {
+ [chooseDatabaseButton selectItemWithTitle:[self database]];
+ }
}
/**
@@ -443,32 +433,32 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (IBAction)chooseDatabase:(id)sender
{
- if (![tablesListInstance selectionShouldChangeInTableView:nil]) {
- [chooseDatabaseButton selectItemWithTitle:[self database]];
- return;
- }
-
- if ( [chooseDatabaseButton indexOfSelectedItem] == 0 ) {
- if ([self database]) {
- [chooseDatabaseButton selectItemWithTitle:[self database]];
+ if (![tablesListInstance selectionShouldChangeInTableView:nil]) {
+ [chooseDatabaseButton selectItemWithTitle:[self database]];
+ return;
}
- return;
- }
-
- // show error on connection failed
- if ( ![mySQLConnection selectDB:[chooseDatabaseButton titleOfSelectedItem]] ) {
- NSBeginAlertSheet(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, [NSString stringWithFormat:NSLocalizedString(@"Unable to connect to database %@.\nBe sure that you have the necessary privileges.", @"message of panel when connection to db failed after selecting from popupbutton"), [chooseDatabaseButton titleOfSelectedItem]]);
- [self setDatabases:self];
- return;
- }
-
- //setConnection of TablesList and TablesDump to reload tables in db
- [selectedDatabase release];
- selectedDatabase = nil;
- selectedDatabase = [[chooseDatabaseButton titleOfSelectedItem] retain];
- [tablesListInstance setConnection:mySQLConnection];
- [tableDumpInstance setConnection:mySQLConnection];
- [tableWindow setTitle:[NSString stringWithFormat:@"(MySQL %@) %@@%@/%@", mySQLVersion, [userField stringValue], [hostField stringValue], [self database]]];
+
+ if ( [chooseDatabaseButton indexOfSelectedItem] == 0 ) {
+ if ([self database]) {
+ [chooseDatabaseButton selectItemWithTitle:[self database]];
+ }
+ return;
+ }
+
+ // show error on connection failed
+ if ( ![mySQLConnection selectDB:[chooseDatabaseButton titleOfSelectedItem]] ) {
+ NSBeginAlertSheet(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, [NSString stringWithFormat:NSLocalizedString(@"Unable to connect to database %@.\nBe sure that you have the necessary privileges.", @"message of panel when connection to db failed after selecting from popupbutton"), [chooseDatabaseButton titleOfSelectedItem]]);
+ [self setDatabases:self];
+ return;
+ }
+
+ //setConnection of TablesList and TablesDump to reload tables in db
+ [selectedDatabase release];
+ selectedDatabase = nil;
+ selectedDatabase = [[chooseDatabaseButton titleOfSelectedItem] retain];
+ [tablesListInstance setConnection:mySQLConnection];
+ [tableDumpInstance setConnection:mySQLConnection];
+ [tableWindow setTitle:[NSString stringWithFormat:@"(MySQL %@) %@@%@/%@", mySQLVersion, [userField stringValue], [hostField stringValue], [self database]]];
}
/**
@@ -476,52 +466,52 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (IBAction)addDatabase:(id)sender
{
- int code = 0;
-
- if (![tablesListInstance selectionShouldChangeInTableView:nil])
- return;
-
- [databaseNameField setStringValue:@""];
- [NSApp beginSheet:databaseSheet
- modalForWindow:tableWindow
- modalDelegate:self
- didEndSelector:nil
- contextInfo:nil];
- code = [NSApp runModalForWindow:databaseSheet];
-
- [NSApp endSheet:databaseSheet];
- [databaseSheet orderOut:nil];
-
- if (!code)
- return;
-
- if ([[databaseNameField stringValue] isEqualToString:@""]) {
- NSBeginAlertSheet(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, NSLocalizedString(@"Database must have a name.", @"message of panel when no db name is given"));
- return;
- }
-
- [mySQLConnection queryString:[NSString stringWithFormat:@"CREATE DATABASE `%@`", [databaseNameField stringValue]]];
- if (![[mySQLConnection getLastErrorMessage] isEqualToString:@""]) {
- //error while creating db
- NSBeginAlertSheet(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, [NSString stringWithFormat:NSLocalizedString(@"Couldn't create database.\nMySQL said: %@", @"message of panel when creation of db failed"), [mySQLConnection getLastErrorMessage]]);
- return;
- }
-
- if (![mySQLConnection selectDB:[databaseNameField stringValue]] ) { //error while selecting new db (is this possible?!)
- NSBeginAlertSheet(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, [NSString stringWithFormat:NSLocalizedString(@"Unable to connect to database %@.\nBe sure that you have the necessary privileges.", @"message of panel when connection to db failed after selecting from popupbutton"),
- [databaseNameField stringValue]]);
+ int code = 0;
+
+ if (![tablesListInstance selectionShouldChangeInTableView:nil])
+ return;
+
+ [databaseNameField setStringValue:@""];
+ [NSApp beginSheet:databaseSheet
+ modalForWindow:tableWindow
+ modalDelegate:self
+ didEndSelector:nil
+ contextInfo:nil];
+ code = [NSApp runModalForWindow:databaseSheet];
+
+ [NSApp endSheet:databaseSheet];
+ [databaseSheet orderOut:nil];
+
+ if (!code)
+ return;
+
+ if ([[databaseNameField stringValue] isEqualToString:@""]) {
+ NSBeginAlertSheet(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, NSLocalizedString(@"Database must have a name.", @"message of panel when no db name is given"));
+ return;
+ }
+
+ [mySQLConnection queryString:[NSString stringWithFormat:@"CREATE DATABASE `%@`", [databaseNameField stringValue]]];
+ if (![[mySQLConnection getLastErrorMessage] isEqualToString:@""]) {
+ //error while creating db
+ NSBeginAlertSheet(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, [NSString stringWithFormat:NSLocalizedString(@"Couldn't create database.\nMySQL said: %@", @"message of panel when creation of db failed"), [mySQLConnection getLastErrorMessage]]);
+ return;
+ }
+
+ if (![mySQLConnection selectDB:[databaseNameField stringValue]] ) { //error while selecting new db (is this possible?!)
+ NSBeginAlertSheet(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, [NSString stringWithFormat:NSLocalizedString(@"Unable to connect to database %@.\nBe sure that you have the necessary privileges.", @"message of panel when connection to db failed after selecting from popupbutton"),
+ [databaseNameField stringValue]]);
+ [self setDatabases:self];
+ return;
+ }
+
+ //select new db
+ [selectedDatabase release];
+ selectedDatabase = nil;
+ selectedDatabase = [[databaseNameField stringValue] retain];
[self setDatabases:self];
- return;
- }
-
- //select new db
- [selectedDatabase release];
- selectedDatabase = nil;
- selectedDatabase = [[databaseNameField stringValue] retain];
- [self setDatabases:self];
- [tablesListInstance setConnection:mySQLConnection];
- [tableDumpInstance setConnection:mySQLConnection];
- [tableWindow setTitle:[NSString stringWithFormat:@"(MySQL %@) %@@%@/%@", mySQLVersion, [userField stringValue], [hostField stringValue], selectedDatabase]];
+ [tablesListInstance setConnection:mySQLConnection];
+ [tableDumpInstance setConnection:mySQLConnection];
+ [tableWindow setTitle:[NSString stringWithFormat:@"(MySQL %@) %@@%@/%@", mySQLVersion, [userField stringValue], [hostField stringValue], selectedDatabase]];
}
/**
@@ -529,7 +519,7 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (IBAction)closeDatabaseSheet:(id)sender
{
- [NSApp stopModalWithCode:[sender tag]];
+ [NSApp stopModalWithCode:[sender tag]];
}
/**
@@ -537,12 +527,12 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (IBAction)removeDatabase:(id)sender
{
- if ([chooseDatabaseButton indexOfSelectedItem] == 0)
- return;
- if (![tablesListInstance selectionShouldChangeInTableView:nil])
- return;
-
- NSBeginAlertSheet(NSLocalizedString(@"Warning", @"warning"), NSLocalizedString(@"Delete", @"delete button"), NSLocalizedString(@"Cancel", @"cancel button"), nil, tableWindow, self, nil, @selector(sheetDidEnd:returnCode:contextInfo:), @"removedatabase", [NSString stringWithFormat:NSLocalizedString(@"Do you really want to delete the database %@?", @"message of panel asking for confirmation for deleting db"), [self database]]);
+ if ([chooseDatabaseButton indexOfSelectedItem] == 0)
+ return;
+ if (![tablesListInstance selectionShouldChangeInTableView:nil])
+ return;
+
+ NSBeginAlertSheet(NSLocalizedString(@"Warning", @"warning"), NSLocalizedString(@"Delete", @"delete button"), NSLocalizedString(@"Cancel", @"cancel button"), nil, tableWindow, self, nil, @selector(sheetDidEnd:returnCode:contextInfo:), @"removedatabase", [NSString stringWithFormat:NSLocalizedString(@"Do you really want to delete the database %@?", @"message of panel asking for confirmation for deleting db"), [self database]]);
}
#pragma mark console methods
@@ -553,13 +543,13 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (void)toggleConsole:(id)sender
{
- NSDrawerState state = [consoleDrawer state];
- if (NSDrawerOpeningState == state || NSDrawerOpenState == state) {
- [consoleDrawer close];
- } else {
- [consoleTextView scrollRangeToVisible:[consoleTextView selectedRange]];
- [consoleDrawer openOnEdge:NSMinYEdge];
- }
+ NSDrawerState state = [consoleDrawer state];
+ if (NSDrawerOpeningState == state || NSDrawerOpenState == state) {
+ [consoleDrawer close];
+ } else {
+ [consoleTextView scrollRangeToVisible:[consoleTextView selectedRange]];
+ [consoleDrawer openOnEdge:NSMinYEdge];
+ }
}
/**
@@ -567,7 +557,7 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (void)clearConsole:(id)sender
{
- [consoleTextView setString:@""];
+ [consoleTextView setString:@""];
}
/**
@@ -575,7 +565,7 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (BOOL)consoleIsOpened
{
- return ([consoleDrawer state] == NSDrawerOpeningState || [consoleDrawer state] == NSDrawerOpenState);
+ return ([consoleDrawer state] == NSDrawerOpeningState || [consoleDrawer state] == NSDrawerOpenState);
}
/**
@@ -583,17 +573,17 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (void)showMessageInConsole:(NSString *)message
{
- int begin, end;
-
- [consoleTextView setSelectedRange:NSMakeRange([[consoleTextView string] length],0)];
- begin = [[consoleTextView string] length];
- [consoleTextView replaceCharactersInRange:NSMakeRange(begin,0) withString:message];
- end = [[consoleTextView string] length];
- [consoleTextView setTextColor:[NSColor blackColor] range:NSMakeRange(begin,end-begin)];
- if ([self consoleIsOpened]) {
- [consoleTextView displayIfNeeded];
- [consoleTextView scrollRangeToVisible:[consoleTextView selectedRange]];
- }
+ int begin, end;
+
+ [consoleTextView setSelectedRange:NSMakeRange([[consoleTextView string] length],0)];
+ begin = [[consoleTextView string] length];
+ [consoleTextView replaceCharactersInRange:NSMakeRange(begin,0) withString:message];
+ end = [[consoleTextView string] length];
+ [consoleTextView setTextColor:[NSColor blackColor] range:NSMakeRange(begin,end-begin)];
+ if ([self consoleIsOpened]) {
+ [consoleTextView displayIfNeeded];
+ [consoleTextView scrollRangeToVisible:[consoleTextView selectedRange]];
+ }
}
/**
@@ -601,17 +591,17 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (void)showErrorInConsole:(NSString *)error
{
- int begin, end;
-
- [consoleTextView setSelectedRange:NSMakeRange([[consoleTextView string] length],0)];
- begin = [[consoleTextView string] length];
- [consoleTextView replaceCharactersInRange:NSMakeRange(begin,0) withString:error];
- end = [[consoleTextView string] length];
- [consoleTextView setTextColor:[NSColor redColor] range:NSMakeRange(begin,end-begin)];
- if ([self consoleIsOpened]) {
- [consoleTextView displayIfNeeded];
- [consoleTextView scrollRangeToVisible:[consoleTextView selectedRange]];
- }
+ int begin, end;
+
+ [consoleTextView setSelectedRange:NSMakeRange([[consoleTextView string] length],0)];
+ begin = [[consoleTextView string] length];
+ [consoleTextView replaceCharactersInRange:NSMakeRange(begin,0) withString:error];
+ end = [[consoleTextView string] length];
+ [consoleTextView setTextColor:[NSColor redColor] range:NSMakeRange(begin,end-begin)];
+ if ([self consoleIsOpened]) {
+ [consoleTextView displayIfNeeded];
+ [consoleTextView scrollRangeToVisible:[consoleTextView selectedRange]];
+ }
}
#pragma mark Encoding Methods
@@ -621,23 +611,23 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (void)setEncoding:(NSString *)mysqlEncoding
{
- // set encoding of connection and client
- [mySQLConnection queryString:[NSString stringWithFormat:@"SET NAMES '%@'", mysqlEncoding]];
+ // set encoding of connection and client
+ [mySQLConnection queryString:[NSString stringWithFormat:@"SET NAMES '%@'", mysqlEncoding]];
if ( [[mySQLConnection getLastErrorMessage] isEqualToString:@""] ) {
[mySQLConnection setEncoding:[CMMCPConnection encodingForMySQLEncoding:[mysqlEncoding UT]]];
- [_encoding autorelease];
- _encoding = [mysqlEncoding retain];
+ [_encoding autorelease];
+ _encoding = [mysqlEncoding retain];
} else {
[self detectEncoding];
}
-
- // update the selected menu item
- [self updateEncodingMenuWithSelectedEncoding:[self encodingNameFromMySQLEncoding:mysqlEncoding]];
- // reload stuff
- [tableSourceInstance reloadTable:self];
- [tableContentInstance reloadTable:self];
- [tableStatusInstance reloadTable:self];
+ // update the selected menu item
+ [self updateEncodingMenuWithSelectedEncoding:[self encodingNameFromMySQLEncoding:mysqlEncoding]];
+
+ // reload stuff
+ [tableSourceInstance reloadTable:self];
+ [tableContentInstance reloadTable:self];
+ [tableStatusInstance reloadTable:self];
}
/**
@@ -645,7 +635,7 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (NSString *)encoding
{
- return _encoding;
+ return _encoding;
}
/**
@@ -655,17 +645,17 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (void)updateEncodingMenuWithSelectedEncoding:(NSString *)encoding
{
- NSEnumerator *dbEncodingMenuEn = [[selectEncodingMenu itemArray] objectEnumerator];
- id menuItem;
- int correctStateForMenuItem;
- while (menuItem = [dbEncodingMenuEn nextObject]) {
- correctStateForMenuItem = [[menuItem title] isEqualToString:encoding] ? NSOnState : NSOffState;
-
- if ([menuItem state] == correctStateForMenuItem) // don't re-apply state incase it causes performance issues
- continue;
-
- [menuItem setState:correctStateForMenuItem];
- }
+ NSEnumerator *dbEncodingMenuEn = [[selectEncodingMenu itemArray] objectEnumerator];
+ id menuItem;
+ int correctStateForMenuItem;
+ while (menuItem = [dbEncodingMenuEn nextObject]) {
+ correctStateForMenuItem = [[menuItem title] isEqualToString:encoding] ? NSOnState : NSOffState;
+
+ if ([menuItem state] == correctStateForMenuItem) // don't re-apply state incase it causes performance issues
+ continue;
+
+ [menuItem setState:correctStateForMenuItem];
+ }
}
/**
@@ -673,30 +663,30 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (NSString *)encodingNameFromMySQLEncoding:(NSString *)mysqlEncoding
{
- NSDictionary *translationMap = [NSDictionary dictionaryWithObjectsAndKeys:
- @"UCS-2 Unicode (ucs2)", @"ucs2",
- @"UTF-8 Unicode (utf8)", @"utf8",
- @"US ASCII (ascii)", @"ascii",
- @"ISO Latin 1 (latin1)", @"latin1",
- @"Mac Roman (macroman)", @"macroman",
- @"Windows Latin 2 (cp1250)", @"cp1250",
- @"ISO Latin 2 (latin2)", @"latin2",
- @"Windows Arabic (cp1256)", @"cp1256",
- @"ISO Greek (greek)", @"greek",
- @"ISO Hebrew (hebrew)", @"hebrew",
- @"ISO Turkish (latin5)", @"latin5",
- @"Windows Baltic (cp1257)", @"cp1257",
- @"Windows Cyrillic (cp1251)", @"cp1251",
- @"Big5 Traditional Chinese (big5)", @"big5",
- @"Shift-JIS Japanese (sjis)", @"sjis",
- @"EUC-JP Japanese (ujis)", @"ujis",
- nil];
- NSString *encodingName = [translationMap valueForKey:mysqlEncoding];
-
- if (!encodingName)
- return [NSString stringWithFormat:@"Unknown Encoding (%@)", mysqlEncoding, nil];
-
- return encodingName;
+ NSDictionary *translationMap = [NSDictionary dictionaryWithObjectsAndKeys:
+ @"UCS-2 Unicode (ucs2)", @"ucs2",
+ @"UTF-8 Unicode (utf8)", @"utf8",
+ @"US ASCII (ascii)", @"ascii",
+ @"ISO Latin 1 (latin1)", @"latin1",
+ @"Mac Roman (macroman)", @"macroman",
+ @"Windows Latin 2 (cp1250)", @"cp1250",
+ @"ISO Latin 2 (latin2)", @"latin2",
+ @"Windows Arabic (cp1256)", @"cp1256",
+ @"ISO Greek (greek)", @"greek",
+ @"ISO Hebrew (hebrew)", @"hebrew",
+ @"ISO Turkish (latin5)", @"latin5",
+ @"Windows Baltic (cp1257)", @"cp1257",
+ @"Windows Cyrillic (cp1251)", @"cp1251",
+ @"Big5 Traditional Chinese (big5)", @"big5",
+ @"Shift-JIS Japanese (sjis)", @"sjis",
+ @"EUC-JP Japanese (ujis)", @"ujis",
+ nil];
+ NSString *encodingName = [translationMap valueForKey:mysqlEncoding];
+
+ if (!encodingName)
+ return [NSString stringWithFormat:@"Unknown Encoding (%@)", mysqlEncoding, nil];
+
+ return encodingName;
}
/**
@@ -704,30 +694,30 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (NSString *)mysqlEncodingFromDisplayEncoding:(NSString *)encodingName
{
- NSDictionary *translationMap = [NSDictionary dictionaryWithObjectsAndKeys:
- @"ucs2", @"UCS-2 Unicode (ucs2)",
- @"utf8", @"UTF-8 Unicode (utf8)",
- @"ascii", @"US ASCII (ascii)",
- @"latin1", @"ISO Latin 1 (latin1)",
- @"macroman", @"Mac Roman (macroman)",
- @"cp1250", @"Windows Latin 2 (cp1250)",
- @"latin2", @"ISO Latin 2 (latin2)",
- @"cp1256", @"Windows Arabic (cp1256)",
- @"greek", @"ISO Greek (greek)",
- @"hebrew", @"ISO Hebrew (hebrew)",
- @"latin5", @"ISO Turkish (latin5)",
- @"cp1257", @"Windows Baltic (cp1257)",
- @"cp1251", @"Windows Cyrillic (cp1251)",
- @"big5", @"Big5 Traditional Chinese (big5)",
- @"sjis", @"Shift-JIS Japanese (sjis)",
- @"ujis", @"EUC-JP Japanese (ujis)",
- nil];
- NSString *mysqlEncoding = [translationMap valueForKey:encodingName];
-
- if (!mysqlEncoding)
- return @"utf8";
-
- return mysqlEncoding;
+ NSDictionary *translationMap = [NSDictionary dictionaryWithObjectsAndKeys:
+ @"ucs2", @"UCS-2 Unicode (ucs2)",
+ @"utf8", @"UTF-8 Unicode (utf8)",
+ @"ascii", @"US ASCII (ascii)",
+ @"latin1", @"ISO Latin 1 (latin1)",
+ @"macroman", @"Mac Roman (macroman)",
+ @"cp1250", @"Windows Latin 2 (cp1250)",
+ @"latin2", @"ISO Latin 2 (latin2)",
+ @"cp1256", @"Windows Arabic (cp1256)",
+ @"greek", @"ISO Greek (greek)",
+ @"hebrew", @"ISO Hebrew (hebrew)",
+ @"latin5", @"ISO Turkish (latin5)",
+ @"cp1257", @"Windows Baltic (cp1257)",
+ @"cp1251", @"Windows Cyrillic (cp1251)",
+ @"big5", @"Big5 Traditional Chinese (big5)",
+ @"sjis", @"Shift-JIS Japanese (sjis)",
+ @"ujis", @"EUC-JP Japanese (ujis)",
+ nil];
+ NSString *mysqlEncoding = [translationMap valueForKey:encodingName];
+
+ if (!mysqlEncoding)
+ return @"utf8";
+
+ return mysqlEncoding;
}
/**
@@ -737,8 +727,8 @@ reused when user hits the close button of the variablseSheet or of the createTab
{
// mysql > 4.0
id mysqlEncoding = [[[mySQLConnection queryString:@"SHOW VARIABLES LIKE 'character_set_connection'"] fetchRowAsDictionary] objectForKey:@"Value"];
- _supportsEncoding = (mysqlEncoding != nil);
-
+ _supportsEncoding = (mysqlEncoding != nil);
+
if ( [mysqlEncoding isKindOfClass:[NSData class]] ) { // MySQL 4.1.14 returns the mysql variables as nsdata
mysqlEncoding = [mySQLConnection stringWithText:mysqlEncoding];
}
@@ -750,13 +740,13 @@ reused when user hits the close button of the variablseSheet or of the createTab
mysqlEncoding = @"latin1";
}
[mySQLConnection setEncoding:[CMMCPConnection encodingForMySQLEncoding:[mysqlEncoding cString]]];
-
- // save the encoding
- [_encoding autorelease];
- _encoding = [mysqlEncoding retain];
-
- // update the selected menu item
- [self updateEncodingMenuWithSelectedEncoding:[self encodingNameFromMySQLEncoding:mysqlEncoding]];
+
+ // save the encoding
+ [_encoding autorelease];
+ _encoding = [mysqlEncoding retain];
+
+ // update the selected menu item
+ [self updateEncodingMenuWithSelectedEncoding:[self encodingNameFromMySQLEncoding:mysqlEncoding]];
}
/**
@@ -959,7 +949,7 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (NSString *)host
{
- return [hostField stringValue];
+ return [hostField stringValue];
}
/**
@@ -967,8 +957,8 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (void)doPerformQueryService:(NSString *)query
{
- [tableWindow makeKeyAndOrderFront:self];
- [tablesListInstance doPerformQueryService:query];
+ [tableWindow makeKeyAndOrderFront:self];
+ [tablesListInstance doPerformQueryService:query];
}
/**
@@ -976,22 +966,22 @@ reused when user hits the close button of the variablseSheet or of the createTab
*/
- (void)flushPrivileges:(id)sender
{
- [mySQLConnection queryString:@"FLUSH PRIVILEGES"];
-
- if ( [[mySQLConnection getLastErrorMessage] isEqualToString:@""] ) {
- //flushed privileges without errors
- NSBeginAlertSheet(NSLocalizedString(@"Flushed Privileges", @"title of panel when successfully flushed privs"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, NSLocalizedString(@"Succesfully flushed privileges.", @"message of panel when successfully flushed privs"));
- } else {
- //error while flushing privileges
- NSBeginAlertSheet(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, [NSString stringWithFormat:NSLocalizedString(@"Couldn't flush privileges.\nMySQL said: %@", @"message of panel when flushing privs failed"),
- [mySQLConnection getLastErrorMessage]]);
- }
+ [mySQLConnection queryString:@"FLUSH PRIVILEGES"];
+
+ if ( [[mySQLConnection getLastErrorMessage] isEqualToString:@""] ) {
+ //flushed privileges without errors
+ NSBeginAlertSheet(NSLocalizedString(@"Flushed Privileges", @"title of panel when successfully flushed privs"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, NSLocalizedString(@"Succesfully flushed privileges.", @"message of panel when successfully flushed privs"));
+ } else {
+ //error while flushing privileges
+ NSBeginAlertSheet(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, [NSString stringWithFormat:NSLocalizedString(@"Couldn't flush privileges.\nMySQL said: %@", @"message of panel when flushing privs failed"),
+ [mySQLConnection getLastErrorMessage]]);
+ }
}
- (void)showVariables:(id)sender
/*
-shows the mysql variables
-*/
+ shows the mysql variables
+ */
{
CMMCPResult *theResult;
NSMutableArray *tempResult = [NSMutableArray array];
@@ -1011,8 +1001,8 @@ shows the mysql variables
[variablesTableView reloadData];
//show variables sheet
[NSApp beginSheet:variablesSheet
- modalForWindow:tableWindow modalDelegate:self
- didEndSelector:nil contextInfo:nil];
+ modalForWindow:tableWindow modalDelegate:self
+ didEndSelector:nil contextInfo:nil];
[NSApp runModalForWindow:variablesSheet];
[NSApp endSheet:variablesSheet];
@@ -1038,32 +1028,32 @@ shows the mysql variables
//getter methods
- (NSString *)database
/*
-returns the currently selected database
-*/
+ returns the currently selected database
+ */
{
return selectedDatabase;
}
- (NSString *)table
/*
-returns the currently selected table (passing the request to TablesList)
-*/
+ returns the currently selected table (passing the request to TablesList)
+ */
{
return (NSString *)[tablesListInstance table];
}
- (NSString *)mySQLVersion
/*
-returns the mysql version
-*/
+ returns the mysql version
+ */
{
return mySQLVersion;
}
- (NSString *)user
/*
-returns the mysql version
-*/
+ returns the mysql version
+ */
{
return [userField stringValue];
}
@@ -1072,65 +1062,65 @@ returns the mysql version
//notification center methods
- (void)willPerformQuery:(NSNotification *)notification
/*
-invoked before a query is performed
-*/
+ invoked before a query is performed
+ */
{
[queryProgressBar startAnimation:self];
}
- (void)hasPerformedQuery:(NSNotification *)notification
/*
-invoked after a query has been performed
-*/
+ invoked after a query has been performed
+ */
{
[queryProgressBar stopAnimation:self];
}
- (void)applicationWillTerminate:(NSNotification *)notification
/*
-invoked when the application will terminate
-*/
+ invoked when the application will terminate
+ */
{
[tablesListInstance selectionShouldChangeInTableView:nil];
}
- (void)tunnelStatusChanged:(NSNotification *)notification
/*
-the status of the tunnel has changed
-*/
+ the status of the tunnel has changed
+ */
{
}
//menu methods
- (IBAction)import:(id)sender
/*
-passes the request to the tableDump object
-*/
+ passes the request to the tableDump object
+ */
{
[tableDumpInstance importFile:[sender tag]];
}
- (IBAction)importCSV:(id)sender
{
- return [self import:sender];
+ return [self import:sender];
}
- (IBAction)export:(id)sender
/*
-passes the request to the tableDump object
-*/
+ passes the request to the tableDump object
+ */
{
[tableDumpInstance exportFile:[sender tag]];
}
- (IBAction)exportTable:(id)sender
{
- return [self export:sender];
+ return [self export:sender];
}
- (IBAction)exportMultipleTables:(id)sender
{
- return [self export:sender];
+ return [self export:sender];
}
/**
@@ -1139,23 +1129,23 @@ passes the request to the tableDump object
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem
{
if ([menuItem action] == @selector(import:)) {
- return ([self database] != nil);
+ return ([self database] != nil);
}
if ([menuItem action] == @selector(importCSV:)) {
- return ([self database] != nil && [self table] != nil);
+ return ([self database] != nil && [self table] != nil);
}
if ([menuItem action] == @selector(export:)) {
- return ([self database] != nil);
+ return ([self database] != nil);
}
if ([menuItem action] == @selector(exportTable:)) {
- return ([self database] != nil && [self table] != nil);
+ return ([self database] != nil && [self table] != nil);
}
if ([menuItem action] == @selector(exportMultipleTables:)) {
- return ([self database] != nil);
+ return ([self database] != nil);
}
if ([menuItem action] == @selector(chooseEncoding:)) {
@@ -1179,26 +1169,26 @@ passes the request to the tableDump object
- (IBAction)viewStructure:(id)sender
{
- [tableTabView selectTabViewItemAtIndex:0];
- [mainToolbar setSelectedItemIdentifier:@"SwitchToTableStructureToolbarItemIdentifier"];
+ [tableTabView selectTabViewItemAtIndex:0];
+ [mainToolbar setSelectedItemIdentifier:@"SwitchToTableStructureToolbarItemIdentifier"];
}
- (IBAction)viewContent:(id)sender
{
- [tableTabView selectTabViewItemAtIndex:1];
- [mainToolbar setSelectedItemIdentifier:@"SwitchToTableContentToolbarItemIdentifier"];
+ [tableTabView selectTabViewItemAtIndex:1];
+ [mainToolbar setSelectedItemIdentifier:@"SwitchToTableContentToolbarItemIdentifier"];
}
- (IBAction)viewQuery:(id)sender
{
- [tableTabView selectTabViewItemAtIndex:2];
- [mainToolbar setSelectedItemIdentifier:@"SwitchToRunQueryToolbarItemIdentifier"];
+ [tableTabView selectTabViewItemAtIndex:2];
+ [mainToolbar setSelectedItemIdentifier:@"SwitchToRunQueryToolbarItemIdentifier"];
}
- (IBAction)viewStatus:(id)sender
{
- [tableTabView selectTabViewItemAtIndex:3];
- [mainToolbar setSelectedItemIdentifier:@"SwitchToTableStatusToolbarItemIdentifier"];
+ [tableTabView selectTabViewItemAtIndex:3];
+ [mainToolbar setSelectedItemIdentifier:@"SwitchToTableStatusToolbarItemIdentifier"];
}
@@ -1209,25 +1199,25 @@ passes the request to the tableDump object
*/
- (void)setupToolbar
{
- // create a new toolbar instance, and attach it to our document window
- mainToolbar = [[[NSToolbar alloc] initWithIdentifier:@"TableWindowToolbar"] autorelease];
-
- // set up toolbar properties
- [mainToolbar setAllowsUserCustomization: YES];
- [mainToolbar setAutosavesConfiguration: YES];
- [mainToolbar setDisplayMode:NSToolbarDisplayModeIconAndLabel];
-
- // set ourself as the delegate
- [mainToolbar setDelegate:self];
-
- // attach the toolbar to the document window
- [tableWindow setToolbar:mainToolbar];
-
- // select the structure toolbar item
- [self viewStructure:self];
-
- // update the toolbar item size
- [self updateChooseDatabaseToolbarItemWidth];
+ // create a new toolbar instance, and attach it to our document window
+ mainToolbar = [[[NSToolbar alloc] initWithIdentifier:@"TableWindowToolbar"] autorelease];
+
+ // set up toolbar properties
+ [mainToolbar setAllowsUserCustomization: YES];
+ [mainToolbar setAutosavesConfiguration: YES];
+ [mainToolbar setDisplayMode:NSToolbarDisplayModeIconAndLabel];
+
+ // set ourself as the delegate
+ [mainToolbar setDelegate:self];
+
+ // attach the toolbar to the document window
+ [tableWindow setToolbar:mainToolbar];
+
+ // select the structure toolbar item
+ [self viewStructure:self];
+
+ // update the toolbar item size
+ [self updateChooseDatabaseToolbarItemWidth];
}
/**
@@ -1332,14 +1322,14 @@ passes the request to the tableDump object
- (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar*)toolbar
{
return [NSArray arrayWithObjects:
- @"DatabaseSelectToolbarItemIdentifier",
- @"ToggleConsoleIdentifier",
- @"ClearConsoleIdentifier",
- @"FlushPrivilegesIdentifier",
- @"SwitchToTableStructureToolbarItemIdentifier",
- @"SwitchToTableContentToolbarItemIdentifier",
- @"SwitchToRunQueryToolbarItemIdentifier",
- @"SwitchToTableStatusToolbarItemIdentifier",
+ @"DatabaseSelectToolbarItemIdentifier",
+ @"ToggleConsoleIdentifier",
+ @"ClearConsoleIdentifier",
+ @"FlushPrivilegesIdentifier",
+ @"SwitchToTableStructureToolbarItemIdentifier",
+ @"SwitchToTableContentToolbarItemIdentifier",
+ @"SwitchToRunQueryToolbarItemIdentifier",
+ @"SwitchToTableStatusToolbarItemIdentifier",
NSToolbarCustomizeToolbarItemIdentifier,
NSToolbarFlexibleSpaceItemIdentifier,
NSToolbarSpaceItemIdentifier,
@@ -1352,25 +1342,25 @@ passes the request to the tableDump object
*/
- (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar*)toolbar
{
- return [NSArray arrayWithObjects:
- @"DatabaseSelectToolbarItemIdentifier",
- NSToolbarFlexibleSpaceItemIdentifier,
- @"SwitchToTableStructureToolbarItemIdentifier",
- @"SwitchToTableContentToolbarItemIdentifier",
- @"SwitchToRunQueryToolbarItemIdentifier",
- NSToolbarFlexibleSpaceItemIdentifier,
- nil];
+ return [NSArray arrayWithObjects:
+ @"DatabaseSelectToolbarItemIdentifier",
+ NSToolbarFlexibleSpaceItemIdentifier,
+ @"SwitchToTableStructureToolbarItemIdentifier",
+ @"SwitchToTableContentToolbarItemIdentifier",
+ @"SwitchToRunQueryToolbarItemIdentifier",
+ NSToolbarFlexibleSpaceItemIdentifier,
+ nil];
}
- (NSArray *)toolbarSelectableItemIdentifiers:(NSToolbar *)toolbar
{
- return [NSArray arrayWithObjects:
- @"SwitchToTableStructureToolbarItemIdentifier",
- @"SwitchToTableContentToolbarItemIdentifier",
- @"SwitchToRunQueryToolbarItemIdentifier",
- @"SwitchToTableStatusToolbarItemIdentifier",
- nil];
-
+ return [NSArray arrayWithObjects:
+ @"SwitchToTableStructureToolbarItemIdentifier",
+ @"SwitchToTableContentToolbarItemIdentifier",
+ @"SwitchToRunQueryToolbarItemIdentifier",
+ @"SwitchToTableStatusToolbarItemIdentifier",
+ nil];
+
}
/**
@@ -1387,7 +1377,7 @@ passes the request to the tableDump object
[toolbarItem setImage:[NSImage imageNamed:@"showconsole"]];
}
}
-
+
return YES;
}
@@ -1395,37 +1385,37 @@ passes the request to the tableDump object
//NSDocument methods
- (NSString *)windowNibName
/*
-returns the name of the nib file
-*/
+ returns the name of the nib file
+ */
{
return @"DBView";
}
- (void)windowControllerDidLoadNib:(NSWindowController *) aController
/*
-code that need to be executed once the windowController has loaded the document's window
-sets upt the interface (small fonts)
-*/
+ code that need to be executed once the windowController has loaded the document's window
+ sets upt the interface (small fonts)
+ */
{
[aController setShouldCascadeWindows:YES];
[super windowControllerDidLoadNib:aController];
-
+
NSEnumerator *theCols = [[variablesTableView tableColumns] objectEnumerator];
NSTableColumn *theCol;
-
-// [tableWindow makeKeyAndOrderFront:self];
-
+
+ // [tableWindow makeKeyAndOrderFront:self];
+
prefs = [[NSUserDefaults standardUserDefaults] retain];
selectedFavorite = [[NSString alloc] initWithString:NSLocalizedString(@"Custom", @"menu item for custom connection")];
//register for notifications
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willPerformQuery:)
- name:@"SMySQLQueryWillBePerformed" object:nil];
+ name:@"SMySQLQueryWillBePerformed" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hasPerformedQuery:)
- name:@"SMySQLQueryHasBeenPerformed" object:nil];
+ name:@"SMySQLQueryHasBeenPerformed" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillTerminate:)
- name:@"NSApplicationWillTerminateNotification" object:nil];
-
+ name:@"NSApplicationWillTerminateNotification" object:nil];
+
//set up interface
if ( [prefs boolForKey:@"useMonospacedFonts"] ) {
[consoleTextView setFont:[NSFont fontWithName:@"Monaco" size:[NSFont smallSystemFontSize]]];
@@ -1442,17 +1432,17 @@ sets upt the interface (small fonts)
}
}
[consoleDrawer setContentSize:NSMakeSize(110,110)];
-
+
//set up toolbar
[self setupToolbar];
-// [self connectToDB:nil];
+ // [self connectToDB:nil];
[self performSelector:@selector(connectToDB:) withObject:tableWindow afterDelay:0.0f];
}
- (void)windowWillClose:(NSNotification *)aNotification
{
[self closeConnection];
-
+
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
@@ -1460,23 +1450,23 @@ sets upt the interface (small fonts)
//NSWindow delegate methods
- (BOOL)windowShouldClose:(id)sender
/*
-invoked when the document window should close
-*/
+ invoked when the document window should close
+ */
{
if ( ![tablesListInstance selectionShouldChangeInTableView:nil] ) {
return NO;
} else {
return YES;
}
-
+
}
//SMySQL delegate methods
- (void)willQueryString:(NSString *)query
/*
-invoked when framework will perform a query
-*/
+ invoked when framework will perform a query
+ */
{
NSString *currentTime = [[NSDate date] descriptionWithCalendarFormat:@"%H:%M:%S" timeZone:nil locale:nil];
@@ -1485,8 +1475,8 @@ invoked when framework will perform a query
- (void)queryGaveError:(NSString *)error
/*
-invoked when query gave an error
-*/
+ invoked when query gave an error
+ */
{
NSString *currentTime = [[NSDate date] descriptionWithCalendarFormat:@"%H:%M:%S" timeZone:nil locale:nil];
@@ -1508,7 +1498,7 @@ invoked when query gave an error
*/
- (float)splitView:(NSSplitView *)sender constrainMaxCoordinate:(float)proposedMax ofSubviewAt:(int)offset
{
- return proposedMax - 600;
+ return proposedMax - 600;
}
/**
@@ -1521,7 +1511,7 @@ invoked when query gave an error
- (void)splitViewDidResizeSubviews:(NSNotification *)notification
{
- [self updateChooseDatabaseToolbarItemWidth];
+ [self updateChooseDatabaseToolbarItemWidth];
}
- (NSRect)splitView:(NSSplitView *)splitView additionalEffectiveRectOfDividerAtIndex:(int)dividerIndex
@@ -1535,25 +1525,25 @@ invoked when query gave an error
- (void)updateChooseDatabaseToolbarItemWidth
{
- // make sure the toolbar item is actually in the toolbar
- if (!chooseDatabaseToolbarItem)
- return;
-
- // grab the width of the left pane
- float leftPaneWidth = [dbTablesTableView frame].size.width;
-
- // subtract some pixels to allow for misc stuff
- leftPaneWidth -= 12;
-
- // make sure it's not too small or to big
- if (leftPaneWidth < 130)
- leftPaneWidth = 130;
+ // make sure the toolbar item is actually in the toolbar
+ if (!chooseDatabaseToolbarItem)
+ return;
+
+ // grab the width of the left pane
+ float leftPaneWidth = [dbTablesTableView frame].size.width;
+
+ // subtract some pixels to allow for misc stuff
+ leftPaneWidth -= 12;
+
+ // make sure it's not too small or to big
+ if (leftPaneWidth < 130)
+ leftPaneWidth = 130;
if (leftPaneWidth > 360)
- leftPaneWidth = 360;
-
- // apply the size
- [chooseDatabaseToolbarItem setMinSize:NSMakeSize(leftPaneWidth, 26)];
- [chooseDatabaseToolbarItem setMaxSize:NSMakeSize(leftPaneWidth, 32)];
+ leftPaneWidth = 360;
+
+ // apply the size
+ [chooseDatabaseToolbarItem setMinSize:NSMakeSize(leftPaneWidth, 26)];
+ [chooseDatabaseToolbarItem setMaxSize:NSMakeSize(leftPaneWidth, 32)];
}
@@ -1564,17 +1554,17 @@ invoked when query gave an error
}
- (id)tableView:(NSTableView *)aTableView
- objectValueForTableColumn:(NSTableColumn *)aTableColumn
+objectValueForTableColumn:(NSTableColumn *)aTableColumn
row:(int)rowIndex
{
id theValue;
theValue = [[variables objectAtIndex:rowIndex] objectForKey:[aTableColumn identifier]];
-
+
if ( [theValue isKindOfClass:[NSData class]] ) {
theValue = [[NSString alloc] initWithData:theValue encoding:[mySQLConnection encoding]];
}
-
+
return theValue;
}
@@ -1587,15 +1577,15 @@ invoked when query gave an error
- (void)dealloc
{
[chooseDatabaseButton release];
- [mySQLConnection release];
- [favorites release];
- [variables release];
- [selectedDatabase release];
- [selectedFavorite release];
- [mySQLVersion release];
- [prefs release];
-
- [super dealloc];
+ [mySQLConnection release];
+ [favorites release];
+ [variables release];
+ [selectedDatabase release];
+ [selectedFavorite release];
+ [mySQLVersion release];
+ [prefs release];
+
+ [super dealloc];
}
@end