Add support to libtransmission and the MacOS X GUI for saving private copies of

torrent files.
This commit is contained in:
Josh Elsasser
2006-06-09 19:53:35 +00:00
parent 5ac8e113c3
commit 0600f3d4aa
26 changed files with 444 additions and 158 deletions

View File

@@ -524,7 +524,6 @@ static void sleepCallBack( void * controller, io_service_t y,
}
- (void) removeTorrentWithIndex: (NSIndexSet *) indexSet
deleteTorrent: (BOOL) deleteTorrent
deleteData: (BOOL) deleteData
{
NSArray * torrents = [[self torrentsAtIndexes: indexSet] retain];
@@ -540,7 +539,6 @@ static void sleepCallBack( void * controller, io_service_t y,
{
NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys:
torrents, @"Torrents",
[NSNumber numberWithBool: deleteTorrent], @"DeleteTorrent",
[NSNumber numberWithBool: deleteData], @"DeleteData",
nil];
@@ -551,17 +549,22 @@ static void sleepCallBack( void * controller, io_service_t y,
{
title = [NSString stringWithFormat: @"Comfirm Removal of \"%@\"",
[[fTorrents objectAtIndex: [fTableView selectedRow]] name]];
message = @"This torrent is active. Do you really want to remove it?";
message = @"This transfer is active."
" Onced removed, continuing the transfer will require the torrent file."
" Do you really want to remove it?";
}
else
{
title = [NSString stringWithFormat: @"Comfirm Removal of %d Torrents", selected];
if (selected == active)
message = [NSString stringWithFormat:
@"There are %d active torrents. Do you really want to remove them?", active];
@"There are %d active transfers.", active];
else
message = [NSString stringWithFormat:
@"There are %d torrents (%d active). Do you really want to remove them?", selected, active];
@"There are %d transfers (%d active).", selected, active];
message = [message stringByAppendingString:
@" Onced removed, continuing the transfers will require the torrent files."
" Do you really want to remove them?"];
}
NSBeginAlertSheet(title,
@@ -572,7 +575,6 @@ static void sleepCallBack( void * controller, io_service_t y,
else
{
[self confirmRemoveTorrents: torrents
deleteTorrent: deleteTorrent
deleteData: deleteData];
}
}
@@ -583,14 +585,12 @@ static void sleepCallBack( void * controller, io_service_t y,
[NSApp stopModal];
NSArray * torrents = [dict objectForKey: @"Torrents"];
BOOL deleteTorrent = [[dict objectForKey: @"DeleteTorrent"] boolValue];
BOOL deleteData = [[dict objectForKey: @"DeleteData"] boolValue];
[dict release];
if (returnCode == NSAlertDefaultReturn)
{
[self confirmRemoveTorrents: torrents
deleteTorrent: deleteTorrent
deleteData: deleteData];
}
else
@@ -598,7 +598,6 @@ static void sleepCallBack( void * controller, io_service_t y,
}
- (void) confirmRemoveTorrents: (NSArray *) torrents
deleteTorrent: (BOOL) deleteTorrent
deleteData: (BOOL) deleteData
{
Torrent * torrent;
@@ -609,10 +608,8 @@ static void sleepCallBack( void * controller, io_service_t y,
if( deleteData )
[torrent trashData];
if( deleteTorrent )
[torrent trashTorrent];
[torrent removeForever];
[fTorrents removeObject: torrent];
}
[torrents release];
@@ -625,22 +622,12 @@ static void sleepCallBack( void * controller, io_service_t y,
- (void) removeTorrent: (id) sender
{
[self removeTorrentWithIndex: [fTableView selectedRowIndexes] deleteTorrent: NO deleteData: NO];
}
- (void) removeTorrentDeleteTorrent: (id) sender
{
[self removeTorrentWithIndex: [fTableView selectedRowIndexes] deleteTorrent: YES deleteData: NO];
[self removeTorrentWithIndex: [fTableView selectedRowIndexes] deleteData: NO];
}
- (void) removeTorrentDeleteData: (id) sender
{
[self removeTorrentWithIndex: [fTableView selectedRowIndexes] deleteTorrent: NO deleteData: YES];
}
- (void) removeTorrentDeleteBoth: (id) sender
{
[self removeTorrentWithIndex: [fTableView selectedRowIndexes] deleteTorrent: YES deleteData: YES];
[self removeTorrentWithIndex: [fTableView selectedRowIndexes] deleteData: YES];
}
- (void) revealFile: (id) sender
@@ -1207,10 +1194,7 @@ static void sleepCallBack( void * controller, io_service_t y,
}
//enable remove items
if (action == @selector(removeTorrent:)
|| action == @selector(removeTorrentDeleteTorrent:)
|| action == @selector(removeTorrentDeleteData:)
|| action == @selector(removeTorrentDeleteBoth:))
if (action == @selector(removeTorrent:) || action == @selector(removeTorrentDeleteData:))
{
BOOL active = NO;
Torrent * torrent;