Changeset 692


Ignore:
Timestamp:
Jul 25, 2006, 12:59:14 AM (15 years ago)
Author:
livings124
Message:

Clicking in general area of status string in minimal view will toggle between speeds and remaining time for downloading transfers.

Location:
trunk/macosx
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/macosx/Torrent.h

    r535 r692  
    4646
    4747    NSImage         * fIcon, * fIconFlipped, * fIconSmall;
    48     NSMutableString * fNameString, * fProgressString, * fStatusString, * fShortStatusString;
     48    NSMutableString * fNameString, * fProgressString, * fStatusString, * fShortStatusString, * fRemainingTimeString;
    4949   
    5050    int     fStopRatioSetting;
     
    115115- (BOOL)    justFinished;
    116116
    117 - (NSString *)  progressString;
    118 - (NSString *)  statusString;
    119 - (NSString *)  shortStatusString;
     117- (NSString *) progressString;
     118- (NSString *) statusString;
     119- (NSString *) shortStatusString;
     120- (NSString *) remainingTimeString;
    120121
    121122- (int) seeders;
  • trunk/macosx/Torrent.m

    r639 r692  
    120120        [fStatusString release];
    121121        [fShortStatusString release];
     122        [fRemainingTimeString release];
    122123    }
    123124    [super dealloc];
     
    188189            [fStatusString setString: tempString];
    189190            [fShortStatusString setString: tempString];
     191            [fRemainingTimeString setString: tempString];
    190192           
    191193            break;
     
    197199                [self totalPeers] == 1 ? "" : "s"];
    198200           
     201            [fRemainingTimeString setString: @""];
    199202            int eta = [self eta];
    200203            if (eta < 0)
     204            {
     205                [fRemainingTimeString setString: @"Unknown"];
    201206                [fProgressString appendString: @" - remaining time unknown"];
    202             else if (eta < 60)
    203                 [fProgressString appendFormat: @" - %d sec remaining", eta];
    204             else if (eta < 3600) //60 * 60
    205             [fProgressString appendFormat: @" - %d min %02d sec remaining", eta / 60, eta % 60];
    206             else if (eta < 86400) //24 * 60 * 60
    207                 [fProgressString appendFormat: @" - %d hr %02d min remaining", eta / 3600, (eta / 60) % 60];
     207            }
    208208            else
    209                 [fProgressString appendFormat: @" - %d day%s %d hr remaining",
    210                                             eta / 86400, eta / 86400 == 1 ? "" : "s", (eta / 3600) % 24];
     209            {
     210                if (eta < 60)
     211                    [fRemainingTimeString appendFormat: @"%d sec", eta];
     212                else if (eta < 3600) //60 * 60
     213                    [fRemainingTimeString appendFormat: @"%d min %02d sec", eta / 60, eta % 60];
     214                else if (eta < 86400) //24 * 60 * 60
     215                    [fRemainingTimeString appendFormat: @"%d hr %02d min", eta / 3600, (eta / 60) % 60];
     216                else
     217                    [fRemainingTimeString appendFormat: @"%d day%s %d hr",
     218                                                eta / 86400, eta / 86400 == 1 ? "" : "s", (eta / 3600) % 24];
     219               
     220                [fProgressString appendFormat: @" - %@ remaining", fRemainingTimeString];
     221            }
    211222           
    212223            break;
     
    511522}
    512523
     524- (NSString *) remainingTimeString
     525{
     526    return fRemainingTimeString;
     527}
     528
    513529- (int) seeders
    514530{
     
    668684    fProgressString = [[NSMutableString alloc] initWithCapacity: 50];
    669685    fStatusString = [[NSMutableString alloc] initWithCapacity: 75];
    670     fShortStatusString = [[NSMutableString alloc] initWithCapacity: 50];
     686    fShortStatusString = [[NSMutableString alloc] initWithCapacity: 30];
     687    fRemainingTimeString = [[NSMutableString alloc] initWithCapacity: 30];
    671688
    672689    [self update];
  • trunk/macosx/TorrentCell.h

    r530 r692  
    3232{
    3333    Torrent * fTorrent;
     34    BOOL fNormalStatus;
    3435
    3536    NSUserDefaults * fDefaults;
    3637}
    37 - (void) setTorrent:   (Torrent *) torrent;
     38
     39- (void) setTorrent: (Torrent *) torrent;
     40
     41- (void) toggleMinimalStatus;
     42
    3843@end
    3944
  • trunk/macosx/TorrentCell.m

    r678 r692  
    6464    if ((self = [super init]))
    6565    {
     66        fNormalStatus = YES;
     67   
    6668        fDefaults = [NSUserDefaults standardUserDefaults];
    6769   
     
    281283}
    282284
     285- (void) toggleMinimalStatus
     286{
     287    fNormalStatus = !fNormalStatus;
     288}
     289
    283290- (void) drawWithFrame: (NSRect) cellFrame inView: (NSView *) view
    284291{
     
    356363        float mainWidth = cellFrame.size.width - iconSize.width - 3.0 * PADDING - EXTRA_NAME_SHIFT;
    357364       
    358         NSAttributedString * statusString = [[[NSAttributedString alloc] initWithString: [fTorrent shortStatusString]
     365        NSString * realStatusString = !fNormalStatus && [fTorrent isActive] && [fTorrent progress] < 1.0
     366                                    ? [fTorrent remainingTimeString] : [fTorrent shortStatusString];
     367       
     368        NSAttributedString * statusString = [[[NSAttributedString alloc] initWithString: realStatusString
    359369                                                    attributes: statusAttributes] autorelease];
    360370        NSAttributedString * nameString = [[fTorrent name] attributedStringFittingInWidth:
  • trunk/macosx/TorrentTableView.m

    r683 r692  
    2424
    2525#import "TorrentTableView.h"
     26#import "TorrentCell.h"
    2627#import "Controller.h"
    2728#import "Torrent.h"
     
    4243- (BOOL) pointInRevealRect: (NSPoint) point;
    4344- (BOOL) pointInIconRect: (NSPoint) point;
     45- (BOOL) pointInMinimalStatusRect: (NSPoint) point;
    4446
    4547@end
     
    9597    }
    9698    else if (![self pointInPauseRect: fClickPoint] && ![self pointInRevealRect: fClickPoint])
     99    {
     100        if ([self pointInMinimalStatusRect: fClickPoint])
     101            [(TorrentCell *)[[self tableColumnWithIdentifier: @"Torrent"] dataCell] toggleMinimalStatus];
     102
    97103        [super mouseDown: event];
     104    }
    98105    else;
    99106
     
    264271    if (row < 0)
    265272        return NO;
    266    
     273
    267274    NSRect cellRect = [self frameOfCellAtColumn: [self columnWithIdentifier: @"Torrent"] row: row];
    268275    NSSize iconSize = [fDefaults boolForKey: @"SmallView"] ? [[[fTorrents objectAtIndex: row] iconSmall] size]
     
    275282}
    276283
     284- (BOOL) pointInMinimalStatusRect: (NSPoint) point
     285{
     286    int row = [self rowAtPoint: point];
     287    if (row < 0 || ![fDefaults boolForKey: @"SmallView"])
     288        return NO;
     289
     290    const STATUS_WIDTH = 130.0;
     291    NSRect cellRect = [self frameOfCellAtColumn: [self columnWithIdentifier: @"Torrent"] row: row];
     292    NSRect statusRect = NSMakeRect(NSMaxX(cellRect) - STATUS_WIDTH, cellRect.origin.y,
     293                            STATUS_WIDTH, cellRect.size.height - BUTTON_WIDTH);
     294   
     295    return NSPointInRect(point, statusRect);
     296}
     297
    277298- (BOOL) pointInPauseRect: (NSPoint) point
    278299{
Note: See TracChangeset for help on using the changeset viewer.