From 012f35bb96ce97359c031a80a67c06f4a4b9b993 Mon Sep 17 00:00:00 2001 From: Mitchell Livingston Date: Fri, 11 Jul 2008 21:48:43 +0000 Subject: [PATCH] #1042: show "in progress" in the inspector when announcing/scraping --- macosx/Credits.rtf | 8 ++++---- macosx/InfoWindowController.m | 28 ++++++++++++++++++++++++++-- macosx/Torrent.h | 3 +++ macosx/Torrent.m | 32 ++++++++++++++++++++++---------- 4 files changed, 55 insertions(+), 16 deletions(-) diff --git a/macosx/Credits.rtf b/macosx/Credits.rtf index 24f0c6b16..881662033 100644 --- a/macosx/Credits.rtf +++ b/macosx/Credits.rtf @@ -15,19 +15,19 @@ Lead Developers \b0 <{\field{\*\fldinst{HYPERLINK "mailto:dev@transmissionbt.com"}}{\fldrslt dev@transmissionbt.com}}>\ Mitchell Livingston <{\field{\*\fldinst{HYPERLINK "mailto:livings124@transmissionbt.com"}}{\fldrslt livings124@transmissionbt.com}}> -\fs20 \cf2 (Mac OS X interface) +\fs20 \cf2 (Mac OS X client) \fs24 \cf0 \ Charles Kerr <{\field{\*\fldinst{HYPERLINK "mailto:charles@%20transmissionbt.com"}}{\fldrslt charles@ transmissionbt.com}}> -\fs20 \cf2 (Backend, GTK+ interface) +\fs20 \cf2 (Daemon, Backend, GTK+ client) \fs24 \cf0 \ Eric Petit <{\field{\*\fldinst{HYPERLINK "mailto:titer@m0k.org"}}{\fldrslt titer@m0k.org}}> \fs20 \cf2 (Creator)\ \fs24 \cf0 Josh Elsasser <{\field{\*\fldinst{HYPERLINK "mailto:josh@elsasser.org"}}{\fldrslt josh@elsasser.org}}> -\fs20 \cf2 (Daemon, Backend, GTK+ interface) +\fs20 \cf2 (Daemon, Backend, GTK+ client) \fs24 \cf0 \ Bryan Varner <{\field{\*\fldinst{HYPERLINK "mailto:bryan@varnernet.com"}}{\fldrslt bryan@varnernet.com}}> -\fs20 \cf2 (BeOS interface) +\fs20 \cf2 (BeOS client) \fs24 \cf0 \ \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural \cf0 \ diff --git a/macosx/InfoWindowController.m b/macosx/InfoWindowController.m index d0fea83c9..d85bc3e63 100644 --- a/macosx/InfoWindowController.m +++ b/macosx/InfoWindowController.m @@ -1395,7 +1395,19 @@ typedef enum [fAnnounceResponseField setSelectable: ![announceResponse isEqualToString: @""]]; int announceNext = [torrent nextAnnounceTime]; - [fAnnounceNextField setStringValue: announceNext > 0 ? [NSString timeString: announceNext showSeconds: YES] : @""]; + NSString * announceNextString; + switch (announceNext) + { + case STAT_TIME_NOW: + announceNextString = [NSLocalizedString(@"In progress", "Inspector -> tracker tab") stringByAppendingEllipsis]; + break; + case STAT_TIME_NONE: + announceNextString = @""; + break; + default: + announceNextString = [NSString timeString: announceNext showSeconds: YES]; + } + [fAnnounceNextField setStringValue: announceNextString]; //scrape fields NSString * scrapeAddress; @@ -1418,7 +1430,19 @@ typedef enum [fScrapeResponseField setSelectable: ![scrapeResponse isEqualToString: @""]]; int scrapeNext = [torrent nextScrapeTime]; - [fScrapeNextField setStringValue: scrapeNext > 0 ? [NSString timeString: scrapeNext showSeconds: YES] : @""]; + NSString * scrapeNextString; + switch (scrapeNext) + { + case STAT_TIME_NOW: + scrapeNextString = [NSLocalizedString(@"In progress", "Inspector -> tracker tab") stringByAppendingEllipsis]; + break; + case STAT_TIME_NONE: + scrapeNextString = @""; + break; + default: + scrapeNextString = [NSString timeString: scrapeNext showSeconds: YES]; + } + [fScrapeNextField setStringValue: scrapeNextString]; } - (void) updateInfoPeers diff --git a/macosx/Torrent.h b/macosx/Torrent.h index 57a748a7e..607993942 100644 --- a/macosx/Torrent.h +++ b/macosx/Torrent.h @@ -34,6 +34,9 @@ typedef enum TORRENT_FILE_DEFAULT } torrentFileState; +#define STAT_TIME_NONE -1 +#define STAT_TIME_NOW -2 + @interface Torrent : NSObject { tr_torrent * fHandle; diff --git a/macosx/Torrent.m b/macosx/Torrent.m index 9eb3a966c..c5a41096b 100644 --- a/macosx/Torrent.m +++ b/macosx/Torrent.m @@ -733,11 +733,17 @@ void completenessChangeCallback(tr_torrent * torrent, cp_status_t status, void * - (int) nextAnnounceTime { int date = fStat->nextAnnounceTime; - if (date <= 0) - return -1; - - NSTimeInterval difference = [[NSDate dateWithTimeIntervalSince1970: date] timeIntervalSinceNow]; - return difference > 0 ? (int)difference : -1; + NSTimeInterval difference; + switch (date) + { + case 0: + return STAT_TIME_NONE; + case 1: + return STAT_TIME_NOW; + default: + difference = [[NSDate dateWithTimeIntervalSince1970: date] timeIntervalSinceNow]; + return difference > 0 ? (int)difference : STAT_TIME_NONE; + } } - (NSString *) announceResponse @@ -759,11 +765,17 @@ void completenessChangeCallback(tr_torrent * torrent, cp_status_t status, void * - (int) nextScrapeTime { int date = fStat->nextScrapeTime; - if (date <= 0) - return -1; - - NSTimeInterval difference = [[NSDate dateWithTimeIntervalSince1970: date] timeIntervalSinceNow]; - return difference > 0 ? (int)difference : -1; + NSTimeInterval difference; + switch (date) + { + case 0: + return STAT_TIME_NONE; + case 1: + return STAT_TIME_NOW; + default: + difference = [[NSDate dateWithTimeIntervalSince1970: date] timeIntervalSinceNow]; + return difference > 0 ? (int)difference : STAT_TIME_NONE; + } } - (NSString *) scrapeResponse