diff options
author | rowanbeentje <rowan@beent.je> | 2013-03-07 01:29:19 +0000 |
---|---|---|
committer | rowanbeentje <rowan@beent.je> | 2013-03-07 01:29:19 +0000 |
commit | 2a7c3296a7186558446d136d4c87633126561371 (patch) | |
tree | 0466e2d5c60bca04dd8c82eaec1cc70498cc0227 | |
parent | 1ebe3e3b0c5fc9ea248dfd4a678d3166d5e62c78 (diff) | |
download | sequelpro-2a7c3296a7186558446d136d4c87633126561371.tar.gz sequelpro-2a7c3296a7186558446d136d4c87633126561371.tar.bz2 sequelpro-2a7c3296a7186558446d136d4c87633126561371.zip |
- Fix crashes in the User Manager when fields don't validate but a save/cancel/tab switch is still triggered, addressing Issue #1627
-rw-r--r-- | Source/SPUserManager.m | 9 | ||||
-rw-r--r-- | Source/SPUserManagerDelegate.m | 6 |
2 files changed, 14 insertions, 1 deletions
diff --git a/Source/SPUserManager.m b/Source/SPUserManager.m index 8b7a3f33..eb69203a 100644 --- a/Source/SPUserManager.m +++ b/Source/SPUserManager.m @@ -464,6 +464,9 @@ static const NSString *SPTableViewNameColumnID = @"NameColumn"; */ - (IBAction)doCancel:(id)sender { + // Discard any pending changes + [treeController discardEditing]; + // Change the first responder to end editing in any field [[self window] makeFirstResponder:self]; @@ -479,6 +482,12 @@ static const NSString *SPTableViewNameColumnID = @"NameColumn"; */ - (IBAction)doApply:(id)sender { + + // If editing can't be committed, cancel the apply + if (![treeController commitEditing]) { + return; + } + errorsString = [[NSMutableString alloc] init]; // Change the first responder to end editing in any field diff --git a/Source/SPUserManagerDelegate.m b/Source/SPUserManagerDelegate.m index c1a96ba9..8fa2b980 100644 --- a/Source/SPUserManagerDelegate.m +++ b/Source/SPUserManagerDelegate.m @@ -124,7 +124,11 @@ static NSString *SPSchemaPrivilegesTabIdentifier = @"Schema Privileges"; BOOL retVal = YES; if ([[treeController selectedObjects] count] == 0) return NO; - + + if (![treeController commitEditing]) { + return NO; + } + // Currently selected object in tree id selectedObject = [[treeController selectedObjects] objectAtIndex:0]; |