mirror of
https://github.com/transmission/transmission
synced 2025-03-17 17:25:32 +00:00
display actual upload/download rate in inspector for individual peers
This commit is contained in:
parent
01ebeae829
commit
d7c9da2c8f
4 changed files with 26 additions and 15 deletions
BIN
macosx/English.lproj/InfoWindow.nib/keyedobjects.nib
generated
BIN
macosx/English.lproj/InfoWindow.nib/keyedobjects.nib
generated
Binary file not shown.
|
@ -31,7 +31,7 @@
|
||||||
{
|
{
|
||||||
NSArray * fTorrents;
|
NSArray * fTorrents;
|
||||||
NSMutableArray * fPeers, * fFiles;
|
NSMutableArray * fPeers, * fFiles;
|
||||||
NSImage * fAppIcon, * fDotGreen, * fDotRed, * fCheckImage;
|
NSImage * fAppIcon, * fDotGreen, * fDotRed;
|
||||||
|
|
||||||
IBOutlet NSTabView * fTabView;
|
IBOutlet NSTabView * fTabView;
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,6 @@
|
||||||
fAppIcon = [[NSApp applicationIconImage] copy];
|
fAppIcon = [[NSApp applicationIconImage] copy];
|
||||||
fDotGreen = [NSImage imageNamed: @"GreenDot.tiff"];
|
fDotGreen = [NSImage imageNamed: @"GreenDot.tiff"];
|
||||||
fDotRed = [NSImage imageNamed: @"RedDot.tiff"];
|
fDotRed = [NSImage imageNamed: @"RedDot.tiff"];
|
||||||
fCheckImage = [NSImage imageNamed: @"NSMenuCheckmark"];
|
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
@ -540,9 +539,11 @@
|
||||||
else if ([ident isEqualToString: @"Progress"])
|
else if ([ident isEqualToString: @"Progress"])
|
||||||
return [peer objectForKey: @"Progress"];
|
return [peer objectForKey: @"Progress"];
|
||||||
else if ([ident isEqualToString: @"UL To"])
|
else if ([ident isEqualToString: @"UL To"])
|
||||||
return [[peer objectForKey: @"UL To"] boolValue] ? fCheckImage : nil;
|
return [[peer objectForKey: @"UL To"] boolValue]
|
||||||
|
? [NSString stringForSpeedAbbrev: [[peer objectForKey: @"UL To Rate"] floatValue]] : @"";
|
||||||
else if ([ident isEqualToString: @"DL From"])
|
else if ([ident isEqualToString: @"DL From"])
|
||||||
return [[peer objectForKey: @"DL From"] boolValue] ? fCheckImage : nil;
|
return [[peer objectForKey: @"DL From"] boolValue]
|
||||||
|
? [NSString stringForSpeedAbbrev: [[peer objectForKey: @"DL From Rate"] floatValue]] : @"";
|
||||||
else
|
else
|
||||||
return [peer objectForKey: @"IP"];
|
return [peer objectForKey: @"IP"];
|
||||||
}
|
}
|
||||||
|
|
|
@ -839,20 +839,30 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
||||||
tr_peer_stat_t * peers = tr_torrentPeers(fHandle, & totalPeers);
|
tr_peer_stat_t * peers = tr_torrentPeers(fHandle, & totalPeers);
|
||||||
|
|
||||||
NSMutableArray * peerDics = [NSMutableArray arrayWithCapacity: totalPeers];
|
NSMutableArray * peerDics = [NSMutableArray arrayWithCapacity: totalPeers];
|
||||||
tr_peer_stat_t peer;
|
NSMutableDictionary * dic;
|
||||||
|
|
||||||
|
tr_peer_stat_t * peer;
|
||||||
NSString * client;
|
NSString * client;
|
||||||
for (i = 0; i < totalPeers; i++)
|
for (i = 0; i < totalPeers; i++)
|
||||||
{
|
{
|
||||||
peer = peers[i];
|
peer = &peers[i];
|
||||||
[peerDics addObject: [NSDictionary dictionaryWithObjectsAndKeys:
|
|
||||||
[NSNumber numberWithBool: peer.isConnected], @"Connected",
|
dic = [NSMutableDictionary dictionaryWithObjectsAndKeys:
|
||||||
[NSNumber numberWithBool: peer.isIncoming], @"Incoming",
|
[NSNumber numberWithBool: peer->isConnected], @"Connected",
|
||||||
[NSString stringWithCString: (char *) peer.addr encoding: NSUTF8StringEncoding], @"IP",
|
[NSNumber numberWithBool: peer->isIncoming], @"Incoming",
|
||||||
[NSString stringWithCString: (char *) peer.client encoding: NSUTF8StringEncoding], @"Client",
|
[NSString stringWithCString: (char *) peer->addr encoding: NSUTF8StringEncoding], @"IP",
|
||||||
[NSNumber numberWithFloat: peer.progress], @"Progress",
|
[NSString stringWithCString: (char *) peer->client encoding: NSUTF8StringEncoding], @"Client",
|
||||||
[NSNumber numberWithBool: peer.isDownloading], @"UL To",
|
[NSNumber numberWithFloat: peer->progress], @"Progress",
|
||||||
[NSNumber numberWithBool: peer.isUploading], @"DL From",
|
[NSNumber numberWithBool: peer->isDownloading], @"UL To",
|
||||||
[NSNumber numberWithInt: peer.port], @"Port", nil]];
|
[NSNumber numberWithBool: peer->isUploading], @"DL From",
|
||||||
|
[NSNumber numberWithInt: peer->port], @"Port", nil];
|
||||||
|
|
||||||
|
if (peer->isDownloading)
|
||||||
|
[dic setObject: [NSNumber numberWithFloat: peer->uploadToRate] forKey: @"UL To Rate"];
|
||||||
|
if (peer->isUploading)
|
||||||
|
[dic setObject: [NSNumber numberWithFloat: peer->downloadFromRate] forKey: @"DL From Rate"];
|
||||||
|
|
||||||
|
[peerDics addObject: dic];
|
||||||
}
|
}
|
||||||
|
|
||||||
tr_torrentPeersFree(peers, totalPeers);
|
tr_torrentPeersFree(peers, totalPeers);
|
||||||
|
|
Loading…
Add table
Reference in a new issue