diff options
author | Mikkel Krautz <mikkel@krautz.dk> | 2012-01-31 03:28:59 +0400 |
---|---|---|
committer | Mikkel Krautz <mikkel@krautz.dk> | 2012-01-31 03:28:59 +0400 |
commit | 3dcfb214441e2fa4a0b41cb56fcbea064cb62a35 (patch) | |
tree | 8f392295575d7b1d919bc220d9617dbf12338f6e | |
parent | 10e79091f0e96c46a0282b7166b252aefefc9a9d (diff) |
Warn before deleting a server (when the action sheet is used for deletion).
-rw-r--r-- | Source/Classes/MUFavouriteServerListController.m | 50 |
1 files changed, 31 insertions, 19 deletions
diff --git a/Source/Classes/MUFavouriteServerListController.m b/Source/Classes/MUFavouriteServerListController.m index 77866c6..a41eebf 100644 --- a/Source/Classes/MUFavouriteServerListController.m +++ b/Source/Classes/MUFavouriteServerListController.m @@ -37,12 +37,13 @@ #import "MUConnectionController.h" #import "MUServerCell.h" -@interface MUFavouriteServerListController () { +@interface MUFavouriteServerListController () <UIAlertViewDelegate> { NSMutableArray *_favouriteServers; BOOL _editMode; MUFavouriteServer *_editedServer; } - (void) reloadFavourites; +- (void) deleteFavouriteAtIndexPath:(NSIndexPath *)indexPath; @end @implementation MUFavouriteServerListController @@ -120,15 +121,7 @@ - (void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { - NSUInteger row = [indexPath row]; - - // Drop it from the database - MUFavouriteServer *favServ = [_favouriteServers objectAtIndex:row]; - [MUDatabase deleteFavourite:favServ]; - - // And remove it from our locally sorted array - [_favouriteServers removeObjectAtIndex:[indexPath row]]; - [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES]; + [self deleteFavouriteAtIndexPath:indexPath]; } } @@ -155,6 +148,17 @@ [sheet release]; } +- (void) deleteFavouriteAtIndexPath:(NSIndexPath *)indexPath { + // Drop it from the database + MUFavouriteServer *favServ = [_favouriteServers objectAtIndex:[indexPath row]]; + [MUDatabase deleteFavourite:favServ]; + + // And remove it from our locally sorted array + [_favouriteServers removeObjectAtIndex:[indexPath row]]; + [[self tableView] deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES]; + [[self tableView] deselectRowAtIndexPath:indexPath animated:YES]; +} + - (void) actionSheet:(UIActionSheet *)sheet clickedButtonAtIndex:(NSInteger)index { NSIndexPath *indexPath = [[self tableView] indexPathForSelectedRow]; @@ -162,15 +166,9 @@ // Delete if (index == 0) { - // Drop it from the database - MUFavouriteServer *favServ = [_favouriteServers objectAtIndex:[indexPath row]]; - [MUDatabase deleteFavourite:favServ]; - - // And remove it from our locally sorted array - [_favouriteServers removeObjectAtIndex:[indexPath row]]; - [[self tableView] deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES]; - [[self tableView] deselectRowAtIndexPath:indexPath animated:YES]; - + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Delete Favourite" message:@"Are you sure you want to delete this favourite server?" delegate:self cancelButtonTitle:@"No" otherButtonTitles:@"Yes", nil]; + [alertView show]; + [alertView release]; // Connect } else if (index == 2) { NSString *userName = [favServ userName]; @@ -195,6 +193,20 @@ } #pragma mark - +#pragma mark UIAlertViewDelegate + +- (void) alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { + NSIndexPath *selectedRow = [[self tableView] indexPathForSelectedRow]; + if (buttonIndex == 0) { + // ... + } else if (buttonIndex == 1) { + [self deleteFavouriteAtIndexPath:selectedRow]; + } + + [[self tableView] deselectRowAtIndexPath:selectedRow animated:YES]; +} + +#pragma mark - #pragma Modal edit dialog - (void) presentNewFavouriteDialog { |