Check if we are deleting the currently selected server - if so, make
authorMichael J. Rubinsky <mrubinsk@horde.org>
Mon, 2 Feb 2009 23:46:03 +0000 (18:46 -0500)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Tue, 3 Feb 2009 15:14:34 +0000 (10:14 -0500)
sure we call disconnect before returning.

iPhoto2Ansel/AnselExportController.m

index cc618e6..fc7bc20 100644 (file)
@@ -111,17 +111,20 @@ NSString * const TURAnselServerPasswordKey = @"password";
 }
 
 // Remove the selected server from the saved list.
-// TODO: Sanity checks - make sure we don't delete the current server, 
-// or disconnect first etc...
 - (IBAction)removeServer: (id)sender
 {
+    NSTableColumn *theCol = [serverTable tableColumnWithIdentifier:@"nickname"];
+    
+    // We are deleting the entry for the currently selected server - make sure 
+    // we disconnect.
+    if ([currentServer objectForKey:TURAnselServerNickKey] == [[theCol dataCell] stringValue]) {
+        [self disconnect];
+    }
     NSUserDefaults *userPrefs = [NSUserDefaults standardUserDefaults]; 
     [anselServers removeObjectAtIndex: [serverTable selectedRow]];
     [userPrefs setObject:anselServers forKey:TURAnselServersKey];
     [userPrefs synchronize];
-    NSLog(@"Attempting to reload");
     [serverTable reloadData];
-    NSLog(@"Reloaded");
     [self updateServersPopupMenu];
 }
 
@@ -131,11 +134,6 @@ NSString * const TURAnselServerPasswordKey = @"password";
     if ([mServersPopUp indexOfSelectedItem] == [mServersPopUp numberOfItems] - 1) {
         // Server list
         [self showServerListPanel];
-        
-        // Disconnect from the current server.
-        // TODO: See which server we deleted and only disconnect if that was the
-        // one we removed.
-        [self disconnect];
     } else if ([mServersPopUp indexOfSelectedItem] == [mServersPopUp numberOfItems] - 2) {
         // New Server
         [self showNewServerSheet];