]> granicus.if.org Git - transmission/commitdiff
remove distinction between built-in trackers and custom-added trackers; add trackers...
authorMitchell Livingston <livings124@transmissionbt.com>
Thu, 17 Sep 2009 00:33:39 +0000 (00:33 +0000)
committerMitchell Livingston <livings124@transmissionbt.com>
Thu, 17 Sep 2009 00:33:39 +0000 (00:33 +0000)
macosx/InfoWindowController.m
macosx/NSStringAdditions.m
macosx/Torrent.h
macosx/Torrent.m

index 8c4cd1a097b3d12e920a7c30259f55c937a358a9..c6b6ade04a46b296f3a75a62d68f2d20fbd7dced 100644 (file)
@@ -1102,10 +1102,6 @@ typedef enum
     if (tableView != fTrackerTable)
         return NO;
     
-    //only allow modification of custom-added trackers
-    if ([[fTrackers objectAtIndex: row] isKindOfClass: [NSNumber class]] || ![[fTorrents objectAtIndex: 0] hasAddedTrackers])
-        return NO;
-    
     NSUInteger i;
     for (i = row-1; ![[fTrackers objectAtIndex: i] isKindOfClass: [NSNumber class]]; i--);
     
@@ -1731,20 +1727,17 @@ typedef enum
 {
     [[self window] makeKeyWindow];
     
-    NSUInteger index = 1;
-    if ([fTrackers count] > 0 && [[fTorrents objectAtIndex: 0] hasAddedTrackers])
-    {
-        for (; index < [fTrackers count]; index++)
-            if ([[fTrackers objectAtIndex: index] isKindOfClass: [NSNumber class]])
-                break;
-    }
-    else
-        [fTrackers insertObject: [NSNumber numberWithInt: 0] atIndex: 0];
+    NSUInteger tierCount = 0;
+    for (id trackerObject in fTrackers)
+        if ([trackerObject isKindOfClass: [NSNumber class]])
+            tierCount++;
+    
+    [fTrackers addObject: [NSNumber numberWithInt: tierCount+1]];
+    [fTrackers addObject: @""];
     
-    [fTrackers insertObject: @"" atIndex: index];
     [fTrackerTable reloadData];
-    [fTrackerTable selectRowIndexes: [NSIndexSet indexSetWithIndex: index] byExtendingSelection: NO];
-    [fTrackerTable editColumn: 0 row: index withEvent: nil select: YES];
+    [fTrackerTable selectRowIndexes: [NSIndexSet indexSetWithIndex: [fTrackers count]-1] byExtendingSelection: NO];
+    [fTrackerTable editColumn: 0 row: [fTrackers count]-1 withEvent: nil select: YES];
 }
 
 - (void) removeTrackers
@@ -1798,7 +1791,8 @@ typedef enum
     Torrent * torrent = [fTorrents objectAtIndex: 0];
     
     //determine if removing trackers built into the torrent
-    if (numberBuiltIn > 0 && [[NSUserDefaults standardUserDefaults] boolForKey: @"WarningRemoveBuiltInTracker"])
+    #warning remove?
+    if (NO && numberBuiltIn > 0 && [[NSUserDefaults standardUserDefaults] boolForKey: @"WarningRemoveBuiltInTracker"])
     {
         NSAlert * alert = [[NSAlert alloc] init];
         
index 405211b39b267f7424fba9a680b8d581cdf068ef..44748447ccd510ddfeddf8406c32bbcfb1552d95 100644 (file)
     return [timeArray componentsJoinedByString: @" "];
 }
 
+//also used in InfoWindow.xib
 - (NSComparisonResult) compareFinder: (NSString *) string
 {
     if ([NSApp isOnSnowLeopardOrBetter])
index 1763dbb25515994adaf6f70452ef5de571269fb0..deffcf81bb3cda082fa57f9576b81643b479913a 100644 (file)
@@ -58,8 +58,6 @@
     
     NSInteger fGroupValue;
     
-    BOOL fAddedTrackers;
-    
     NSDictionary * fQuickPauseDict;
 }
 
 - (NSArray *) allTrackersFlat;
 - (BOOL) updateAllTrackersForAdd: (NSMutableArray *) trackers;
 - (void) updateAllTrackersForRemove: (NSMutableArray *) trackers;
-- (BOOL) hasAddedTrackers;
 
 - (NSString *) comment;
 - (NSString *) creator;
index 63a0680f45293317d0039b3db65eafd98a957c36..48e7eaefd047a4e503f11dd2086b9f30a8b20ef3 100644 (file)
@@ -34,7 +34,7 @@
         downloadFolder: (NSString *) downloadFolder
         useIncompleteFolder: (NSNumber *) useIncompleteFolder incompleteFolder: (NSString *) incompleteFolder
         waitToStart: (NSNumber *) waitToStart
-        groupValue: (NSNumber *) groupValue addedTrackers: (NSNumber *) addedTrackers;
+        groupValue: (NSNumber *) groupValue;
 
 - (BOOL) shouldUseIncompleteFolderForName: (NSString *) name;
 - (void) updateDownloadFolder;
@@ -83,7 +83,7 @@ int trashDataFile(const char * filename)
     self = [self initWithPath: path hash: nil torrentStruct: NULL lib: lib
             downloadFolder: location
             useIncompleteFolder: nil incompleteFolder: nil
-            waitToStart: nil groupValue: nil addedTrackers: nil];
+            waitToStart: nil groupValue: nil];
     
     if (self)
     {
@@ -98,7 +98,7 @@ int trashDataFile(const char * filename)
     self = [self initWithPath: nil hash: nil torrentStruct: torrentStruct lib: lib
             downloadFolder: location
             useIncompleteFolder: nil incompleteFolder: nil
-            waitToStart: nil groupValue: nil addedTrackers: nil];
+            waitToStart: nil groupValue: nil];
     
     return self;
 }
@@ -112,8 +112,7 @@ int trashDataFile(const char * filename)
                 useIncompleteFolder: [history objectForKey: @"UseIncompleteFolder"]
                 incompleteFolder: [history objectForKey: @"IncompleteFolder"]
                 waitToStart: [history objectForKey: @"WaitToStart"]
-                groupValue: [history objectForKey: @"GroupValue"]
-                addedTrackers: [history objectForKey: @"AddedTrackers"]];
+                groupValue: [history objectForKey: @"GroupValue"]];
     
     if (self)
     {
@@ -161,8 +160,7 @@ int trashDataFile(const char * filename)
                     [NSNumber numberWithBool: fUseIncompleteFolder], @"UseIncompleteFolder",
                     [NSNumber numberWithBool: [self isActive]], @"Active",
                     [NSNumber numberWithBool: fWaitToStart], @"WaitToStart",
-                    [NSNumber numberWithInt: fGroupValue], @"GroupValue",
-                    [NSNumber numberWithBool: fAddedTrackers], @"AddedTrackers", nil];
+                    [NSNumber numberWithInt: fGroupValue], @"GroupValue", nil];
     
     if (fIncompleteFolder)
         [history setObject: fIncompleteFolder forKey: @"IncompleteFolder"];
@@ -748,7 +746,7 @@ int trashDataFile(const char * filename)
         if (separators && tier != fInfo->trackers[i].tier)
         {
             tier = fInfo->trackers[i].tier;
-            [allTrackers addObject: [NSNumber numberWithInt: fAddedTrackers ? tier : tier + 1]];
+            [allTrackers addObject: [NSNumber numberWithInteger: tier + 1]];
         }
         
         [allTrackers addObject: [NSString stringWithUTF8String: fInfo->trackers[i].announce]];
@@ -764,21 +762,13 @@ int trashDataFile(const char * filename)
 
 - (BOOL) updateAllTrackersForAdd: (NSMutableArray *) trackers
 {
-    //find added tracker at end of first tier
-    NSInteger i;
-    for (i = 1; i < [trackers count]; i++)
-        if ([[trackers objectAtIndex: i] isKindOfClass: [NSNumber class]])
-            break;
-    i--;
-    
-    NSString * tracker = [trackers objectAtIndex: i];
-    
+    NSString * tracker = [trackers lastObject];
     tracker = [tracker stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
     
     if ([tracker rangeOfString: @"://"].location == NSNotFound)
     {
         tracker = [@"http://" stringByAppendingString: tracker];
-        [trackers replaceObjectAtIndex: i withObject: tracker];
+        [trackers replaceObjectAtIndex: [trackers count]-1 withObject: tracker];
     }
     
     if (!tr_httpIsValidURL([tracker UTF8String]))
@@ -786,24 +776,15 @@ int trashDataFile(const char * filename)
     
     [self updateAllTrackers: trackers];
     
-    fAddedTrackers = YES;
     return YES;
 }
 
+#warning needed?
 - (void) updateAllTrackersForRemove: (NSMutableArray *) trackers
 {
-    //check if no user-added groups
-    if ([trackers count] == 0 || [[trackers objectAtIndex: 0] intValue] != 0)
-        fAddedTrackers = NO;
-    
     [self updateAllTrackers: trackers];
 }
 
-- (BOOL) hasAddedTrackers
-{
-    return fAddedTrackers;
-}
-
 - (NSString *) comment
 {
     return [NSString stringWithUTF8String: fInfo->comment];
@@ -1567,7 +1548,7 @@ int trashDataFile(const char * filename)
         downloadFolder: (NSString *) downloadFolder
         useIncompleteFolder: (NSNumber *) useIncompleteFolder incompleteFolder: (NSString *) incompleteFolder
         waitToStart: (NSNumber *) waitToStart
-        groupValue: (NSNumber *) groupValue addedTrackers: (NSNumber *) addedTrackers
+        groupValue: (NSNumber *) groupValue
 {
     if (!(self = [super init]))
         return nil;
@@ -1650,9 +1631,7 @@ int trashDataFile(const char * filename)
        
     [self createFileList];
        
-    fGroupValue = groupValue ? [groupValue intValue] : [[GroupsController groups] groupIndexForTorrent: self];
-    
-    fAddedTrackers = addedTrackers ? [addedTrackers boolValue] : NO;    
+    fGroupValue = groupValue ? [groupValue intValue] : [[GroupsController groups] groupIndexForTorrent: self]; 
     
     [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(checkGroupValueForRemoval:)
         name: @"GroupValueRemoved" object: nil];