Changeset 9197


Ignore:
Timestamp:
Sep 28, 2009, 1:57:35 AM (12 years ago)
Author:
livings124
Message:

first go at redoing the tracker inspector tab (some functionality is still missing)

Location:
trunk
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Transmission.xcodeproj/project.pbxproj

    r9174 r9197  
    8181                A219798B0D07B78400438EA7 /* GroupToolbarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = A219798A0D07B78400438EA7 /* GroupToolbarItem.m */; };
    8282                A21A9BE2106D86A800F1C3C1 /* TrackerNode.m in Sources */ = {isa = PBXBuildFile; fileRef = A21A9BE1106D86A800F1C3C1 /* TrackerNode.m */; };
     83                A21A9D41106EC2E800F1C3C1 /* TrackerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A21A9D40106EC2E800F1C3C1 /* TrackerCell.m */; };
    8384                A21DFF100A292B2B007C5F76 /* Transfers.png in Resources */ = {isa = PBXBuildFile; fileRef = A21DFF0F0A292B2B007C5F76 /* Transfers.png */; };
    8485                A21FBBAB0EDA78C300BC3C51 /* bandwidth.h in Headers */ = {isa = PBXBuildFile; fileRef = A21FBBA90EDA78C300BC3C51 /* bandwidth.h */; };
     
    490491                A21A9BE0106D86A800F1C3C1 /* TrackerNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TrackerNode.h; path = macosx/TrackerNode.h; sourceTree = "<group>"; };
    491492                A21A9BE1106D86A800F1C3C1 /* TrackerNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TrackerNode.m; path = macosx/TrackerNode.m; sourceTree = "<group>"; };
     493                A21A9D3F106EC2E800F1C3C1 /* TrackerCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TrackerCell.h; path = macosx/TrackerCell.h; sourceTree = "<group>"; };
     494                A21A9D40106EC2E800F1C3C1 /* TrackerCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TrackerCell.m; path = macosx/TrackerCell.m; sourceTree = "<group>"; };
    492495                A21DFF0F0A292B2B007C5F76 /* Transfers.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Transfers.png; path = macosx/Images/Transfers.png; sourceTree = "<group>"; };
    493496                A21FBBA90EDA78C300BC3C51 /* bandwidth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bandwidth.h; path = libtransmission/bandwidth.h; sourceTree = "<group>"; };
     
    13821385                                A2725D5B0DE7507C003445E7 /* TrackerTableView.h */,
    13831386                                A2725D5C0DE7507C003445E7 /* TrackerTableView.m */,
     1387                                A21A9D3F106EC2E800F1C3C1 /* TrackerCell.h */,
     1388                                A21A9D40106EC2E800F1C3C1 /* TrackerCell.m */,
    13841389                        );
    13851390                        name = "Info Window";
     
    19972002                                A29D84041049C25600D1987A /* NSApplicationAdditions.m in Sources */,
    19982003                                A21A9BE2106D86A800F1C3C1 /* TrackerNode.m in Sources */,
     2004                                A21A9D41106EC2E800F1C3C1 /* TrackerCell.m in Sources */,
    19992005                        );
    20002006                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/macosx/Controller.m

    r9193 r9197  
    3030#import "Torrent.h"
    3131#import "TorrentGroup.h"
    32 #import "TorrentCell.h"
    3332#import "TorrentTableView.h"
    3433#import "CreatorWindowController.h"
  • trunk/macosx/InfoWindowController.h

    r9186 r9197  
    2929@class Torrent;
    3030@class TrackerTableView;
     31@class TrackerCell;
    3132@class FileOutlineController;
    3233@class PiecesView;
     
    5455   
    5556    IBOutlet TrackerTableView * fTrackerTable;
     57    TrackerCell * fTrackerCell;
    5658    IBOutlet NSSegmentedControl * fTrackerAddRemoveControl;
    5759   
  • trunk/macosx/InfoWindowController.m

    r9186 r9197  
    3333#import "PiecesView.h"
    3434#import "Torrent.h"
     35#import "TrackerCell.h"
    3536#import "TrackerNode.h"
    3637#import "TrackerTableView.h"
     
    4546
    4647#define TAB_MIN_HEIGHT 250
     48
     49#define TRACKER_GROUP_SEPARATOR_HEIGHT 14.0
    4750
    4851#define PIECES_CONTROL_PROGRESS 0
     
    97100- (id) init
    98101{
    99     return [super initWithWindowNibName: @"InfoWindow"];
     102    if ((self = [super initWithWindowNibName: @"InfoWindow"]))
     103    {
     104        fTrackerCell = [[TrackerCell alloc] init];
     105    }
     106   
     107    return self;
    100108}
    101109
     
    237245    [fWebSeedTableAnimation release];
    238246   
     247    [fTrackerCell release];
     248   
    239249    [fTrackerIconCache release];
    240250    [fTrackerIconCacheLeopard release];
     
    891901    else if (tableView == fTrackerTable)
    892902    {
    893         NSString * ident = [column identifier];
     903        //NSString * ident = [column identifier];
    894904        id item = [fTrackers objectAtIndex: row];
    895905       
    896         if ([ident isEqualToString: @"Icon"])
     906        #warning isn't used
     907        /*if ([ident isEqualToString: @"Icon"])
    897908        {
    898909            NSAssert([item isKindOfClass: [TrackerNode class]], @"Value passed to tracker table's icon row is not a TrackerNode!");
     
    918929           
    919930            return (icon && icon != [NSNull null]) ? icon : [NSImage imageNamed: @"FavIcon.png"];
    920         }
    921         if ([ident isEqualToString: @"Address"])
    922             return [(TrackerNode *)item host];
     931        }*/
     932       
     933        if ([item isKindOfClass: [NSNumber class]])
     934            return [NSString stringWithFormat: NSLocalizedString(@"Tier %d", "Inspector -> tracker table"), [item integerValue]];
    923935        else
    924             return [NSString stringWithFormat: NSLocalizedString(@"Tier %d", "Inspector -> tracker table"), [item integerValue]];
     936            return item;
     937
    925938    }
    926939    return nil;
     
    955968}
    956969
    957 - (NSCell *)tableView: (NSTableView *) tableView dataCellForTableColumn: (NSTableColumn *) tableColumn row: (NSInteger) row
     970- (NSCell *) tableView: (NSTableView *) tableView dataCellForTableColumn: (NSTableColumn *) tableColumn row: (NSInteger) row
    958971{
    959972    if (tableView == fTrackerTable)
    960973    {
    961         //group row the full column width
    962         if (!tableColumn && [[fTrackers objectAtIndex: row] isKindOfClass: [NSNumber class]])
    963             return [[tableView tableColumnWithIdentifier: @"Address"] dataCell];
     974        const BOOL group = [[fTrackers objectAtIndex: row] isKindOfClass: [NSNumber class]];
     975        return group ? [tableColumn dataCellForRow: row] : fTrackerCell;
    964976    }
    965977   
    966978    return nil;
     979}
     980
     981- (CGFloat) tableView: (NSTableView *) tableView heightOfRow: (NSInteger) row
     982{
     983    if (tableView == fTrackerTable)
     984    {
     985        if ([[fTrackers objectAtIndex: row] isKindOfClass: [NSNumber class]])
     986            return TRACKER_GROUP_SEPARATOR_HEIGHT;
     987    }
     988   
     989    return [tableView rowHeight];
    967990}
    968991
     
    17321755    [fTrackerTable reloadData];
    17331756    [fTrackerTable selectRowIndexes: [NSIndexSet indexSetWithIndex: [fTrackers count]-1] byExtendingSelection: NO];
    1734     [fTrackerTable editColumn: [fTrackerTable columnWithIdentifier: @"Address"] row: [fTrackers count]-1 withEvent: nil select: YES];
     1757    [fTrackerTable editColumn: [fTrackerTable columnWithIdentifier: @"Tracker"] row: [fTrackers count]-1 withEvent: nil select: YES];
    17351758}
    17361759
  • trunk/macosx/TrackerNode.h

    r9185 r9197  
    3535- (NSString *) host;
    3636
     37- (NSString *) lastAnnounceStatusString;
     38- (NSString *) nextAnnounceStatusString;
     39- (NSString *) lastScrapeStatusString;
     40
    3741#if 0
    3842
     
    5256- (int) lastAnnouncePeerCount;
    5357- (NSString *) lastAnnounceResult;
     58- (NSDate *) lastAnnounceDate;
    5459- (NSDate *) lastAnnounceStartDate;
    5560- (BOOL) lastAnnounceSucceeded;
  • trunk/macosx/TrackerNode.m

    r9185 r9197  
    2424
    2525#import "TrackerNode.h"
     26#import "NSApplicationAdditions.h"
     27#import "NSStringAdditions.h"
    2628
    2729@implementation TrackerNode
     
    3739}
    3840
     41- (id) copyWithZone: (NSZone *) zone
     42{
     43    //this object is essentially immutable after initial setup
     44    return [self retain];
     45}
     46
    3947- (NSString *) host
    4048{
     
    4250}
    4351
     52#warning work in peer count?
     53#warning consider "isActive"
     54- (NSString *) lastAnnounceStatusString
     55{
     56    NSString * dateString;
     57    if (fStat.hasAnnounced && fStat.lastAnnounceTime != 0)
     58    {
     59        NSDate * announceDate = [NSDate dateWithTimeIntervalSince1970: fStat.lastAnnounceTime];
     60        if ([NSApp isOnSnowLeopardOrBetter])
     61            dateString = [NSDateFormatter localizedStringFromDate: announceDate dateStyle: NSDateFormatterFullStyle
     62                            timeStyle: NSDateFormatterShortStyle];
     63        else
     64        {
     65            NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
     66            [dateFormatter setDateStyle: NSDateFormatterFullStyle];
     67            [dateFormatter setTimeStyle: NSDateFormatterShortStyle];
     68           
     69            dateString = [dateFormatter stringFromDate: announceDate];
     70            [dateFormatter release];
     71        }
     72    }
     73    else
     74        dateString = NSLocalizedString(@"N/A", "Tracker last announce");
     75   
     76    if (fStat.hasAnnounced && !fStat.lastAnnounceSucceeded)
     77        dateString = [NSString stringWithFormat: @"%@: %@ - %@", NSLocalizedString(@"Announce error", "Tracker last announce"),
     78                        [NSString stringWithUTF8String: fStat.lastAnnounceResult], dateString];
     79    else
     80        dateString = [NSString stringWithFormat: NSLocalizedString(@"Last Announce: %@", "Tracker last announce"), dateString];
     81   
     82    return dateString;
     83}
     84
     85- (NSString *) nextAnnounceStatusString
     86{
     87    if (fStat.isAnnouncing)
     88        return [NSLocalizedString(@"Announce in progress", "Tracker next announce") stringByAppendingEllipsis];
     89    else if (fStat.willAnnounce)
     90        return [NSString stringWithFormat: NSLocalizedString(@"Next announce in %@", "Tracker next announce"),
     91                [NSString timeString: fStat.nextAnnounceTime - [[NSDate date] timeIntervalSince1970] showSeconds: YES]];
     92    else
     93        return NSLocalizedString(@"Announce not scheduled", "Tracker next announce");
     94}
     95
     96- (NSString *) lastScrapeStatusString
     97{
     98    NSString * dateString;
     99    if (fStat.hasScraped && fStat.lastScrapeTime != 0)
     100    {
     101        NSDate * scrapeDate = [NSDate dateWithTimeIntervalSince1970: fStat.lastScrapeTime];
     102        if ([NSApp isOnSnowLeopardOrBetter])
     103            dateString = [NSDateFormatter localizedStringFromDate: scrapeDate dateStyle: NSDateFormatterFullStyle
     104                            timeStyle: NSDateFormatterShortStyle];
     105        else
     106        {
     107            NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
     108            [dateFormatter setDateStyle: NSDateFormatterFullStyle];
     109            [dateFormatter setTimeStyle: NSDateFormatterShortStyle];
     110           
     111            dateString = [dateFormatter stringFromDate: scrapeDate];
     112            [dateFormatter release];
     113        }
     114    }
     115    else
     116        dateString = NSLocalizedString(@"N/A", "Tracker last announce");
     117   
     118    if (fStat.hasScraped && !fStat.lastScrapeSucceeded)
     119        dateString = [NSString stringWithFormat: @"%@: %@ - %@", NSLocalizedString(@"Scrape error", "Tracker last announce"),
     120                        [NSString stringWithUTF8String: fStat.lastScrapeResult], dateString];
     121    else
     122        dateString = [NSString stringWithFormat: NSLocalizedString(@"Last Scrape: %@", "Tracker last announce"), dateString];
     123   
     124    return dateString;
     125}
     126
    44127@end
  • trunk/macosx/en.lproj/InfoWindow.xib

    r9183 r9197  
    1313                <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
    1414                        <bool key="EncodedWithXMLCoder">YES</bool>
    15                         <integer value="995"/>
    16                         <integer value="965"/>
     15                        <integer value="1731"/>
    1716                </object>
    1817                <object class="NSArray" key="IBDocument.PluginDependencies">
     
    424423                        </object>
    425424                        <object class="NSCustomView" id="179482273">
    426                                 <reference key="NSNextResponder"/>
     425                                <nil key="NSNextResponder"/>
    427426                                <int key="NSvFlags">258</int>
    428427                                <object class="NSMutableArray" key="NSSubviews">
     
    837836                                                                                </object>
    838837                                                                                <int key="NSTVFlags">6</int>
    839                                                                                 <string key="NSMaxSize">{503, 1e+07}</string>
     838                                                                                <string key="NSMaxSize">{509, 1e+07}</string>
    840839                                                                                <string key="NSMinize">{87, 0}</string>
    841840                                                                                <nil key="NSDelegate"/>
     
    885884                                </object>
    886885                                <string key="NSFrameSize">{350, 210}</string>
    887                                 <reference key="NSSuperview"/>
    888886                                <object class="NSMutableString" key="NSClassName">
    889887                                        <characters key="NS.bytes">NSView</characters>
     
    892890                        </object>
    893891                        <object class="NSCustomView" id="717510682">
    894                                 <reference key="NSNextResponder"/>
     892                                <nil key="NSNextResponder"/>
    895893                                <int key="NSvFlags">258</int>
    896894                                <object class="NSMutableArray" key="NSSubviews">
     
    15701568                                </object>
    15711569                                <string key="NSFrameSize">{360, 290}</string>
    1572                                 <reference key="NSSuperview"/>
    15731570                                <object class="NSMutableString" key="NSClassName">
    15741571                                        <characters key="NS.bytes">NSView</characters>
     
    15771574                        </object>
    15781575                        <object class="NSCustomView" id="296911506">
    1579                                 <nil key="NSNextResponder"/>
     1576                                <reference key="NSNextResponder"/>
    15801577                                <int key="NSvFlags">274</int>
    15811578                                <object class="NSMutableArray" key="NSSubviews">
     
    16041601                                                                                <object class="NSMutableArray" key="NSTableColumns">
    16051602                                                                                        <bool key="EncodedWithXMLCoder">YES</bool>
    1606                                                                                         <object class="NSTableColumn" id="78872301">
    1607                                                                                                 <string key="NSIdentifier">Icon</string>
    1608                                                                                                 <double key="NSWidth">17</double>
    1609                                                                                                 <double key="NSMinWidth">17</double>
    1610                                                                                                 <double key="NSMaxWidth">17</double>
    1611                                                                                                 <object class="NSTableHeaderCell" key="NSHeaderCell">
    1612                                                                                                         <int key="NSCellFlags">75628096</int>
    1613                                                                                                         <int key="NSCellFlags2">2048</int>
    1614                                                                                                         <string key="NSContents"/>
    1615                                                                                                         <reference key="NSSupport" ref="26"/>
    1616                                                                                                         <object class="NSColor" key="NSBackgroundColor" id="665452585">
    1617                                                                                                                 <int key="NSColorSpace">6</int>
    1618                                                                                                                 <string key="NSCatalogName">System</string>
    1619                                                                                                                 <string key="NSColorName">headerColor</string>
    1620                                                                                                                 <reference key="NSColor" ref="880039277"/>
    1621                                                                                                         </object>
    1622                                                                                                         <object class="NSColor" key="NSTextColor" id="390741217">
    1623                                                                                                                 <int key="NSColorSpace">6</int>
    1624                                                                                                                 <string key="NSCatalogName">System</string>
    1625                                                                                                                 <string key="NSColorName">headerTextColor</string>
    1626                                                                                                                 <reference key="NSColor" ref="105940216"/>
    1627                                                                                                         </object>
    1628                                                                                                 </object>
    1629                                                                                                 <object class="NSImageCell" key="NSDataCell" id="477306431">
    1630                                                                                                         <int key="NSCellFlags">67239424</int>
    1631                                                                                                         <int key="NSCellFlags2">33554432</int>
    1632                                                                                                         <reference key="NSSupport" ref="737793924"/>
    1633                                                                                                         <int key="NSAlign">8</int>
    1634                                                                                                         <int key="NSScale">3</int>
    1635                                                                                                         <int key="NSStyle">0</int>
    1636                                                                                                         <bool key="NSAnimates">NO</bool>
    1637                                                                                                 </object>
    1638                                                                                                 <int key="NSResizingMask">3</int>
    1639                                                                                                 <bool key="NSIsResizeable">YES</bool>
    1640                                                                                                 <bool key="NSIsEditable">YES</bool>
    1641                                                                                                 <reference key="NSTableView" ref="423972458"/>
    1642                                                                                         </object>
    16431603                                                                                        <object class="NSTableColumn" id="874876446">
    1644                                                                                                 <string key="NSIdentifier">Address</string>
    1645                                                                                                 <double key="NSWidth">337</double>
     1604                                                                                                <string key="NSIdentifier">Tracker</string>
     1605                                                                                                <double key="NSWidth">357</double>
    16461606                                                                                                <double key="NSMinWidth">40</double>
    16471607                                                                                                <double key="NSMaxWidth">1000</double>
     
    16551615                                                                                                                <bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
    16561616                                                                                                        </object>
    1657                                                                                                         <reference key="NSTextColor" ref="390741217"/>
     1617                                                                                                        <object class="NSColor" key="NSTextColor" id="390741217">
     1618                                                                                                                <int key="NSColorSpace">6</int>
     1619                                                                                                                <string key="NSCatalogName">System</string>
     1620                                                                                                                <string key="NSColorName">headerTextColor</string>
     1621                                                                                                                <reference key="NSColor" ref="105940216"/>
     1622                                                                                                        </object>
    16581623                                                                                                </object>
    16591624                                                                                                <object class="NSTextFieldCell" key="NSDataCell" id="871658973">
     
    16931658                                                                                        </object>
    16941659                                                                                </object>
    1695                                                                                 <double key="NSRowHeight">14</double>
     1660                                                                                <double key="NSRowHeight">57</double>
    16961661                                                                                <int key="NSTvFlags">440401920</int>
    16971662                                                                                <reference key="NSDelegate"/>
     
    17401705                                                <reference key="NSHScroller" ref="265048045"/>
    17411706                                                <reference key="NSContentView" ref="198254095"/>
    1742                                                 <bytes key="NSScrollAmts">QSAAAEEgAABBgAAAQYAAAA</bytes>
     1707                                                <bytes key="NSScrollAmts">QSAAAEEgAABCbAAAQmwAAA</bytes>
    17431708                                        </object>
    17441709                                        <object class="NSSegmentedControl" id="899994514">
     
    17811746                                </object>
    17821747                                <string key="NSFrameSize">{382, 352}</string>
     1748                                <reference key="NSSuperview"/>
    17831749                                <object class="NSMutableString" key="NSClassName">
    17841750                                        <characters key="NS.bytes">NSView</characters>
     
    18321798                                                                                                        <string key="NSContents">IP Address</string>
    18331799                                                                                                        <reference key="NSSupport" ref="26"/>
    1834                                                                                                         <reference key="NSBackgroundColor" ref="665452585"/>
     1800                                                                                                        <object class="NSColor" key="NSBackgroundColor" id="665452585">
     1801                                                                                                                <int key="NSColorSpace">6</int>
     1802                                                                                                                <string key="NSCatalogName">System</string>
     1803                                                                                                                <string key="NSColorName">headerColor</string>
     1804                                                                                                                <reference key="NSColor" ref="880039277"/>
     1805                                                                                                        </object>
    18351806                                                                                                        <reference key="NSTextColor" ref="390741217"/>
    18361807                                                                                                </object>
     
    59615932                                                        <bool key="EncodedWithXMLCoder">YES</bool>
    59625933                                                        <reference ref="874876446"/>
    5963                                                         <reference ref="78872301"/>
    59645934                                                </object>
    59655935                                                <reference key="parent" ref="754568592"/>
     
    62116181                                                <reference key="object" ref="381060565"/>
    62126182                                                <reference key="parent" ref="93205077"/>
    6213                                         </object>
    6214                                         <object class="IBObjectRecord">
    6215                                                 <int key="objectID">1823</int>
    6216                                                 <reference key="object" ref="78872301"/>
    6217                                                 <object class="NSMutableArray" key="children">
    6218                                                         <bool key="EncodedWithXMLCoder">YES</bool>
    6219                                                         <reference ref="477306431"/>
    6220                                                 </object>
    6221                                                 <reference key="parent" ref="423972458"/>
    6222                                         </object>
    6223                                         <object class="IBObjectRecord">
    6224                                                 <int key="objectID">1825</int>
    6225                                                 <reference key="object" ref="477306431"/>
    6226                                                 <reference key="parent" ref="78872301"/>
    62276183                                        </object>
    62286184                                </object>
     
    65806536                                        <string>1817.IBPluginDependency</string>
    65816537                                        <string>1818.IBPluginDependency</string>
    6582                                         <string>1823.IBPluginDependency</string>
    6583                                         <string>1825.IBPluginDependency</string>
    65846538                                        <string>28.IBPluginDependency</string>
    65856539                                        <string>28.ImportedFromIB2</string>
     
    70216975                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    70226976                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    7023                                         <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    7024                                         <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    70256977                                        <integer value="1"/>
    70266978                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
Note: See TracChangeset for help on using the changeset viewer.