show a warning whenever removing any tracker, regardless of if it's built-in

This commit is contained in:
Mitchell Livingston 2009-09-17 01:10:18 +00:00
parent 8b4ec4b7b7
commit 692d35c018
3 changed files with 19 additions and 28 deletions

View File

@ -192,7 +192,7 @@
<true/>
<key>WarningRemainingSpace</key>
<true/>
<key>WarningRemoveBuiltInTracker</key>
<key>WarningRemoveTrackers</key>
<true/>
<key>WarningResetStats</key>
<true/>

View File

@ -1744,20 +1744,17 @@ typedef enum
{
NSMutableIndexSet * indexes = [[[fTrackerTable selectedRowIndexes] mutableCopy] autorelease];
//get all rows to remove and determine if any built-in trackers are being remove
NSUInteger i = 0, numberBuiltIn = 0;
//get all rows to remove
NSUInteger i = 0, trackerCount = 0;
while (i < [fTrackers count])
{
const BOOL builtIn = i != 0 || [[fTrackers objectAtIndex: i] intValue] != 0;
//if a group is selected, remove all trackers in the group
if ([indexes containsIndex: i])
{
for (i = i+1; i < [fTrackers count] && ![[fTrackers objectAtIndex: i] isKindOfClass: [NSNumber class]]; i++)
{
[indexes addIndex: i];
if (builtIn)
numberBuiltIn++;
trackerCount++;
}
}
//remove empty groups
@ -1769,9 +1766,8 @@ typedef enum
{
if (![indexes containsIndex: j])
allSelected = NO;
else if (builtIn)
numberBuiltIn++;
else;
else
trackerCount++;
}
if (allSelected)
@ -1781,7 +1777,6 @@ typedef enum
}
}
#warning show warning and allow?
if ([fTrackers count] == [indexes count])
{
NSBeep();
@ -1790,36 +1785,32 @@ typedef enum
Torrent * torrent = [fTorrents objectAtIndex: 0];
//determine if removing trackers built into the torrent
#warning remove?
if (NO && numberBuiltIn > 0 && [[NSUserDefaults standardUserDefaults] boolForKey: @"WarningRemoveBuiltInTracker"])
if ([[NSUserDefaults standardUserDefaults] boolForKey: @"WarningRemoveTrackers"])
{
NSAlert * alert = [[NSAlert alloc] init];
if (numberBuiltIn > 1)
if (trackerCount > 1)
{
[alert setMessageText: [NSString stringWithFormat:
NSLocalizedString(@"Are you sure you want to remove %d built-in trackers?",
"Remove built-in tracker alert -> title"), numberBuiltIn]];
[alert setInformativeText: NSLocalizedString(@"These tracker addresses are part of the torrent file."
" Once removed, Transmission will no longer attempt to contact them.", "Remove built-in tracker alert -> message")];
[alert setMessageText: [NSString stringWithFormat: NSLocalizedString(@"Are you sure you want to remove %d trackers?",
"Remove trackers alert -> title"), trackerCount]];
[alert setInformativeText: NSLocalizedString(@"Once removed, Transmission will no longer attempt to contact them."
" This cannot be undone.", "Remove trackers alert -> message")];
}
else
{
[alert setMessageText: NSLocalizedString(@"Are you sure you want to remove a built-in tracker?",
"Remove built-in tracker alert -> title")];
[alert setInformativeText: NSLocalizedString(@"The tracker address is part of the torrent file."
" Once removed, Transmission will no longer attempt to contact it.", "Remove built-in tracker alert -> message")];
[alert setMessageText: NSLocalizedString(@"Are you sure you want to remove this tracker?", "Remove trackers alert -> title")];
[alert setInformativeText: NSLocalizedString(@"Once removed, Transmission will no longer attempt to contact it."
" This cannot be undone.", "Remove trackers alert -> message")];
}
[alert addButtonWithTitle: NSLocalizedString(@"Remove", "Remove built-in tracker alert -> button")];
[alert addButtonWithTitle: NSLocalizedString(@"Cancel", "Remove built-in tracker alert -> button")];
[alert addButtonWithTitle: NSLocalizedString(@"Remove", "Remove trackers alert -> button")];
[alert addButtonWithTitle: NSLocalizedString(@"Cancel", "Remove trackers alert -> button")];
[alert setShowsSuppressionButton: YES];
NSInteger result = [alert runModal];
if ([[alert suppressionButton] state] == NSOnState)
[[NSUserDefaults standardUserDefaults] setBool: NO forKey: @"WarningRemoveBuiltInTracker"];
[[NSUserDefaults standardUserDefaults] setBool: NO forKey: @"WarningRemoveTrackers"];
[alert release];
if (result != NSAlertFirstButtonReturn)

View File

@ -675,7 +675,7 @@ tr_session * fHandle;
[fDefaults removeObjectForKey: @"WarningFolderDataSameName"];
[fDefaults removeObjectForKey: @"WarningResetStats"];
[fDefaults removeObjectForKey: @"WarningCreatorBlankAddress"];
[fDefaults removeObjectForKey: @"WarningRemoveBuiltInTracker"];
[fDefaults removeObjectForKey: @"WarningRemoveTrackers"];
[fDefaults removeObjectForKey: @"WarningInvalidOpen"];
[fDefaults removeObjectForKey: @"WarningDonate"];
}