Changeset 530


Ignore:
Timestamp:
Jul 5, 2006, 10:36:27 PM (16 years ago)
Author:
livings124
Message:

Start of Small Table View (accessible from View menu).

Location:
trunk/macosx
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/macosx/Controller.h

    r518 r530  
    5050    NSToolbar                   * fToolbar;
    5151   
    52     IBOutlet NSMenuItem         * fAdvancedBarItem, * fSpeedLimitItem, * fSpeedLimitDockItem;
     52    IBOutlet NSMenuItem         * fAdvancedBarItem, * fSmallViewItem,
     53                                * fSpeedLimitItem, * fSpeedLimitDockItem;
    5354    IBOutlet NSButton           * fActionButton, * fSpeedLimitButton;
    5455   
    5556    IBOutlet SmoothAquaView     * fStatusBar;
    5657    BOOL                        fStatusBarVisible;
    57     IBOutlet NSTextField        * fTotalDLField;
    58     IBOutlet NSTextField        * fTotalULField;
    59     IBOutlet NSTextField        * fTotalTorrentsField;
     58    IBOutlet NSTextField        * fTotalDLField, * fTotalULField, * fTotalTorrentsField;
    6059   
    6160    NSString                    * fSortType;
     
    147146                        (void *) messageArgument;
    148147
     148- (void) toggleSmallView: (id) sender;
     149
    149150- (void) toggleStatusBar: (id) sender;
    150151- (void) showStatusBar: (BOOL) show animate: (BOOL) animate;
  • trunk/macosx/Controller.m

    r523 r530  
    4343#define TORRENT_TABLE_VIEW_DATA_TYPE    @"TorrentTableViewDataType"
    4444
     45#define ROW_HEIGHT_REGULAR 65.0
     46#define ROW_HEIGHT_SMALL 38.0
     47
    4548#define WEBSITE_URL @"http://transmission.m0k.org/"
    4649#define FORUM_URL   @"http://transmission.m0k.org/forum/"
     
    110113                                + [fTableView rowHeight] + [fTableView intercellSpacing].height;
    111114    [fWindow setContentMinSize: contentMinSize];
     115   
     116    //set table size
     117    if ([fDefaults boolForKey: @"SmallView"])
     118    {
     119        [fTableView setRowHeight: ROW_HEIGHT_SMALL];
     120        [fSmallViewItem setState: NSOnState];
     121    }
    112122   
    113123    //set info keyboard shortcuts
     
    12351245}
    12361246
     1247- (void) toggleSmallView: (id) sender
     1248{
     1249    BOOL makeSmall = ![fDefaults boolForKey: @"SmallView"];
     1250   
     1251    [fTableView setRowHeight: makeSmall ? ROW_HEIGHT_SMALL : ROW_HEIGHT_REGULAR];
     1252    [fSmallViewItem setState: makeSmall];
     1253   
     1254    [fDefaults setBool: makeSmall forKey: @"SmallView"];
     1255}
     1256
    12371257- (void) toggleStatusBar: (id) sender
    12381258{
  • trunk/macosx/Defaults.plist

    r490 r530  
    4949        <key>ShowInspector</key>
    5050        <false/>
     51        <key>SmallView</key>
     52        <false/>
    5153        <key>Sort</key>
    5254        <string>Order</string>
  • trunk/macosx/English.lproj/MainMenu.nib/classes.nib

    r496 r530  
    2727                stopTorrent = id;
    2828                toggleAdvancedBar = id;
     29                toggleSmallView = id;
    2930                toggleSpeedLimit = id;
    3031                toggleStatusBar = id;
     
    4748                fRatioSetItem = NSMenuItem;
    4849                fScrollView = NSScrollView;
     50                fSmallViewItem = NSMenuItem;
    4951                fSpeedLimitButton = NSButton;
    5052                fSpeedLimitDockItem = NSMenuItem;
  • trunk/macosx/English.lproj/MainMenu.nib/info.nib

    r497 r530  
    1212                <string>366 548 420 60 0 0 1152 842 </string>
    1313                <key>29</key>
    14                 <string>8 755 451 44 0 0 1152 842 </string>
     14                <string>7 773 451 44 0 0 1152 842 </string>
    1515                <key>456</key>
    1616                <string>396 374 216 206 0 0 1152 842 </string>
     
    3131        <array>
    3232                <integer>29</integer>
    33                 <integer>21</integer>
    3433        </array>
    3534        <key>IBSystem Version</key>
  • trunk/macosx/Torrent.h

    r506 r530  
    4545    NSUserDefaults  * fDefaults;
    4646
    47     NSImage         * fIcon, * fIconFlipped;
    48     NSMutableString * fNameString, * fProgressString, * fStatusString;
     47    NSImage         * fIcon, * fIconFlipped, * fIconSmall;
     48    NSMutableString * fNameString, * fProgressString, * fStatusString, * fShortStatusString;
    4949   
    5050    int     fStopRatioSetting;
     
    8585- (void)    trashTorrent;
    8686
    87 - (NSImage *)  icon;
    88 - (NSImage *)  iconFlipped;
     87- (NSImage *)   icon;
     88- (NSImage *)   iconFlipped;
     89- (NSImage *)   iconSmall;
    8990
    9091- (NSString *) name;
     
    116117- (NSString *)  progressString;
    117118- (NSString *)  statusString;
     119- (NSString *)  shortStatusString;
    118120
    119121- (int) seeders;
  • trunk/macosx/Torrent.m

    r527 r530  
    112112       
    113113        [fDate release];
     114       
    114115        [fIcon release];
    115116        [fIconFlipped release];
     117        [fIconSmall release];
     118       
    116119        [fProgressString release];
    117120        [fStatusString release];
     121        [fShortStatusString release];
    118122    }
    119123    [super dealloc];
     
    163167    switch (fStat->status)
    164168    {
     169        NSString * tempString;
     170   
    165171        case TR_STATUS_PAUSE:
    166172            if (fFinishedSeeding)
    167                 [fStatusString setString: @"Seeding complete"];
     173                tempString = @"Seeding complete";
    168174            else if (fWaitToStart && [[fDefaults stringForKey: @"StartSetting"] isEqualToString: @"Wait"])
    169                 [fStatusString setString: [@"Waiting to start" stringByAppendingEllipsis]];
     175                tempString = [@"Waiting to start" stringByAppendingEllipsis];
    170176            else
    171                 [fStatusString setString: @"Paused"];
     177                tempString = @"Paused";
     178           
     179            [fStatusString setString: tempString];
     180            [fShortStatusString setString: tempString];
     181           
    172182            break;
    173183
    174184        case TR_STATUS_CHECK:
    175             [fStatusString setString: [@"Checking existing files" stringByAppendingEllipsis]];
     185            tempString = [@"Checking existing files" stringByAppendingEllipsis];
     186           
     187            [fStatusString setString: tempString];
     188            [fShortStatusString setString: tempString];
     189           
    176190            break;
    177191
     
    202216                @"Seeding to %d of %d peer%s",
    203217                [self peersDownloading], [self totalPeers], [self totalPeers] == 1 ? "" : "s"];
     218           
    204219            break;
    205220
    206221        case TR_STATUS_STOPPING:
    207             [fStatusString setString: [@"Stopping" stringByAppendingEllipsis]];
     222            tempString = [@"Stopping" stringByAppendingEllipsis];
     223       
     224            [fStatusString setString: tempString];
     225            [fShortStatusString setString: tempString];
     226           
    208227            break;
    209228    }
     
    217236    if ([self isActive])
    218237    {
    219         [fStatusString appendString: @" - "];
     238        NSString * stringToAppend = @"";
    220239        if ([self progress] < 1.0)
    221             [fStatusString appendFormat: @"DL: %@, ", [NSString stringForSpeed: [self downloadRate]]];
    222         [fStatusString appendString: [@"UL: " stringByAppendingString:
     240            stringToAppend = [NSString stringWithFormat: @"DL: %@, ", [NSString stringForSpeed: [self downloadRate]]];
     241        stringToAppend = [stringToAppend stringByAppendingString: [@"UL: " stringByAppendingString:
    223242                                                [NSString stringForSpeed: [self uploadRate]]]];
     243
     244        [fStatusString appendFormat: @" - %@", stringToAppend];
     245        [fShortStatusString setString: stringToAppend];
    224246    }
    225247}
     
    338360}
    339361
     362- (NSImage *) iconSmall
     363{
     364    return fIconSmall;
     365}
     366
    340367- (NSString *) name
    341368{
     
    471498{
    472499    return fStatusString;
     500}
     501
     502- (NSString *) shortStatusString
     503{
     504    return fShortStatusString;
    473505}
    474506
     
    621653    fIconFlipped = [fIcon copy];
    622654    [fIconFlipped setFlipped: YES];
     655   
     656    fIconSmall = [fIconFlipped copy];
     657    [fIconSmall setScalesWhenResized: YES];
     658    [fIconSmall setSize: NSMakeSize(16.0, 16.0)];
    623659
    624660    fProgressString = [[NSMutableString alloc] initWithCapacity: 50];
    625661    fStatusString = [[NSMutableString alloc] initWithCapacity: 75];
     662    fShortStatusString = [[NSMutableString alloc] initWithCapacity: 50];
    626663
    627664    [self update];
  • trunk/macosx/TorrentCell.h

    r272 r530  
    3232{
    3333    Torrent * fTorrent;
     34
     35    NSUserDefaults * fDefaults;
    3436}
    3537- (void) setTorrent:   (Torrent *) torrent;
  • trunk/macosx/TorrentCell.m

    r505 r530  
    6363    if ((self = [super init]))
    6464    {
     65        fDefaults = [NSUserDefaults standardUserDefaults];
     66   
    6567        NSSize startSize = NSMakeSize(100.0, BAR_HEIGHT);
    6668        if (!fProgressWhite)
     
    282284
    283285    NSPoint pen = cellFrame.origin;
    284     float padding = 3.0, linePadding = 2.0;
    285 
    286     //icon
    287     NSImage * icon = [fTorrent iconFlipped];
    288     NSSize iconSize = [icon size];
    289    
    290     pen.x += padding;
    291     pen.y += (cellFrame.size.height - iconSize.height) * 0.5;
    292    
    293     [icon drawAtPoint: pen fromRect: NSMakeRect( 0, 0, iconSize.width, iconSize.height )
    294             operation: NSCompositeSourceOver fraction: 1.0];
    295 
    296     float extraNameShift = 1.0,
    297         mainWidth = cellFrame.size.width - iconSize.width - 3.0 * padding - extraNameShift;
    298 
    299     //name string
    300     pen.x += iconSize.width + padding + extraNameShift;
    301     pen.y = cellFrame.origin.y + padding;
    302     NSAttributedString * nameString = [[fTorrent name] attributedStringFittingInWidth: mainWidth
    303                                 attributes: nameAttributes];
    304     [nameString drawAtPoint: pen];
    305    
    306     //progress string
    307     pen.y += [nameString size].height + linePadding - 1.0;
    308    
    309     NSAttributedString * progressString = [[fTorrent progressString]
    310         attributedStringFittingInWidth: mainWidth attributes: statusAttributes];
    311     [progressString drawAtPoint: pen];
    312 
    313     //progress bar
    314     pen.x -= extraNameShift;
    315     pen.y += [progressString size].height + linePadding + BAR_HEIGHT;
    316    
    317     float barWidth = mainWidth + extraNameShift - BUTTONS_TOTAL_WIDTH + padding;
    318    
    319     if ([[NSUserDefaults standardUserDefaults] boolForKey: @"UseAdvancedBar"])
    320         [self buildAdvancedBar: barWidth point: pen];
    321     else
    322         [self buildSimpleBar: barWidth point: pen];
    323 
    324     //status strings
    325     pen.x += extraNameShift;
    326     pen.y += linePadding;
    327     NSAttributedString * statusString = [[fTorrent statusString]
    328         attributedStringFittingInWidth: mainWidth attributes: statusAttributes];
    329     [statusString drawAtPoint: pen];
     286    const float padding = 3.0, linePadding = 2.0, extraNameShift = 1.0;
     287
     288    if (![fDefaults boolForKey: @"SmallView"]) //regular size
     289    {
     290        //icon
     291        NSImage * icon = [fTorrent iconFlipped];
     292        NSSize iconSize = [icon size];
     293       
     294        pen.x += padding;
     295        pen.y += (cellFrame.size.height - iconSize.height) * 0.5;
     296       
     297        [icon drawAtPoint: pen fromRect: NSMakeRect(0, 0, iconSize.width, iconSize.height)
     298                operation: NSCompositeSourceOver fraction: 1.0];
     299
     300        const float mainWidth = cellFrame.size.width - iconSize.width - 3.0 * padding - extraNameShift;
     301
     302        //name string
     303        pen.x += iconSize.width + padding + extraNameShift;
     304        pen.y = cellFrame.origin.y + padding;
     305        NSAttributedString * nameString = [[fTorrent name] attributedStringFittingInWidth: mainWidth
     306                                                attributes: nameAttributes];
     307        [nameString drawAtPoint: pen];
     308       
     309        //progress string
     310        pen.y += [nameString size].height + linePadding - 1.0;
     311       
     312        NSAttributedString * progressString = [[fTorrent progressString]
     313            attributedStringFittingInWidth: mainWidth attributes: statusAttributes];
     314        [progressString drawAtPoint: pen];
     315
     316        //progress bar
     317        pen.x -= extraNameShift;
     318        pen.y += [progressString size].height + linePadding + BAR_HEIGHT;
     319       
     320        const float barWidth = mainWidth + extraNameShift - BUTTONS_TOTAL_WIDTH + padding;
     321       
     322        if ([fDefaults boolForKey: @"UseAdvancedBar"])
     323            [self buildAdvancedBar: barWidth point: pen];
     324        else
     325            [self buildSimpleBar: barWidth point: pen];
     326
     327        //status string
     328        pen.x += extraNameShift;
     329        pen.y += linePadding;
     330        NSAttributedString * statusString = [[fTorrent statusString]
     331            attributedStringFittingInWidth: mainWidth attributes: statusAttributes];
     332        [statusString drawAtPoint: pen];
     333    }
     334    else //small size
     335    {
     336        //icon
     337        NSImage * icon = [fTorrent iconSmall];
     338        NSSize iconSize = [icon size];
     339       
     340        pen.x += padding;
     341        pen.y += (cellFrame.size.height - iconSize.height) * 0.5;
     342       
     343        [icon drawAtPoint: pen fromRect: NSMakeRect(0, 0, iconSize.width, iconSize.height)
     344                operation: NSCompositeSourceOver fraction: 1.0];
     345
     346        //name and status string
     347        const float mainWidth = cellFrame.size.width - iconSize.width - 3.0 * padding - extraNameShift;
     348       
     349        NSAttributedString * nameString = [[fTorrent name] attributedStringFittingInWidth: mainWidth
     350                                    attributes: nameAttributes];
     351        NSAttributedString * statusString = [[fTorrent shortStatusString] attributedStringFittingInWidth: mainWidth
     352                                                attributes: statusAttributes];
     353                     
     354        //place name string
     355        pen.x += iconSize.width + padding + extraNameShift;
     356        pen.y = cellFrame.origin.y + linePadding;
     357
     358        [nameString drawAtPoint: pen];
     359       
     360        //place status string
     361        pen.x = cellFrame.origin.x + cellFrame.size.width - padding - [statusString size].width;
     362        pen.y += [nameString size].height - [statusString size].height;
     363       
     364        [statusString drawAtPoint: pen];
     365       
     366        //progress bar
     367        pen.x = cellFrame.origin.x + iconSize.width + 2.0 * padding;
     368        pen.y += [statusString size].height + linePadding + BAR_HEIGHT;
     369       
     370        const float barWidth = mainWidth + extraNameShift - BUTTONS_TOTAL_WIDTH + padding;
     371       
     372        if ([fDefaults boolForKey: @"UseAdvancedBar"])
     373            [self buildAdvancedBar: barWidth point: pen];
     374        else
     375            [self buildSimpleBar: barWidth point: pen];
     376    }
    330377   
    331378    [nameAttributes release];
  • trunk/macosx/TorrentTableView.h

    r381 r530  
    3535    IBOutlet Controller * fController;
    3636    NSArray             * fTorrents;
    37 
    38     NSPoint               fClickPoint;
     37    NSPoint             fClickPoint;
     38   
     39    NSUserDefaults      * fDefaults;
    3940   
    4041    IBOutlet NSMenu     * fContextRow, * fContextNoRow;
    41    
    4242    NSImage             * fResumeOnIcon, * fResumeOffIcon, * fPauseOnIcon, * fPauseOffIcon,
    4343                        * fRevealOnIcon, * fRevealOffIcon;
  • trunk/macosx/TorrentTableView.m

    r496 r530  
    2727#import "Torrent.h"
    2828
     29#define BUTTON_TO_TOP_REGULAR 33.5
     30#define BUTTON_TO_TOP_SMALL 19.0
     31
    2932#define BUTTON_WIDTH 14.0
    30 #define BUTTON_TO_TOP 33.5
    3133#define DISTANCE_FROM_CENTER 2.5
    3234//change BUTTONS_TOTAL_WIDTH when changing this
     
    5759       
    5860        fClickPoint = NSZeroPoint;
     61       
     62        fDefaults = [NSUserDefaults standardUserDefaults];
    5963    }
    6064   
     
    183187{
    184188    NSRect cellRect = [self frameOfCellAtColumn: [self columnWithIdentifier: @"Torrent"] row: row];
    185                
    186     return NSMakeRect(cellRect.origin.x + cellRect.size.width
    187                         - AREA_CENTER - DISTANCE_FROM_CENTER - BUTTON_WIDTH,
    188                         cellRect.origin.y + BUTTON_TO_TOP, BUTTON_WIDTH, BUTTON_WIDTH);
     189   
     190    float buttonToTop = [fDefaults boolForKey: @"SmallView"] ? BUTTON_TO_TOP_SMALL : BUTTON_TO_TOP_REGULAR;
     191   
     192    return NSMakeRect(cellRect.origin.x + cellRect.size.width - AREA_CENTER - DISTANCE_FROM_CENTER - BUTTON_WIDTH,
     193                        cellRect.origin.y + buttonToTop, BUTTON_WIDTH, BUTTON_WIDTH);
    189194}
    190195
     
    193198    NSRect cellRect = [self frameOfCellAtColumn: [self columnWithIdentifier: @"Torrent"] row: row];
    194199   
     200    float buttonToTop = [fDefaults boolForKey: @"SmallView"] ? BUTTON_TO_TOP_SMALL : BUTTON_TO_TOP_REGULAR;
     201   
    195202    return NSMakeRect(cellRect.origin.x + cellRect.size.width - AREA_CENTER + DISTANCE_FROM_CENTER,
    196                         cellRect.origin.y + BUTTON_TO_TOP, BUTTON_WIDTH, BUTTON_WIDTH);
     203                        cellRect.origin.y + buttonToTop, BUTTON_WIDTH, BUTTON_WIDTH);
    197204}
    198205
Note: See TracChangeset for help on using the changeset viewer.