remove distinction between built-in trackers and custom-added trackers; add trackers to the end of the list instead of the beginning

This commit is contained in:
Mitchell Livingston 2009-09-17 00:33:39 +00:00
parent 90b83c3224
commit 8b4ec4b7b7
4 changed files with 23 additions and 52 deletions

View 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];

View File

@ -140,6 +140,7 @@
return [timeArray componentsJoinedByString: @" "];
}
//also used in InfoWindow.xib
- (NSComparisonResult) compareFinder: (NSString *) string
{
if ([NSApp isOnSnowLeopardOrBetter])

View File

@ -58,8 +58,6 @@
NSInteger fGroupValue;
BOOL fAddedTrackers;
NSDictionary * fQuickPauseDict;
}
@ -147,7 +145,6 @@
- (NSArray *) allTrackersFlat;
- (BOOL) updateAllTrackersForAdd: (NSMutableArray *) trackers;
- (void) updateAllTrackersForRemove: (NSMutableArray *) trackers;
- (BOOL) hasAddedTrackers;
- (NSString *) comment;
- (NSString *) creator;

View 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];