initial inclusion of the "tracker" tab

This commit is contained in:
Mitchell Livingston
2008-02-22 01:36:30 +00:00
parent d30101ac13
commit 68f5231b96
8 changed files with 4309 additions and 2971 deletions
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 397 B

After

Width:  |  Height:  |  Size: 510 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 333 B

After

Width:  |  Height:  |  Size: 364 B

+5 -1
View File
@@ -32,7 +32,7 @@
{
NSArray * fTorrents, * fPeers;
IBOutlet NSView * fInfoView, * fActivityView, * fPeersView, * fFilesView, * fOptionsView;
IBOutlet NSView * fInfoView, * fActivityView, * fTrackerView, * fPeersView, * fFilesView, * fOptionsView;
int fCurrentTabTag;
IBOutlet NSMatrix * fTabMatrix;
@@ -48,6 +48,10 @@
* fRatioField, * fSwarmSpeedField;
IBOutlet NSTextView * fCommentView;
IBOutlet NSButton * fRevealDataButton, * fRevealTorrentButton;
IBOutlet NSTextField * fAnnounceAddressField, * fAnnounceLastField, * fAnnounceResponseField,
* fAnnounceNextField, * fAnnounceManualField,
* fScrapeAddressField, * fScrapeLastField, * fScrapeResponseField, * fScrapeNextField;
IBOutlet NSTableView * fPeerTable;
IBOutlet NSTextField * fConnectedPeersField, * fDownloadingFromField, * fUploadingToField, * fKnownField,
+72 -5
View File
@@ -29,6 +29,7 @@
#define TAB_INFO_IDENT @"Info"
#define TAB_ACTIVITY_IDENT @"Activity"
#define TAB_TRACKER_IDENT @"Tracker"
#define TAB_PEERS_IDENT @"Peers"
#define TAB_FILES_IDENT @"Files"
#define TAB_OPTIONS_IDENT @"Options"
@@ -48,15 +49,17 @@ typedef enum
{
TAB_INFO_TAG = 0,
TAB_ACTIVITY_TAG = 1,
TAB_PEERS_TAG = 2,
TAB_FILES_TAG = 3,
TAB_OPTIONS_TAG = 4
TAB_TRACKER_TAG = 2,
TAB_PEERS_TAG = 3,
TAB_FILES_TAG = 4,
TAB_OPTIONS_TAG = 5
} tabTag;
@interface InfoWindowController (Private)
- (void) updateInfoGeneral;
- (void) updateInfoActivity;
- (void) updateInfoTracker;
- (void) updateInfoPeers;
- (void) updateInfoFiles;
@@ -92,6 +95,7 @@ typedef enum
//set tab images and tooltips
[[fTabMatrix cellWithTag: TAB_INFO_TAG] setIcon: [NSImage imageNamed: @"InfoGeneral.png"]];
[[fTabMatrix cellWithTag: TAB_ACTIVITY_TAG] setIcon: [NSImage imageNamed: @"InfoActivity.png"]];
//[[fTabMatrix cellWithTag: TAB_TRACKER_TAG] setIcon: [NSImage imageNamed: @"InfoTracker.png"]];
[[fTabMatrix cellWithTag: TAB_PEERS_TAG] setIcon: [NSImage imageNamed: @"InfoPeers.png"]];
[[fTabMatrix cellWithTag: TAB_FILES_TAG] setIcon: [NSImage imageNamed: @"InfoFiles.png"]];
[[fTabMatrix cellWithTag: TAB_OPTIONS_TAG] setIcon: [NSImage imageNamed: @"InfoOptions.png"]];
@@ -104,6 +108,8 @@ typedef enum
tag = TAB_INFO_TAG;
else if ([identifier isEqualToString: TAB_ACTIVITY_IDENT])
tag = TAB_ACTIVITY_TAG;
else if ([identifier isEqualToString: TAB_TRACKER_IDENT])
tag = TAB_TRACKER_TAG;
else if ([identifier isEqualToString: TAB_PEERS_IDENT])
tag = TAB_PEERS_TAG;
else if ([identifier isEqualToString: TAB_FILES_IDENT])
@@ -279,6 +285,21 @@ typedef enum
[fErrorMessageView setString: @""];
[fErrorMessageView setSelectable: NO];
[fAnnounceAddressField setStringValue: @""];
[fAnnounceAddressField setToolTip: nil];
[fAnnounceAddressField setSelectable: NO];
[fAnnounceLastField setStringValue: @""];
[fAnnounceResponseField setStringValue: @""];
[fAnnounceNextField setStringValue: @""];
[fAnnounceManualField setStringValue: @""];
[fScrapeAddressField setStringValue: @""];
[fScrapeAddressField setToolTip: nil];
[fScrapeAddressField setSelectable: NO];
[fScrapeLastField setStringValue: @""];
[fScrapeResponseField setStringValue: @""];
[fScrapeNextField setStringValue: @""];
[fConnectedPeersField setStringValue: NSLocalizedString(@"info not available", "Inspector -> Peers tab -> peers")];
[fDownloadingFromField setStringValue: @""];
[fUploadingToField setStringValue: @""];
@@ -378,6 +399,8 @@ typedef enum
[fCreatorField setSelectable: ![creatorString isEqualToString: @""]];
[fTorrentLocationField setSelectable: YES];
[fDataLocationField setSelectable: YES];
[fAnnounceAddressField setSelectable: YES];
[fScrapeAddressField setSelectable: YES];
//set pieces view
BOOL piecesAvailableSegment = [[NSUserDefaults standardUserDefaults] boolForKey: @"PiecesViewShowAvailability"];
@@ -404,6 +427,9 @@ typedef enum
case TAB_ACTIVITY_TAG:
[self updateInfoActivity];
break;
case TAB_TRACKER_TAG:
[self updateInfoTracker];
break;
case TAB_PEERS_TAG:
[self updateInfoPeers];
break;
@@ -573,6 +599,12 @@ typedef enum
[fPiecesView updateView: YES];
break;
case TAB_TRACKER_TAG:
view = fTrackerView;
identifier = TAB_TRACKER_IDENT;
title = NSLocalizedString(@"Tracker", "Inspector -> title");
canResizeVertical = NO;
break;
case TAB_PEERS_TAG:
view = fPeersView;
identifier = TAB_PEERS_IDENT;
@@ -970,8 +1002,7 @@ typedef enum
Torrent * torrent = [fTorrents objectAtIndex: 0];
NSString * tracker = [[torrent trackerAddress] stringByAppendingString: [torrent trackerAddressAnnounce]];
[fTrackerField setStringValue: tracker];
[fTrackerField setStringValue: [torrent trackerAddress]];
NSString * location = [torrent dataLocation];
[fDataLocationField setStringValue: [location stringByAbbreviatingWithTildeInPath]];
@@ -1033,6 +1064,40 @@ typedef enum
}
}
- (void) updateInfoTracker
{
if ([fTorrents count] != 1)
return;
Torrent * torrent = [fTorrents objectAtIndex: 0];
//announce fields
NSString * announceAddress = [[torrent trackerAddress] stringByAppendingString: [torrent trackerAddressAnnounce]];
[fAnnounceAddressField setStringValue: announceAddress];
[fAnnounceAddressField setToolTip: announceAddress];
[fAnnounceLastField setObjectValue: [torrent lastAnnounceTime]];
#warning make selectable/tooltip
[fAnnounceResponseField setStringValue: [torrent announceResponse]];
#warning format into minutes, etc.
int announceNext = [torrent nextAnnounceTime];
[fAnnounceNextField setStringValue: announceNext > 0 ? [NSString stringWithFormat: @"%d sec", announceNext] : @""];
[fAnnounceManualField setStringValue: @""];
//scrape fields
NSString * scrapeAddress = [[torrent trackerAddress] stringByAppendingString: [torrent trackerAddressScrape]];
[fScrapeAddressField setStringValue: scrapeAddress];
[fScrapeAddressField setToolTip: scrapeAddress];
[fScrapeLastField setObjectValue: [torrent lastScrapeTime]];
[fScrapeResponseField setStringValue: [torrent scrapeResponse]];
int scrapeNext = [torrent nextScrapeTime];
[fScrapeNextField setStringValue: scrapeNext > 0 ? [NSString stringWithFormat: @"%d sec", scrapeNext] : @""];
}
- (void) updateInfoPeers
{
if ([fTorrents count] != 1)
@@ -1106,6 +1171,8 @@ typedef enum
return fInfoView;
case TAB_ACTIVITY_TAG:
return fActivityView;
case TAB_TRACKER_TAG:
return fTrackerView;
case TAB_PEERS_TAG:
return fPeersView;
case TAB_FILES_TAG:
+11
View File
@@ -141,8 +141,19 @@ typedef enum
- (BOOL) folder;
- (uint64_t) size;
- (uint64_t) sizeLeft;
- (NSString *) trackerAddress;
- (NSString *) trackerAddressAnnounce;
- (NSDate *) lastAnnounceTime;
- (int) nextAnnounceTime;
- (int) manualAnnounceTime;
- (NSString *) announceResponse;
- (NSString *) trackerAddressScrape;
- (NSDate *) lastScrapeTime;
- (int) nextScrapeTime;
- (NSString *) scrapeResponse;
- (NSArray *) allTrackers;
- (NSString *) comment;
+51
View File
@@ -688,6 +688,57 @@ void completenessChangeCallback(tr_torrent * torrent, cp_status_t status, void *
return [NSString stringWithUTF8String: fStat->tracker->announce];
}
- (NSDate *) lastAnnounceTime
{
int date = fStat->tracker_stat.lastAnnounceTime;
return date > 0 ? [NSDate dateWithTimeIntervalSince1970: date] : nil;
}
- (int) nextAnnounceTime
{
int date = fStat->tracker_stat.nextAnnounceTime;
if (date <= 0)
return -1;
NSTimeInterval difference = [[NSDate dateWithTimeIntervalSince1970: date] timeIntervalSinceNow];
return difference > 0 ? (int)difference : -1;
}
- (int) manualAnnounceTime
{
return 666;
}
- (NSString *) announceResponse
{
return [NSString stringWithUTF8String: fStat->tracker_stat.announceResponse];
}
- (NSString *) trackerAddressScrape
{
return [NSString stringWithUTF8String: fStat->tracker->scrape];
}
- (NSDate *) lastScrapeTime
{
int date = fStat->tracker_stat.lastScrapeTime;
return date > 0 ? [NSDate dateWithTimeIntervalSince1970: date] : nil;
}
- (int) nextScrapeTime
{
int date = fStat->tracker_stat.nextScrapeTime;
if (date <= 0)
return -1;
NSTimeInterval difference = [[NSDate dateWithTimeIntervalSince1970: date] timeIntervalSinceNow];
return difference > 0 ? (int)difference : -1;
}
- (NSString *) scrapeResponse
{
return [NSString stringWithUTF8String: fStat->tracker_stat.scrapeResponse];
}
- (NSArray *) allTrackers
{
NSMutableArray * trackers = [NSMutableArray arrayWithCapacity: fInfo->trackerTiers], * subTrackers;