1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2025-02-24 23:12:35 +00:00

improve how tracker tiers are sent to the inspector code

This commit is contained in:
Mitchell Livingston 2010-02-06 02:35:27 +00:00
parent ce81f5c888
commit 1dd5dddcec
4 changed files with 32 additions and 21 deletions

View file

@ -675,7 +675,20 @@ typedef enum
return [webSeed objectForKey: @"Address"];
}
else if (tableView == fTrackerTable)
return [fTrackers objectAtIndex: row];
{
id item = [fTrackers objectAtIndex: row];
if (![item isKindOfClass: [TrackerNode class]])
{
NSString * tierString = [NSString stringWithFormat: NSLocalizedString(@"Tier %d", "Inspector -> tracker table"),
[[item objectForKey: @"Tier"] integerValue]];
if ([fTorrents count] > 1)
tierString = [tierString stringByAppendingFormat: @" - %@", [item objectForKey: @"Name"]];
return tierString;
}
else
return item;
}
return nil;
}
@ -873,7 +886,7 @@ typedef enum
//reset table with either new or old value
[fTrackers release];
fTrackers = [[torrent allTrackerStatsWithTransferName: NO] retain];
fTrackers = [[torrent allTrackerStats] retain];
[fTrackerTable setTrackers: fTrackers];
[fTrackerTable reloadData];
@ -1482,12 +1495,16 @@ typedef enum
//get updated tracker stats
if ([fTrackerTable editedRow] == -1)
{
const BOOL multiple = [fTorrents count] != 1;
[fTrackers release];
fTrackers = [[NSMutableArray alloc] init];
for (Torrent * torrent in fTorrents)
[fTrackers addObjectsFromArray: [torrent allTrackerStatsWithTransferName: multiple]];
if ([fTorrents count] == 1)
fTrackers = [[[fTorrents objectAtIndex: 0] allTrackerStats] retain];
else
{
fTrackers = [[NSMutableArray alloc] init];
for (Torrent * torrent in fTorrents)
[fTrackers addObjectsFromArray: [torrent allTrackerStats]];
}
[fTrackerTable setTrackers: fTrackers];
[fTrackerTable reloadData];
@ -1502,7 +1519,7 @@ typedef enum
NSArray * tierAndTrackerBeingAdded = [fTrackers objectsAtIndexes: addedIndexes];
[fTrackers release];
fTrackers = [[[fTorrents objectAtIndex: 0] allTrackerStatsWithTransferName: NO] retain];
fTrackers = [[[fTorrents objectAtIndex: 0] allTrackerStats] retain];
[fTrackers addObjectsFromArray: tierAndTrackerBeingAdded];
[fTrackerTable setTrackers: fTrackers];
@ -1783,7 +1800,7 @@ typedef enum
//reset table with either new or old value
[fTrackers release];
fTrackers = [[torrent allTrackerStatsWithTransferName: NO] retain];
fTrackers = [[torrent allTrackerStats] retain];
[fTrackerTable setTrackers: fTrackers];
[fTrackerTable reloadData];

View file

@ -128,7 +128,7 @@
- (uint64_t) size;
- (uint64_t) sizeLeft;
- (NSMutableArray *) allTrackerStatsWithTransferName: (BOOL) includeTransferName;
- (NSMutableArray *) allTrackerStats;
- (NSArray *) allTrackersFlat; //used by GroupRules
- (BOOL) addTrackerToNewTier: (NSString *) tracker;
- (void) removeTrackersWithIdentifiers: (NSIndexSet *) removeIdentifiers;

View file

@ -583,7 +583,7 @@ int trashDataFile(const char * filename)
return fStat->leftUntilDone;
}
- (NSMutableArray *) allTrackerStatsWithTransferName: (BOOL) includeTransferName
- (NSMutableArray *) allTrackerStats
{
int count;
tr_tracker_stat * stats = tr_torrentTrackers(fHandle, &count);
@ -595,12 +595,8 @@ int trashDataFile(const char * filename)
{
if (stats[i].tier != prevTier)
{
NSString * tierString = [NSString stringWithFormat: NSLocalizedString(@"Tier %d", "Inspector -> tracker table"),
stats[i].tier];
if (includeTransferName)
tierString = [tierString stringByAppendingFormat: @" - %@", [self name]];
[trackers addObject: tierString];
[trackers addObject: [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInteger: stats[i].tier], @"Tier",
[self name], @"Name", nil]];
prevTier = stats[i].tier;
}

View file

@ -104,14 +104,12 @@
NSString * baseString;
if (fStat.hasAnnounced && fStat.lastAnnounceTimedOut)
{
baseString = [NSLocalizedString(@"Announce timed out", "Tracker last announce") stringByAppendingFormat: @": %@", dateString];
}
else if (fStat.hasAnnounced && !fStat.lastAnnounceSucceeded)
{
baseString = NSLocalizedString(@"Announce error", "Tracker last announce");
NSString * errorString = [NSString stringWithUTF8String: fStat.lastAnnounceResult];
NSString * errorString = [NSString stringWithUTF8String: fStat.lastAnnounceResult];
if ([errorString isEqualToString: @""])
baseString = [baseString stringByAppendingFormat: @": %@", dateString];
else
@ -181,8 +179,8 @@
if (fStat.hasScraped && !fStat.lastScrapeSucceeded)
{
baseString = NSLocalizedString(@"Scrape error", "Tracker last scrape");
NSString * errorString = [NSString stringWithUTF8String: fStat.lastScrapeResult];
NSString * errorString = [NSString stringWithUTF8String: fStat.lastScrapeResult];
if ([errorString isEqualToString: @""])
baseString = [baseString stringByAppendingFormat: @": %@", dateString];
else