Changeset 6000


Ignore:
Timestamp:
Jun 2, 2008, 6:34:58 PM (14 years ago)
Author:
livings124
Message:

add a warning when removing built-in trackers

Location:
trunk/macosx
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/macosx/Defaults.plist

    r5960 r6000  
    159159        <key>WarningRemainingSpace</key>
    160160        <true/>
     161        <key>WarningRemoveBuiltInTracker</key>
     162        <true/>
    161163        <key>WarningResetStats</key>
    162164        <true/>
  • trunk/macosx/InfoWindowController.m

    r5998 r6000  
    14491449}
    14501450
    1451 #warning warning when removing built-in
    14521451- (void) removeTrackers
    14531452{
    1454     NSMutableIndexSet * indexes = [[fTrackerTable selectedRowIndexes] mutableCopy];
    1455    
     1453    NSMutableIndexSet * indexes = [[[fTrackerTable selectedRowIndexes] mutableCopy] autorelease];
     1454   
     1455    #warning merge?
     1456    //if a group is selected, remove all trackers in the group
    14561457    NSUInteger i;
    14571458    for (i = [indexes firstIndex]; i != NSNotFound; i = [indexes indexGreaterThanIndex: i])
     
    14651466    }
    14661467   
     1468    //remove empty groups
     1469    for (i = 0; i < [fTrackers count]; i++)
     1470        if (![indexes containsIndex: i] && [[fTrackers objectAtIndex: i] isKindOfClass: [NSNumber class]])
     1471        {
     1472            BOOL allSelected = YES;
     1473            NSUInteger j;
     1474            for (j = i+1; j < [fTrackers count] && ![[fTrackers objectAtIndex: j] isKindOfClass: [NSNumber class]]; j++)
     1475                if (![indexes containsIndex: j])
     1476                {
     1477                    allSelected = NO;
     1478                    break;
     1479                }
     1480           
     1481            if (allSelected)
     1482                [indexes addIndex: i];
     1483            i = j;
     1484        }
     1485   
     1486    if ([fTrackers count] == [indexes count])
     1487    {
     1488        NSBeep();
     1489        return;
     1490    }
     1491   
     1492    Torrent * torrent = [fTorrents objectAtIndex: 0];
     1493   
     1494    //determine if removing trackers not built-in to the torrent
     1495    if ([[NSUserDefaults standardUserDefaults] boolForKey: @"WarningRemoveBuiltInTracker"])
     1496    {
     1497        BOOL allBuiltIn = ![torrent hasAddedTrackers];
     1498        if (!allBuiltIn)
     1499        {
     1500            for (i=1; i < [fTrackers count]; i++)
     1501                if ([[fTrackers objectAtIndex: i] isKindOfClass: [NSNumber class]])
     1502                    break;
     1503        }
     1504       
     1505        if (allBuiltIn || [indexes indexGreaterThanOrEqualToIndex: i] != NSNotFound)
     1506        {
     1507            #warning pluralize?
     1508            NSAlert * alert = [[NSAlert alloc] init];
     1509            [alert setMessageText: NSLocalizedString(@"Are you sure you want to remove built-in trackers?",
     1510                                    "Remove built-in tracker alert -> title")];
     1511            [alert setInformativeText: NSLocalizedString(@"These tracker addresses are part of the torrent file."
     1512                " Once removed, Transmission will no longer attempt to contact them.", "Remove built-in tracker alert -> message")];
     1513            [alert addButtonWithTitle: NSLocalizedString(@"Remove", "Remove built-in tracker alert -> button")];
     1514            [alert addButtonWithTitle: NSLocalizedString(@"Cancel", "Remove built-in tracker alert -> button")];
     1515           
     1516            BOOL onLeopard = [NSApp isOnLeopardOrBetter];
     1517            if (onLeopard)
     1518                [alert setShowsSuppressionButton: YES];
     1519            else
     1520                [alert addButtonWithTitle: NSLocalizedString(@"Don't Alert Again", "Remove built-in tracker alert -> button")];
     1521
     1522            NSInteger result = [alert runModal];
     1523            if ((onLeopard ? [[alert suppressionButton] state] == NSOnState : result == NSAlertThirdButtonReturn))
     1524                [[NSUserDefaults standardUserDefaults] setBool: NO forKey: @"WarningRemoveBuiltInTracker"];
     1525            [alert release];
     1526           
     1527            if (result != NSAlertFirstButtonReturn)
     1528                return;
     1529        }
     1530    }
     1531   
    14671532    [fTrackers removeObjectsAtIndexes: indexes];
    1468     [indexes release];
    1469    
    1470     Torrent * torrent = [fTorrents objectAtIndex: 0];
     1533   
    14711534    if (![torrent updateAllTrackers: fTrackers forAdd: NO])
    14721535        NSBeep();
  • trunk/macosx/PrefsController.m

    r5960 r6000  
    508508    [fDefaults setBool: YES forKey: @"WarningResetStats"];
    509509    [fDefaults setBool: YES forKey: @"WarningCreatorBlankAddress"];
     510    [fDefaults setBool: YES forKey: @"WarningRemoveBuiltInTracker"];
    510511}
    511512
  • trunk/macosx/Torrent.m

    r5998 r6000  
    830830    else
    831831    {
    832         //remove empty groups
    833         int i;
    834         for (i = 0; i < [trackers count]; i++)
    835             if ([[trackers objectAtIndex: i] isKindOfClass: [NSNumber class]]
    836                 && (i+1 == [trackers count] || [[trackers objectAtIndex: i+1] isKindOfClass: [NSNumber class]]))
    837             {
    838                 [trackers removeObjectAtIndex: i];
    839                 i--;
    840             }
    841        
    842         if ([trackers count] == 0)
    843             return NO;
    844        
    845832        //check if any user-added groups
    846833        if ([[trackers objectAtIndex: 0] intValue] != 0)
Note: See TracChangeset for help on using the changeset viewer.