aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPConnectionController.m
diff options
context:
space:
mode:
Diffstat (limited to 'Source/SPConnectionController.m')
-rw-r--r--Source/SPConnectionController.m39
1 files changed, 38 insertions, 1 deletions
diff --git a/Source/SPConnectionController.m b/Source/SPConnectionController.m
index 93b7dc36..212df1da 100644
--- a/Source/SPConnectionController.m
+++ b/Source/SPConnectionController.m
@@ -72,6 +72,7 @@ static NSString *SPExportFavoritesFilename = @"SequelProFavorites.plist";
- (NSString *)_stripInvalidCharactersFromString:(NSString *)subject;
- (void)_updateFavoritePasswordsFromField:(NSControl *)control;
+- (void)_resetConnectionDetailsInputInterface;
static NSComparisonResult _compareFavoritesUsingKey(id favorite1, id favorite2, void *key);
@@ -743,7 +744,9 @@ static NSComparisonResult _compareFavoritesUsingKey(id favorite1, id favorite2,
account:[keychain accountForSSHUser:[self sshUser] sshHost:[self sshHost]]];
}
- SPTreeNode *node = [favoritesController addFavoriteNodeWithData:newFavorite asChildOfNode:nil];
+ SPTreeNode *selectedNode = [self selectedFavoriteNode];
+
+ SPTreeNode *node = [favoritesController addFavoriteNodeWithData:newFavorite asChildOfNode:[selectedNode isGroup] ? selectedNode : nil];
[self _reloadFavoritesViewData];
[self _selectNode:node];
@@ -1328,6 +1331,7 @@ static NSComparisonResult _compareFavoritesUsingKey(id favorite1, id favorite2,
[favoritesController removeFavoriteNode:node];
+ [self _resetConnectionDetailsInputInterface];
[self _reloadFavoritesViewData];
// Clear the selection
@@ -1476,6 +1480,39 @@ static NSComparisonResult _compareFavoritesUsingKey(id favorite1, id favorite2,
}
}
+/**
+ * Resets the connection details input interface to an empty state.
+ */
+- (void)_resetConnectionDetailsInputInterface
+{
+ if (currentFavorite) [currentFavorite release], currentFavorite = nil;
+
+ [self setName:@""];
+ [self setHost:@""];
+ [self setSocket:@""];
+ [self setUser:@""];
+ [self setPort:@""];
+ [self setDatabase:@""];
+ [self setPassword:@""];
+
+ // SSL details
+ [self setUseSSL:NSOffState];
+ [self setSslKeyFileLocationEnabled:NSOffState];
+ [self setSslKeyFileLocation:@""];
+ [self setSslCertificateFileLocationEnabled:NSOffState];
+ [self setSslCertificateFileLocation:@""];
+ [self setSslCACertFileLocationEnabled:NSOffState];
+ [self setSslCACertFileLocation:@""];
+
+ // SSH details
+ [self setSshHost:@""];
+ [self setSshUser:@""];
+ [self setSshPassword:@""];
+ [self setSshKeyLocationEnabled:NSOffState];
+ [self setSshKeyLocation:@""];
+ [self setSshPort:@""];
+}
+
#pragma mark -
- (void)dealloc