Ticket #2560: inactive.patch

File inactive.patch, 110.7 KB (added by livings124, 6 years ago)

first draft (libtransmission + Mac)

  • libtransmission/torrent.h

     
    107107tr_torrent*      tr_torrentNext( tr_session  * session,
    108108                                 tr_torrent  * current );
    109109
    110 void             tr_torrentCheckSeedRatio( tr_torrent * tor );
     110void             tr_torrentCheckSeedLimit( tr_torrent * tor );
    111111
    112112/** save a torrent's .resume file if it's changed since the last time it was saved */
    113113void             tr_torrentSave( tr_torrent * tor );
     
    229229    tr_torrent_ratio_limit_hit_func  * ratio_limit_hit_func;
    230230    void                             * ratio_limit_hit_func_user_data;
    231231
     232    tr_torrent_inactive_limit_hit_func  * inactive_limit_hit_func;
     233    void                                * inactive_limit_hit_func_user_data;
     234
    232235    tr_bool                    isRunning;
    233236    tr_bool                    isStopping;
    234237    tr_bool                    isDeleting;
     
    255258    double                     desiredRatio;
    256259    tr_ratiolimit              ratioLimitMode;
    257260
     261    uint64_t                   inactiveLimitMinutes;
     262    tr_inactvelimit            inactiveLimitMode;
     263
    258264    uint64_t                   preVerifyTotal;
    259265};
    260266
  • libtransmission/peer-mgr.c

     
    31653165    /* possibly stop torrents that have seeded enough */
    31663166    tor = NULL;
    31673167    while(( tor = tr_torrentNext( mgr->session, tor )))
    3168         tr_torrentCheckSeedRatio( tor );
     3168        tr_torrentCheckSeedLimit( tor );
    31693169
    31703170    /* run the completeness check for any torrents that need it */
    31713171    tor = NULL;
  • libtransmission/rpcimpl.c

     
    574574        tr_bencDictAddReal( d, key, st->pieceUploadSpeed_KBps );
    575575    else if( tr_streq( key, keylen, "recheckProgress" ) )
    576576        tr_bencDictAddReal( d, key, st->recheckProgress );
     577    else if( tr_streq( key, keylen, "seedInactiveLimit" ) )
     578        tr_bencDictAddInt( d, key, tr_torrentGetInactiveLimit( tor ) );
     579    else if( tr_streq( key, keylen, "seedInactiveMode" ) )
     580        tr_bencDictAddInt( d, key, tr_torrentGetInactiveMode( tor ) );
    577581    else if( tr_streq( key, keylen, "seedRatioLimit" ) )
    578582        tr_bencDictAddReal( d, key, tr_torrentGetRatioLimit( tor ) );
    579583    else if( tr_streq( key, keylen, "seedRatioMode" ) )
     
    10131017            tr_torrentSetSpeedLimit_KBps( tor, TR_UP, tmp );
    10141018        if( tr_bencDictFindBool( args_in, "uploadLimited", &boolVal ) )
    10151019            tr_torrentUseSpeedLimit( tor, TR_UP, boolVal );
     1020        if( tr_bencDictFindInt( args_in, "seedInactiveLimit", &tmp ) )
     1021            tr_torrentSetInactiveLimit( tor, tmp );
     1022        if( tr_bencDictFindInt( args_in, "seedInactiveMode", &tmp ) )
     1023            tr_torrentSetInactiveMode( tor, tmp );
    10161024        if( tr_bencDictFindReal( args_in, "seedRatioLimit", &d ) )
    10171025            tr_torrentSetRatioLimit( tor, d );
    10181026        if( tr_bencDictFindInt( args_in, "seedRatioMode", &tmp ) )
     
    14531461        tr_sessionSetRatioLimit( session, d );
    14541462    if( tr_bencDictFindBool( args_in, "seedRatioLimited", &boolVal ) )
    14551463        tr_sessionSetRatioLimited( session, boolVal );
     1464    if( tr_bencDictFindInt( args_in, TR_PREFS_KEY_INACTIVE_LIMIT, &i ) )
     1465        tr_sessionSetInactiveLimit( session, i );
     1466    if( tr_bencDictFindBool( args_in, TR_PREFS_KEY_INACTIVE_LIMIT_ENABLED, &boolVal ) )
     1467        tr_sessionSetInactivityLimited( session, boolVal );
    14561468    if( tr_bencDictFindBool( args_in, TR_PREFS_KEY_START, &boolVal ) )
    14571469        tr_sessionSetPaused( session, !boolVal );
    14581470    if( tr_bencDictFindStr( args_in, TR_PREFS_KEY_SCRIPT_TORRENT_DONE_FILENAME, &str ) )
     
    15671579    tr_bencDictAddInt ( d, "rpc-version-minimum", RPC_VERSION_MIN );
    15681580    tr_bencDictAddReal( d, "seedRatioLimit", tr_sessionGetRatioLimit( s ) );
    15691581    tr_bencDictAddBool( d, "seedRatioLimited", tr_sessionIsRatioLimited( s ) );
     1582    tr_bencDictAddInt ( d, TR_PREFS_KEY_INACTIVE_LIMIT, tr_sessionGetInactiveLimit( s ) );
     1583    tr_bencDictAddBool( d, TR_PREFS_KEY_INACTIVE_LIMIT_ENABLED, tr_sessionIsInactivityLimited( s ) );
    15701584    tr_bencDictAddBool( d, TR_PREFS_KEY_START, !tr_sessionGetPaused( s ) );
    15711585    tr_bencDictAddBool( d, TR_PREFS_KEY_TRASH_ORIGINAL, tr_sessionGetDeleteSource( s ) );
    15721586    tr_bencDictAddInt ( d, TR_PREFS_KEY_USPEED_KBps, tr_sessionGetSpeedLimit_KBps( s, TR_UP ) );
  • libtransmission/transmission.h

     
    170170#define TR_PREFS_KEY_LPD_ENABLED                   "lpd-enabled"
    171171#define TR_PREFS_KEY_DOWNLOAD_DIR                  "download-dir"
    172172#define TR_PREFS_KEY_ENCRYPTION                    "encryption"
     173#define TR_PREFS_KEY_INACTIVE_LIMIT                "inactive-limit"
     174#define TR_PREFS_KEY_INACTIVE_LIMIT_ENABLED        "inactive-limit-enabled"
    173175#define TR_PREFS_KEY_INCOMPLETE_DIR                "incomplete-dir"
    174176#define TR_PREFS_KEY_INCOMPLETE_DIR_ENABLED        "incomplete-dir-enabled"
    175177#define TR_PREFS_KEY_LAZY_BITFIELD                 "lazy-bitfield-enabled"
     
    723725void       tr_sessionSetRatioLimit    ( tr_session *, double desiredRatio );
    724726double     tr_sessionGetRatioLimit    ( const tr_session * );
    725727
     728void       tr_sessionSetInactivityLimited  ( tr_session *, tr_bool isLimited );
     729tr_bool    tr_sessionIsInactivityLimited   ( const tr_session * );
     730
     731void       tr_sessionSetInactiveLimit      ( tr_session *, uint64_t inactivityMinutes );
     732uint64_t   tr_sessionGetInactiveLimit      ( const tr_session * );
     733
    726734void       tr_sessionSetPeerLimit( tr_session *, uint16_t maxGlobalPeers );
    727735uint16_t   tr_sessionGetPeerLimit( const tr_session * );
    728736
     
    11591167
    11601168tr_bool       tr_torrentGetSeedRatio( const tr_torrent *, double * ratio );
    11611169
     1170
    11621171/****
     1172*****  Inactive Time Limits
     1173****/
     1174
     1175typedef enum
     1176{
     1177    TR_INACTIVELIMIT_GLOBAL    = 0, /* follow the global settings */
     1178    TR_INACTIVELIMIT_SINGLE    = 1, /* override the global settings, seeding until a certain inactive time */
     1179    TR_INACTIVELIMIT_UNLIMITED = 2  /* override the global settings, seeding regardless of activity */
     1180}
     1181tr_inactvelimit;
     1182
     1183void          tr_torrentSetInactiveMode( tr_torrent         * tor,
     1184                                         tr_inactvelimit      mode );
     1185
     1186tr_ratiolimit tr_torrentGetInactiveMode( const tr_torrent   * tor );
     1187
     1188void          tr_torrentSetInactiveLimit( tr_torrent        * tor,
     1189                                          uint64_t            inactiveMinutes );
     1190
     1191uint64_t      tr_torrentGetInactiveLimit( const tr_torrent  * tor );
     1192
     1193
     1194tr_bool       tr_torrentGetSeedInactive( const tr_torrent *, uint64_t * inactiveMinutes );
     1195
     1196/****
    11631197*****  Peer Limits
    11641198****/
    11651199
     
    12881322typedef void ( tr_torrent_ratio_limit_hit_func )( tr_torrent   * torrent,
    12891323                                                  void         * user_data );
    12901324
     1325typedef void ( tr_torrent_inactive_limit_hit_func )( tr_torrent   * torrent,
     1326                                                    void         * user_data );
     1327
     1328
    12911329/**
    12921330 * Register to be notified whenever a torrent's "completeness"
    12931331 * changes.  This will be called, for example, when a torrent
     
    13371375
    13381376void tr_torrentClearRatioLimitHitCallback( tr_torrent * torrent );
    13391377
     1378/**
     1379 * Register to be notified whenever a torrent's inactivity limit
     1380 * has been hit. This will be called when the seeding torrent's
     1381 * idle time has met or exceeded the designated inactivity limit.
     1382 *
     1383 * Has the same restrictions as tr_torrentSetCompletenessCallback
     1384 */
     1385void tr_torrentSetInactivityLimitHitCallback(
     1386     tr_torrent                          * torrent,
     1387     tr_torrent_inactive_limit_hit_func  func,
     1388     void                                * user_data );
    13401389
     1390void tr_torrentClearInactiveLimitHitCallback( tr_torrent * torrent );
     1391
     1392
    13411393/**
    13421394 * MANUAL ANNOUNCE
    13431395 *
     
    18461898    /** Number of seconds since the last activity (or since started).
    18471899        -1 if activity is not seeding or downloading. */
    18481900    int    idleSecs;
    1849    
     1901
    18501902    /** A torrent is considered finished if it has met its seed ratio.
    18511903        As a result, only paused torrents can be finished. */
    18521904    tr_bool   finished;
  • libtransmission/resume.c

     
    4444#define KEY_SPEEDLIMIT_UP       "speed-limit-up"
    4545#define KEY_SPEEDLIMIT_DOWN     "speed-limit-down"
    4646#define KEY_RATIOLIMIT          "ratio-limit"
     47#define KEY_INACTIVELIMIT       "inactivity-limit"
    4748#define KEY_UPLOADED            "uploaded"
    4849
    4950#define KEY_SPEED_KiBps            "speed"
     
    5657#define KEY_SPEEDLIMIT_UP_MODE     "up-mode"
    5758#define KEY_RATIOLIMIT_RATIO       "ratio-limit"
    5859#define KEY_RATIOLIMIT_MODE        "ratio-mode"
     60#define KEY_INACTIVELIMIT_MINS     "inactivity-limit"
     61#define KEY_INACTIVELIMIT_MODE     "inactivity-mode"
    5962
    6063#define KEY_PROGRESS_MTIMES    "mtimes"
    6164#define KEY_PROGRESS_BITFIELD  "bitfield"
     
    291294}
    292295
    293296static void
     297saveInactivityLimits( tr_benc * dict, const tr_torrent * tor )
     298{
     299    tr_benc * d = tr_bencDictAddDict( dict, KEY_INACTIVELIMIT, 2 );
     300    tr_bencDictAddInt( d, KEY_INACTIVELIMIT_MINS, tr_torrentGetInactiveLimit( tor ) );
     301    tr_bencDictAddInt( d, KEY_INACTIVELIMIT_MODE, tr_torrentGetInactiveMode( tor ) );
     302}
     303
     304static void
    294305loadSingleSpeedLimit( tr_benc * d, tr_direction dir, tr_torrent * tor )
    295306{
    296307    int64_t i;
     
    374385
    375386    return ret;
    376387}
     388
     389static uint64_t
     390loadInactivityLimits( tr_benc *    dict,
     391                      tr_torrent * tor )
     392{
     393    uint64_t  ret = 0;
     394    tr_benc * d;
     395
     396    if( tr_bencDictFindDict( dict, KEY_INACTIVELIMIT, &d ) )
     397    {
     398        int64_t i;
     399        int64_t imin;
     400        if( tr_bencDictFindInt( d, KEY_INACTIVELIMIT_MINS, &imin ) )
     401            tr_torrentSetInactiveLimit( tor, imin );
     402        if( tr_bencDictFindInt( d, KEY_INACTIVELIMIT_MODE, &i ) )
     403            tr_torrentSetInactiveMode( tor, i );
     404      ret = TR_FR_INACTIVELIMIT;
     405    }
     406
     407    return ret;
     408}
    377409/***
    378410****
    379411***/
     
    538570    }
    539571    saveSpeedLimits( &top, tor );
    540572    saveRatioLimits( &top, tor );
     573    saveInactivityLimits( &top, tor );
    541574
    542575    filename = getResumeFilename( tor );
    543576    if(( err = tr_bencToFile( &top, TR_FMT_BENC, filename )))
     
    673706    if( fieldsToLoad & TR_FR_RATIOLIMIT )
    674707        fieldsLoaded |= loadRatioLimits( &top, tor );
    675708
     709    if( fieldsToLoad & TR_FR_INACTIVELIMIT )
     710        fieldsLoaded |= loadInactivityLimits( &top, tor );
     711
    676712    /* loading the resume file triggers of a lot of changes,
    677713     * but none of them needs to trigger a re-saving of the
    678714     * same resume information... */
  • libtransmission/resume.h

     
    3535    TR_FR_ADDED_DATE          = ( 1 << 13 ),
    3636    TR_FR_DONE_DATE           = ( 1 << 14 ),
    3737    TR_FR_ACTIVITY_DATE       = ( 1 << 15 ),
    38     TR_FR_RATIOLIMIT          = ( 1 << 16 )
     38    TR_FR_RATIOLIMIT          = ( 1 << 16 ),
     39    TR_FR_INACTIVELIMIT          = ( 1 << 17 )
    3940};
    4041
    4142/**
  • libtransmission/completion.h

     
    107107{
    108108    const double ratio = tr_getRatio( cp->sizeNow, tr_cpSizeWhenDone( cp ) );
    109109    const int iratio = (int)ratio;
    110     return ((iratio == TR_RATIO_NA) || (iratio == TR_RATIO_INF)) ? 0.0f : ratio;
     110    return ((iratio == TR_RATIO_NA) || (iratio == TR_RATIO_INF)) ? 0.0 : ratio;
    111111}
    112112
    113113/**
  • libtransmission/session.c

     
    255255    tr_bencDictAddInt ( d, TR_PREFS_KEY_DSPEED_KBps,              100 );
    256256    tr_bencDictAddBool( d, TR_PREFS_KEY_DSPEED_ENABLED,           FALSE );
    257257    tr_bencDictAddInt ( d, TR_PREFS_KEY_ENCRYPTION,               TR_DEFAULT_ENCRYPTION );
     258    tr_bencDictAddReal( d, TR_PREFS_KEY_INACTIVE_LIMIT,           30 );
     259    tr_bencDictAddBool( d, TR_PREFS_KEY_INACTIVE_LIMIT_ENABLED,   FALSE );
    258260    tr_bencDictAddStr ( d, TR_PREFS_KEY_INCOMPLETE_DIR,           tr_getDefaultDownloadDir( ) );
    259261    tr_bencDictAddBool( d, TR_PREFS_KEY_INCOMPLETE_DIR_ENABLED,   FALSE );
    260262    tr_bencDictAddBool( d, TR_PREFS_KEY_LAZY_BITFIELD,            TRUE );
     
    321323    tr_bencDictAddInt ( d, TR_PREFS_KEY_DSPEED_KBps,              tr_sessionGetSpeedLimit_KBps( s, TR_DOWN ) );
    322324    tr_bencDictAddBool( d, TR_PREFS_KEY_DSPEED_ENABLED,           tr_sessionIsSpeedLimited( s, TR_DOWN ) );
    323325    tr_bencDictAddInt ( d, TR_PREFS_KEY_ENCRYPTION,               s->encryptionMode );
     326    tr_bencDictAddInt(  d, TR_PREFS_KEY_INACTIVE_LIMIT,           s->inactiveLimitMinutes );
     327    tr_bencDictAddBool( d, TR_PREFS_KEY_INACTIVE_LIMIT_ENABLED,   s->isInactivityLimited );
    324328    tr_bencDictAddStr ( d, TR_PREFS_KEY_INCOMPLETE_DIR,           tr_sessionGetIncompleteDir( s ) );
    325329    tr_bencDictAddBool( d, TR_PREFS_KEY_INCOMPLETE_DIR_ENABLED,   tr_sessionIsIncompleteDirEnabled( s ) );
    326330    tr_bencDictAddBool( d, TR_PREFS_KEY_LAZY_BITFIELD,            s->useLazyBitfield );
     
    797801    if( tr_bencDictFindBool( settings, TR_PREFS_KEY_RATIO_ENABLED, &boolVal ) )
    798802        tr_sessionSetRatioLimited( session, boolVal );
    799803
     804    if( tr_bencDictFindInt( settings, TR_PREFS_KEY_INACTIVE_LIMIT, &i ) )
     805        tr_sessionSetInactiveLimit( session, i );
     806    if( tr_bencDictFindBool( settings, TR_PREFS_KEY_INACTIVE_LIMIT_ENABLED, &boolVal ) )
     807        tr_sessionSetInactivityLimited( session, boolVal );
     808
    800809    /**
    801810    ***  Turtle Mode
    802811    **/
     
    11001109
    11011110/***
    11021111****
     1112***/
     1113
     1114void
     1115tr_sessionSetInactivityLimited( tr_session * session, tr_bool isLimited )
     1116{
     1117    assert( tr_isSession( session ) );
     1118
     1119    session->isInactivityLimited = isLimited;
     1120}
     1121
     1122void
     1123tr_sessionSetInactiveLimit( tr_session * session, uint64_t inactivityMinutes )
     1124{
     1125    assert( tr_isSession( session ) );
     1126
     1127    session->inactiveLimitMinutes = inactivityMinutes;
     1128}
     1129
     1130tr_bool
     1131tr_sessionIsInactivityLimited( const tr_session  * session )
     1132{
     1133    assert( tr_isSession( session ) );
     1134
     1135    return session->isInactivityLimited;
     1136}
     1137
     1138uint64_t
     1139tr_sessionGetInactiveLimit( const tr_session * session )
     1140{
     1141    assert( tr_isSession( session ) );
     1142
     1143    return session->inactiveLimitMinutes;
     1144}
     1145
     1146/***
     1147****
    11031148****  SPEED LIMITS
    11041149****
    11051150***/
  • libtransmission/session.h

     
    9595    tr_bool                      useLazyBitfield;
    9696    tr_bool                      isIncompleteFileNamingEnabled;
    9797    tr_bool                      isRatioLimited;
     98    tr_bool                      isInactivityLimited;
    9899    tr_bool                      isIncompleteDirEnabled;
    99100    tr_bool                      pauseAddedTorrent;
    100101    tr_bool                      deleteSourceTorrent;
     
    184185    struct tr_bandwidth        * bandwidth;
    185186
    186187    double                       desiredRatio;
     188   
     189    uint64_t                     inactiveLimitMinutes;
    187190
    188191    struct tr_bindinfo         * public_ipv4;
    189192    struct tr_bindinfo         * public_ipv6;
  • libtransmission/torrent.c

     
    124124    return NULL;
    125125}
    126126
     127tr_bool
     128tr_torrentIsPieceTransferAllowed( const tr_torrent  * tor,
     129                                  tr_direction        direction )
     130{
     131    int limit;
     132    tr_bool allowed = TRUE;
     133
     134    if( tr_torrentUsesSpeedLimit( tor, direction ) )
     135        if( tr_torrentGetSpeedLimit_Bps( tor, direction ) <= 0 )
     136            allowed = FALSE;
     137
     138    if( tr_torrentUsesSessionLimits( tor ) )
     139        if( tr_sessionGetActiveSpeedLimit_Bps( tor->session, direction, &limit ) )
     140            if( limit <= 0 )
     141                allowed = FALSE;
     142
     143    return allowed;
     144}
     145
    127146/***
    128147****  PER-TORRENT UL / DL SPEEDS
    129148***/
     
    247266}
    248267
    249268tr_bool
    250 tr_torrentIsPieceTransferAllowed( const tr_torrent  * tor,
    251                                   tr_direction        direction )
    252 {
    253     int limit;
    254     tr_bool allowed = TRUE;
    255 
    256     if( tr_torrentUsesSpeedLimit( tor, direction ) )
    257         if( tr_torrentGetSpeedLimit_Bps( tor, direction ) <= 0 )
    258             allowed = FALSE;
    259 
    260     if( tr_torrentUsesSessionLimits( tor ) )
    261         if( tr_sessionGetActiveSpeedLimit_Bps( tor->session, direction, &limit ) )
    262             if( limit <= 0 )
    263                 allowed = FALSE;
    264 
    265     return allowed;
    266 }
    267 
    268 tr_bool
    269269tr_torrentGetSeedRatio( const tr_torrent * tor, double * ratio )
    270270{
    271271    tr_bool isLimited;
     
    323323    return tr_torrentGetSeedRatioBytes( tor, &bytesLeft, NULL ) && !bytesLeft;
    324324}
    325325
     326/***
     327****
     328***/
     329
    326330void
    327 tr_torrentCheckSeedRatio( tr_torrent * tor )
     331tr_torrentSetInactiveMode( tr_torrent *  tor, tr_inactvelimit mode )
    328332{
    329333    assert( tr_isTorrent( tor ) );
     334    assert( mode==TR_INACTIVELIMIT_GLOBAL || mode==TR_INACTIVELIMIT_SINGLE || mode==TR_INACTIVELIMIT_UNLIMITED  );
    330335
     336    if( mode != tor->inactiveLimitMode )
     337    {
     338        tor->inactiveLimitMode = mode;
     339
     340        tr_torrentSetDirty( tor );
     341    }
     342}
     343
     344tr_ratiolimit
     345tr_torrentGetInactiveMode( const tr_torrent * tor )
     346{
     347    assert( tr_isTorrent( tor ) );
     348
     349    return tor->inactiveLimitMode;
     350}
     351
     352void
     353tr_torrentSetInactiveLimit( tr_torrent * tor, uint64_t inactiveMinutes)
     354{
     355    assert( tr_isTorrent( tor ) );
     356
     357    if( inactiveMinutes > 0 )
     358    {
     359        tor->inactiveLimitMinutes = inactiveMinutes;
     360
     361        tr_torrentSetDirty( tor );
     362    }
     363}
     364
     365uint64_t
     366tr_torrentGetInactiveLimit( const tr_torrent * tor )
     367{
     368    assert( tr_isTorrent( tor ) );
     369
     370    return tor->inactiveLimitMinutes;
     371}
     372
     373tr_bool
     374tr_torrentGetSeedInactive( const tr_torrent * tor, uint64_t * inactiveMinutes )
     375{
     376    tr_bool isLimited;
     377
     378    switch( tr_torrentGetInactiveMode( tor ) )
     379    {
     380        case TR_INACTIVELIMIT_SINGLE:
     381            isLimited = TRUE;
     382            if( inactiveMinutes )
     383                *inactiveMinutes = tr_torrentGetInactiveLimit( tor );
     384            break;
     385
     386        case TR_INACTIVELIMIT_GLOBAL:
     387            isLimited = tr_sessionIsInactivityLimited( tor->session );
     388            if( isLimited && inactiveMinutes )
     389                *inactiveMinutes = tr_sessionGetInactiveLimit( tor->session );
     390            break;
     391
     392        default: /* TR_INACTIVELIMIT_UNLIMITED */
     393            isLimited = FALSE;
     394            break;
     395    }
     396
     397    return isLimited;
     398}
     399
     400static tr_bool
     401tr_torrentIsSeedInactiveLimitDone( tr_torrent * tor )
     402{
     403    uint64_t inactiveMinutes;
     404#warning can this use the idleSecs from tr_stat?
     405    return tr_torrentGetSeedInactive( tor, &inactiveMinutes )
     406        && difftime(tr_time(), MAX(tor->startDate, tor->activityDate)) >= inactiveMinutes * 60;
     407}
     408
     409/***
     410****
     411***/
     412
     413void
     414tr_torrentCheckSeedLimit( tr_torrent * tor )
     415{
     416    assert( tr_isTorrent( tor ) );
     417
     418    if( !tor->isRunning )
     419        return;
     420
    331421    /* if we're seeding and reach our seed ratio limit, stop the torrent */
    332     if( tor->isRunning && tr_torrentIsSeedRatioDone( tor ) )
     422    if( tr_torrentIsSeedRatioDone( tor ) )
    333423    {
    334424        tr_torinf( tor, "Seed ratio reached; pausing torrent" );
    335425
     
    339429        if( tor->ratio_limit_hit_func != NULL )
    340430            tor->ratio_limit_hit_func( tor, tor->ratio_limit_hit_func_user_data );
    341431    }
     432    /* if we're seeding and reach our inactiviy limit, stop the torrent */
     433    else if( tr_torrentIsSeedInactiveLimitDone( tor ) )
     434    {
     435        tr_torinf( tor, "Seeding inactivity limit reached; pausing torrent" );
     436
     437        tor->isStopping = TRUE;
     438
     439        /* maybe notify the client */
     440        if( tor->inactive_limit_hit_func != NULL )
     441            tor->inactive_limit_hit_func( tor, tor->inactive_limit_hit_func_user_data );
     442    }
    342443}
    343444
    344 
    345445/***
    346446****
    347447***/
     
    708808        tr_torrentSetRatioLimit( tor, tr_sessionGetRatioLimit( tor->session ) );
    709809    }
    710810
     811    if( !( loaded & TR_FR_INACTIVELIMIT ) )
    711812    {
     813        tr_torrentSetInactiveMode( tor, TR_INACTIVELIMIT_GLOBAL );
     814        tr_torrentSetInactiveLimit( tor, tr_sessionGetInactiveLimit( tor->session ) );
     815    }
     816
     817    {
    712818        tr_torrent * it = NULL;
    713819        tr_torrent * last = NULL;
    714820        while( ( it = tr_torrentNext( session, it ) ) )
     
    10021108    s->startDate    = tor->startDate;
    10031109
    10041110    if (s->activity == TR_STATUS_DOWNLOAD || s->activity == TR_STATUS_SEED)
    1005         s->idleSecs = difftime(tr_time(), tor->anyDate);
     1111        s->idleSecs = difftime(tr_time(), MAX(s->startDate, s->activityDate));
    10061112    else
    10071113        s->idleSecs = -1;
    10081114
     
    10351141    s->ratio = tr_getRatio( s->uploadedEver,
    10361142                            s->downloadedEver ? s->downloadedEver : s->haveValid );
    10371143
     1144    #warning account for inactivity limit?
    10381145    seedRatioApplies = tr_torrentGetSeedRatioBytes( tor, &seedRatioBytesLeft,
    10391146                                                         &seedRatioBytesGoal );
    10401147
     
    10621169            break;
    10631170
    10641171        case TR_STATUS_SEED: {
     1172            #warning do something for inactivity?
    10651173            if( !seedRatioApplies )
    10661174                s->eta = TR_ETA_NOT_AVAIL;
    10671175            else {
     
    10841192            break;
    10851193    }
    10861194
     1195    #warning (maybe) do something for inactivity?
    10871196    /* s->haveValid is here to make sure a torrent isn't marked 'finished'
    10881197     * when the user hits "uncheck all" prior to starting the torrent... */
    10891198    s->finished = seedRatioApplies && !seedRatioBytesLeft && s->haveValid;
     
    16731782    tr_torrentSetRatioLimitHitCallback( torrent, NULL, NULL );
    16741783}
    16751784
     1785void
     1786tr_torrentSetInactiveLimitHitCallback( tr_torrent                        * tor,
     1787                                       tr_torrent_inactive_limit_hit_func  func,
     1788                                       void                              * user_data )
     1789{
     1790    assert( tr_isTorrent( tor ) );
     1791
     1792    tor->inactive_limit_hit_func = func;
     1793    tor->inactive_limit_hit_func_user_data = user_data;
     1794}
     1795
     1796void
     1797tr_torrentClearInactivityLimitHitCallback( tr_torrent * torrent )
     1798{
     1799    tr_torrentSetInactiveLimitHitCallback( torrent, NULL, NULL );
     1800}
     1801
    16761802static void
    16771803tr_setenv( const char * name, const char * value, tr_bool override )
    16781804{
  • macosx/en.lproj/InfoOptionsView.xib

     
    22<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
    33        <data>
    44                <int key="IBDocument.SystemTarget">1060</int>
    5                 <string key="IBDocument.SystemVersion">10C540</string>
    6                 <string key="IBDocument.InterfaceBuilderVersion">740</string>
    7                 <string key="IBDocument.AppKitVersion">1038.25</string>
    8                 <string key="IBDocument.HIToolboxVersion">458.00</string>
     5                <string key="IBDocument.SystemVersion">10F569</string>
     6                <string key="IBDocument.InterfaceBuilderVersion">762</string>
     7                <string key="IBDocument.AppKitVersion">1038.29</string>
     8                <string key="IBDocument.HIToolboxVersion">461.00</string>
    99                <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
    1010                        <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
    11                         <string key="NS.object.0">740</string>
     11                        <string key="NS.object.0">762</string>
    1212                </object>
    1313                <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
    1414                        <bool key="EncodedWithXMLCoder">YES</bool>
     
    4343                                <int key="NSvFlags">258</int>
    4444                                <object class="NSMutableArray" key="NSSubviews">
    4545                                        <bool key="EncodedWithXMLCoder">YES</bool>
    46                                         <object class="NSTextField" id="787858145">
     46                                        <object class="NSTextField" id="317277208">
    4747                                                <reference key="NSNextResponder" ref="617828785"/>
    4848                                                <int key="NSvFlags">268</int>
    49                                                 <string key="NSFrame">{{207, 54}, {45, 20}}</string>
     49                                                <string key="NSFrame">{{218, 54}, {45, 20}}</string>
    5050                                                <reference key="NSSuperview" ref="617828785"/>
    5151                                                <bool key="NSEnabled">YES</bool>
    52                                                 <object class="NSTextFieldCell" key="NSCell" id="156964320">
     52                                                <object class="NSTextFieldCell" key="NSCell" id="517007757">
    5353                                                        <int key="NSCellFlags">-1804468671</int>
    5454                                                        <int key="NSCellFlags2">272761856</int>
    5555                                                        <object class="NSFont" key="NSSupport" id="26">
     
    5757                                                                <double key="NSSize">11</double>
    5858                                                                <int key="NSfFlags">3100</int>
    5959                                                        </object>
    60                                                         <object class="NSNumberFormatter" key="NSFormatter" id="180699713">
     60                                                        <object class="NSNumberFormatter" key="NSFormatter" id="285060614">
    6161                                                                <object class="NSMutableDictionary" key="NS.attributes">
    6262                                                                        <bool key="EncodedWithXMLCoder">YES</bool>
    6363                                                                        <object class="NSArray" key="dict.sortedKeys">
    6464                                                                                <bool key="EncodedWithXMLCoder">YES</bool>
    6565                                                                                <string>allowsFloats</string>
    6666                                                                                <string>formatterBehavior</string>
    67                                                                                 <string>locale</string>
     67                                                                                <string>lenient</string>
    6868                                                                                <string>maximum</string>
    69                                                                                 <string>maximumFractionDigits</string>
    7069                                                                                <string>minimum</string>
    71                                                                                 <string>minimumFractionDigits</string>
    72                                                                                 <string>minimumIntegerDigits</string>
     70                                                                                <string>negativeInfinitySymbol</string>
     71                                                                                <string>nilSymbol</string>
    7372                                                                                <string>numberStyle</string>
     73                                                                                <string>positiveInfinitySymbol</string>
    7474                                                                        </object>
    7575                                                                        <object class="NSMutableArray" key="dict.values">
    7676                                                                                <bool key="EncodedWithXMLCoder">YES</bool>
    77                                                                                 <integer value="1"/>
     77                                                                                <boolean value="YES"/>
    7878                                                                                <integer value="1040"/>
    79                                                                                 <object class="NSLocale" id="979917424">
    80                                                                                         <string key="NS.identifier"/>
    81                                                                                 </object>
     79                                                                                <boolean value="NO"/>
    8280                                                                                <real value="10000"/>
    83                                                                                 <integer value="2"/>
     81                                                                                <real value="1"/>
     82                                                                                <string>-∞</string>
     83                                                                                <string/>
    8484                                                                                <integer value="0"/>
    85                                                                                 <integer value="2"/>
    86                                                                                 <integer value="1"/>
    87                                                                                 <integer value="0"/>
     85                                                                                <string>+∞</string>
    8886                                                                        </object>
    8987                                                                </object>
    90                                                                 <string key="NS.positiveformat">#0.00</string>
    91                                                                 <string key="NS.negativeformat">#0.00</string>
     88                                                                <string key="NS.positiveformat">#</string>
     89                                                                <string key="NS.negativeformat">#</string>
    9290                                                                <nil key="NS.positiveattrs"/>
    9391                                                                <nil key="NS.negativeattrs"/>
    9492                                                                <nil key="NS.zero"/>
    95                                                                 <nil key="NS.nil"/>
     93                                                                <object class="NSAttributedString" key="NS.nil">
     94                                                                        <string key="NSString"/>
     95                                                                </object>
    9696                                                                <object class="NSAttributedString" key="NS.nan">
    9797                                                                        <string key="NSString">NaN</string>
    98                                                                         <object class="NSDictionary" key="NSAttributes" id="136839943">
     98                                                                        <object class="NSDictionary" key="NSAttributes" id="1014964092">
    9999                                                                                <bool key="EncodedWithXMLCoder">YES</bool>
    100100                                                                                <reference key="dict.sortedKeys" ref="0"/>
    101101                                                                                <object class="NSMutableArray" key="dict.values">
     
    103103                                                                                </object>
    104104                                                                        </object>
    105105                                                                </object>
    106                                                                 <integer value="0" key="NS.min"/>
     106                                                                <real value="1" key="NS.min"/>
    107107                                                                <real value="10000" key="NS.max"/>
    108108                                                                <object class="NSDecimalNumberHandler" key="NS.rounding">
    109109                                                                        <int key="NS.roundingmode">3</int>
     
    114114                                                                <string key="NS.decimal">.</string>
    115115                                                                <string key="NS.thousand">,</string>
    116116                                                                <bool key="NS.hasthousands">NO</bool>
    117                                                                 <bool key="NS.localized">NO</bool>
     117                                                                <bool key="NS.localized">YES</bool>
    118118                                                                <bool key="NS.allowsfloats">YES</bool>
    119119                                                        </object>
    120                                                         <reference key="NSControlView" ref="787858145"/>
     120                                                        <reference key="NSControlView" ref="317277208"/>
    121121                                                        <bool key="NSDrawsBackground">YES</bool>
    122122                                                        <object class="NSColor" key="NSBackgroundColor" id="246996512">
    123123                                                                <int key="NSColorSpace">6</int>
     
    139139                                                        </object>
    140140                                                </object>
    141141                                        </object>
    142                                         <object class="NSTextField" id="275413408">
     142                                        <object class="NSPopUpButton" id="110760088">
    143143                                                <reference key="NSNextResponder" ref="617828785"/>
    144144                                                <int key="NSvFlags">268</int>
    145                                                 <string key="NSFrame">{{9, 73}, {49, 17}}</string>
     145                                                <string key="NSFrame">{{69, 52}, {144, 22}}</string>
    146146                                                <reference key="NSSuperview" ref="617828785"/>
    147147                                                <bool key="NSEnabled">YES</bool>
    148                                                 <object class="NSTextFieldCell" key="NSCell" id="960257683">
     148                                                <object class="NSPopUpButtonCell" key="NSCell" id="669284794">
     149                                                        <int key="NSCellFlags">-2076049856</int>
     150                                                        <int key="NSCellFlags2">133120</int>
     151                                                        <reference key="NSSupport" ref="26"/>
     152                                                        <reference key="NSControlView" ref="110760088"/>
     153                                                        <int key="NSButtonFlags">-2038284033</int>
     154                                                        <int key="NSButtonFlags2">1</int>
     155                                                        <object class="NSFont" key="NSAlternateImage" id="292875478">
     156                                                                <string key="NSName">LucidaGrande</string>
     157                                                                <double key="NSSize">11</double>
     158                                                                <int key="NSfFlags">16</int>
     159                                                        </object>
     160                                                        <string key="NSAlternateContents"/>
     161                                                        <object class="NSMutableString" key="NSKeyEquivalent">
     162                                                                <characters key="NS.bytes"/>
     163                                                        </object>
     164                                                        <int key="NSPeriodicDelay">400</int>
     165                                                        <int key="NSPeriodicInterval">75</int>
     166                                                        <object class="NSMenuItem" key="NSMenuItem" id="424536198">
     167                                                                <reference key="NSMenu" ref="719019509"/>
     168                                                                <string key="NSTitle">Stop When Inactive</string>
     169                                                                <string key="NSKeyEquiv"/>
     170                                                                <int key="NSKeyEquivModMask">1048576</int>
     171                                                                <int key="NSMnemonicLoc">2147483647</int>
     172                                                                <int key="NSState">1</int>
     173                                                                <object class="NSCustomResource" key="NSOnImage" id="662512792">
     174                                                                        <string key="NSClassName">NSImage</string>
     175                                                                        <string key="NSResourceName">NSMenuCheckmark</string>
     176                                                                </object>
     177                                                                <object class="NSCustomResource" key="NSMixedImage" id="999867276">
     178                                                                        <string key="NSClassName">NSImage</string>
     179                                                                        <string key="NSResourceName">NSMenuMixedState</string>
     180                                                                </object>
     181                                                                <string key="NSAction">_popUpItemAction:</string>
     182                                                                <reference key="NSTarget" ref="669284794"/>
     183                                                        </object>
     184                                                        <bool key="NSMenuItemRespectAlignment">YES</bool>
     185                                                        <object class="NSMenu" key="NSMenu" id="719019509">
     186                                                                <object class="NSMutableString" key="NSTitle">
     187                                                                        <characters key="NS.bytes">OtherViews</characters>
     188                                                                </object>
     189                                                                <object class="NSMutableArray" key="NSMenuItems">
     190                                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     191                                                                        <object class="NSMenuItem" id="271264514">
     192                                                                                <reference key="NSMenu" ref="719019509"/>
     193                                                                                <string key="NSTitle">Global Setting</string>
     194                                                                                <string key="NSKeyEquiv"/>
     195                                                                                <int key="NSKeyEquivModMask">1048576</int>
     196                                                                                <int key="NSMnemonicLoc">2147483647</int>
     197                                                                                <reference key="NSOnImage" ref="662512792"/>
     198                                                                                <reference key="NSMixedImage" ref="999867276"/>
     199                                                                                <string key="NSAction">_popUpItemAction:</string>
     200                                                                                <reference key="NSTarget" ref="669284794"/>
     201                                                                        </object>
     202                                                                        <object class="NSMenuItem" id="408933788">
     203                                                                                <reference key="NSMenu" ref="719019509"/>
     204                                                                                <string key="NSTitle">Unlimited</string>
     205                                                                                <string key="NSKeyEquiv"/>
     206                                                                                <int key="NSKeyEquivModMask">1048576</int>
     207                                                                                <int key="NSMnemonicLoc">2147483647</int>
     208                                                                                <reference key="NSOnImage" ref="662512792"/>
     209                                                                                <reference key="NSMixedImage" ref="999867276"/>
     210                                                                                <string key="NSAction">_popUpItemAction:</string>
     211                                                                                <reference key="NSTarget" ref="669284794"/>
     212                                                                        </object>
     213                                                                        <reference ref="424536198"/>
     214                                                                </object>
     215                                                        </object>
     216                                                        <int key="NSSelectedIndex">2</int>
     217                                                        <int key="NSPreferredEdge">3</int>
     218                                                        <bool key="NSUsesItemFromMenu">YES</bool>
     219                                                        <bool key="NSAltersState">YES</bool>
     220                                                        <int key="NSArrowPosition">1</int>
     221                                                </object>
     222                                        </object>
     223                                        <object class="NSTextField" id="919278636">
     224                                                <reference key="NSNextResponder" ref="617828785"/>
     225                                                <int key="NSvFlags">268</int>
     226                                                <string key="NSFrame">{{11, 57}, {56, 14}}</string>
     227                                                <reference key="NSSuperview" ref="617828785"/>
     228                                                <bool key="NSEnabled">YES</bool>
     229                                                <object class="NSTextFieldCell" key="NSCell" id="563562657">
    149230                                                        <int key="NSCellFlags">67239424</int>
    150231                                                        <int key="NSCellFlags2">272629760</int>
    151                                                         <string key="NSContents">Seeding</string>
    152                                                         <object class="NSFont" key="NSSupport" id="27">
    153                                                                 <string key="NSName">LucidaGrande-Bold</string>
    154                                                                 <double key="NSSize">11</double>
    155                                                                 <int key="NSfFlags">3357</int>
    156                                                         </object>
    157                                                         <reference key="NSControlView" ref="275413408"/>
     232                                                        <string key="NSContents">Inactivity:</string>
     233                                                        <reference key="NSSupport" ref="26"/>
     234                                                        <reference key="NSControlView" ref="919278636"/>
    158235                                                        <object class="NSColor" key="NSBackgroundColor" id="874092629">
    159236                                                                <int key="NSColorSpace">6</int>
    160237                                                                <string key="NSCatalogName">System</string>
     
    172249                                                        </object>
    173250                                                </object>
    174251                                        </object>
     252                                        <object class="NSTextField" id="787858145">
     253                                                <reference key="NSNextResponder" ref="617828785"/>
     254                                                <int key="NSvFlags">268</int>
     255                                                <string key="NSFrame">{{218, 76}, {45, 20}}</string>
     256                                                <reference key="NSSuperview" ref="617828785"/>
     257                                                <bool key="NSEnabled">YES</bool>
     258                                                <object class="NSTextFieldCell" key="NSCell" id="156964320">
     259                                                        <int key="NSCellFlags">-1804468671</int>
     260                                                        <int key="NSCellFlags2">272761856</int>
     261                                                        <reference key="NSSupport" ref="26"/>
     262                                                        <object class="NSNumberFormatter" key="NSFormatter" id="180699713">
     263                                                                <object class="NSMutableDictionary" key="NS.attributes">
     264                                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     265                                                                        <object class="NSArray" key="dict.sortedKeys">
     266                                                                                <bool key="EncodedWithXMLCoder">YES</bool>
     267                                                                                <string>allowsFloats</string>
     268                                                                                <string>formatterBehavior</string>
     269                                                                                <string>locale</string>
     270                                                                                <string>maximum</string>
     271                                                                                <string>maximumFractionDigits</string>
     272                                                                                <string>minimum</string>
     273                                                                                <string>minimumFractionDigits</string>
     274                                                                                <string>minimumIntegerDigits</string>
     275                                                                                <string>numberStyle</string>
     276                                                                        </object>
     277                                                                        <object class="NSMutableArray" key="dict.values">
     278                                                                                <bool key="EncodedWithXMLCoder">YES</bool>
     279                                                                                <integer value="1"/>
     280                                                                                <integer value="1040"/>
     281                                                                                <object class="NSLocale" id="979917424">
     282                                                                                        <string key="NS.identifier"/>
     283                                                                                </object>
     284                                                                                <real value="10000"/>
     285                                                                                <integer value="2"/>
     286                                                                                <integer value="0"/>
     287                                                                                <integer value="2"/>
     288                                                                                <integer value="1"/>
     289                                                                                <integer value="0"/>
     290                                                                        </object>
     291                                                                </object>
     292                                                                <string key="NS.positiveformat">#0.00</string>
     293                                                                <string key="NS.negativeformat">#0.00</string>
     294                                                                <nil key="NS.positiveattrs"/>
     295                                                                <nil key="NS.negativeattrs"/>
     296                                                                <nil key="NS.zero"/>
     297                                                                <nil key="NS.nil"/>
     298                                                                <object class="NSAttributedString" key="NS.nan">
     299                                                                        <string key="NSString">NaN</string>
     300                                                                        <reference key="NSAttributes" ref="1014964092"/>
     301                                                                </object>
     302                                                                <integer value="0" key="NS.min"/>
     303                                                                <real value="10000" key="NS.max"/>
     304                                                                <object class="NSDecimalNumberHandler" key="NS.rounding">
     305                                                                        <int key="NS.roundingmode">3</int>
     306                                                                        <bool key="NS.raise.overflow">YES</bool>
     307                                                                        <bool key="NS.raise.underflow">YES</bool>
     308                                                                        <bool key="NS.raise.dividebyzero">YES</bool>
     309                                                                </object>
     310                                                                <string key="NS.decimal">.</string>
     311                                                                <string key="NS.thousand">,</string>
     312                                                                <bool key="NS.hasthousands">NO</bool>
     313                                                                <bool key="NS.localized">NO</bool>
     314                                                                <bool key="NS.allowsfloats">YES</bool>
     315                                                        </object>
     316                                                        <reference key="NSControlView" ref="787858145"/>
     317                                                        <bool key="NSDrawsBackground">YES</bool>
     318                                                        <reference key="NSBackgroundColor" ref="246996512"/>
     319                                                        <reference key="NSTextColor" ref="648134242"/>
     320                                                </object>
     321                                        </object>
     322                                        <object class="NSTextField" id="275413408">
     323                                                <reference key="NSNextResponder" ref="617828785"/>
     324                                                <int key="NSvFlags">268</int>
     325                                                <string key="NSFrame">{{9, 95}, {88, 17}}</string>
     326                                                <reference key="NSSuperview" ref="617828785"/>
     327                                                <bool key="NSEnabled">YES</bool>
     328                                                <object class="NSTextFieldCell" key="NSCell" id="960257683">
     329                                                        <int key="NSCellFlags">67239424</int>
     330                                                        <int key="NSCellFlags2">272629760</int>
     331                                                        <string key="NSContents">Seeding Limits</string>
     332                                                        <object class="NSFont" key="NSSupport" id="27">
     333                                                                <string key="NSName">LucidaGrande-Bold</string>
     334                                                                <double key="NSSize">11</double>
     335                                                                <int key="NSfFlags">3357</int>
     336                                                        </object>
     337                                                        <reference key="NSControlView" ref="275413408"/>
     338                                                        <reference key="NSBackgroundColor" ref="874092629"/>
     339                                                        <reference key="NSTextColor" ref="90083712"/>
     340                                                </object>
     341                                        </object>
    175342                                        <object class="NSTextField" id="1004759797">
    176343                                                <reference key="NSNextResponder" ref="617828785"/>
    177344                                                <int key="NSvFlags">268</int>
    178                                                 <string key="NSFrame">{{9, 159}, {117, 14}}</string>
     345                                                <string key="NSFrame">{{9, 181}, {117, 14}}</string>
    179346                                                <reference key="NSSuperview" ref="617828785"/>
    180347                                                <bool key="NSEnabled">YES</bool>
    181348                                                <object class="NSTextFieldCell" key="NSCell" id="51582947">
     
    191358                                        <object class="NSTextField" id="234468111">
    192359                                                <reference key="NSNextResponder" ref="617828785"/>
    193360                                                <int key="NSvFlags">268</int>
    194                                                 <string key="NSFrame">{{9, 197}, {46, 17}}</string>
     361                                                <string key="NSFrame">{{9, 219}, {46, 17}}</string>
    195362                                                <reference key="NSSuperview" ref="617828785"/>
    196363                                                <bool key="NSEnabled">YES</bool>
    197364                                                <object class="NSTextFieldCell" key="NSCell" id="235794164">
     
    207374                                        <object class="NSTextField" id="38678337">
    208375                                                <reference key="NSNextResponder" ref="617828785"/>
    209376                                                <int key="NSvFlags">268</int>
    210                                                 <string key="NSFrame">{{123, 115}, {35, 20}}</string>
     377                                                <string key="NSFrame">{{123, 137}, {35, 20}}</string>
    211378                                                <reference key="NSSuperview" ref="617828785"/>
    212379                                                <bool key="NSEnabled">YES</bool>
    213380                                                <object class="NSTextFieldCell" key="NSCell" id="886515737">
     
    244411                                                                <nil key="NS.nil"/>
    245412                                                                <object class="NSAttributedString" key="NS.nan">
    246413                                                                        <string key="NSString">NaN</string>
    247                                                                         <reference key="NSAttributes" ref="136839943"/>
     414                                                                        <reference key="NSAttributes" ref="1014964092"/>
    248415                                                                </object>
    249416                                                                <integer value="0" key="NS.min"/>
    250417                                                                <real value="10000" key="NS.max"/>
     
    269436                                        <object class="NSTextField" id="531478243">
    270437                                                <reference key="NSNextResponder" ref="617828785"/>
    271438                                                <int key="NSvFlags">268</int>
    272                                                 <string key="NSFrame">{{163, 118}, {29, 14}}</string>
     439                                                <string key="NSFrame">{{163, 140}, {29, 14}}</string>
    273440                                                <reference key="NSSuperview" ref="617828785"/>
    274441                                                <bool key="NSEnabled">YES</bool>
    275442                                                <object class="NSTextFieldCell" key="NSCell" id="619733085">
     
    285452                                        <object class="NSTextField" id="520423397">
    286453                                                <reference key="NSNextResponder" ref="617828785"/>
    287454                                                <int key="NSvFlags">268</int>
    288                                                 <string key="NSFrame">{{123, 137}, {35, 20}}</string>
     455                                                <string key="NSFrame">{{123, 159}, {35, 20}}</string>
    289456                                                <reference key="NSSuperview" ref="617828785"/>
    290457                                                <bool key="NSEnabled">YES</bool>
    291458                                                <object class="NSTextFieldCell" key="NSCell" id="668169900">
     
    322489                                                                <nil key="NS.nil"/>
    323490                                                                <object class="NSAttributedString" key="NS.nan">
    324491                                                                        <string key="NSString">NaN</string>
    325                                                                         <reference key="NSAttributes" ref="136839943"/>
     492                                                                        <reference key="NSAttributes" ref="1014964092"/>
    326493                                                                </object>
    327494                                                                <integer value="0" key="NS.min"/>
    328495                                                                <real value="10000" key="NS.max"/>
     
    344511                                                        <reference key="NSTextColor" ref="648134242"/>
    345512                                                </object>
    346513                                        </object>
     514                                        <object class="NSTextField" id="706967535">
     515                                                <reference key="NSNextResponder" ref="617828785"/>
     516                                                <int key="NSvFlags">268</int>
     517                                                <string key="NSFrame">{{268, 57}, {47, 14}}</string>
     518                                                <reference key="NSSuperview" ref="617828785"/>
     519                                                <bool key="NSEnabled">YES</bool>
     520                                                <object class="NSTextFieldCell" key="NSCell" id="38211108">
     521                                                        <int key="NSCellFlags">67239424</int>
     522                                                        <int key="NSCellFlags2">272629760</int>
     523                                                        <string key="NSContents">minutes</string>
     524                                                        <reference key="NSSupport" ref="26"/>
     525                                                        <reference key="NSControlView" ref="706967535"/>
     526                                                        <reference key="NSBackgroundColor" ref="874092629"/>
     527                                                        <reference key="NSTextColor" ref="90083712"/>
     528                                                </object>
     529                                        </object>
    347530                                        <object class="NSTextField" id="1027547097">
    348531                                                <reference key="NSNextResponder" ref="617828785"/>
    349532                                                <int key="NSvFlags">268</int>
    350                                                 <string key="NSFrame">{{163, 140}, {29, 14}}</string>
     533                                                <string key="NSFrame">{{163, 162}, {29, 14}}</string>
    351534                                                <reference key="NSSuperview" ref="617828785"/>
    352535                                                <bool key="NSEnabled">YES</bool>
    353536                                                <object class="NSTextFieldCell" key="NSCell" id="1042346107">
     
    363546                                        <object class="NSPopUpButton" id="705594185">
    364547                                                <reference key="NSNextResponder" ref="617828785"/>
    365548                                                <int key="NSvFlags">268</int>
    366                                                 <string key="NSFrame">{{89, 52}, {116, 22}}</string>
     549                                                <string key="NSFrame">{{69, 74}, {144, 22}}</string>
    367550                                                <reference key="NSSuperview" ref="617828785"/>
    368551                                                <bool key="NSEnabled">YES</bool>
    369552                                                <object class="NSPopUpButtonCell" key="NSCell" id="931579513">
     
    373556                                                        <reference key="NSControlView" ref="705594185"/>
    374557                                                        <int key="NSButtonFlags">-2038284033</int>
    375558                                                        <int key="NSButtonFlags2">1</int>
    376                                                         <object class="NSFont" key="NSAlternateImage">
    377                                                                 <string key="NSName">LucidaGrande</string>
    378                                                                 <double key="NSSize">11</double>
    379                                                                 <int key="NSfFlags">16</int>
    380                                                         </object>
     559                                                        <reference key="NSAlternateImage" ref="292875478"/>
    381560                                                        <string key="NSAlternateContents"/>
    382561                                                        <object class="NSMutableString" key="NSKeyEquivalent">
    383562                                                                <characters key="NS.bytes"/>
     
    391570                                                                <int key="NSKeyEquivModMask">1048576</int>
    392571                                                                <int key="NSMnemonicLoc">2147483647</int>
    393572                                                                <int key="NSState">1</int>
    394                                                                 <object class="NSCustomResource" key="NSOnImage" id="632268411">
    395                                                                         <string key="NSClassName">NSImage</string>
    396                                                                         <string key="NSResourceName">NSMenuCheckmark</string>
    397                                                                 </object>
    398                                                                 <object class="NSCustomResource" key="NSMixedImage" id="917913453">
    399                                                                         <string key="NSClassName">NSImage</string>
    400                                                                         <string key="NSResourceName">NSMenuMixedState</string>
    401                                                                 </object>
     573                                                                <reference key="NSOnImage" ref="662512792"/>
     574                                                                <reference key="NSMixedImage" ref="999867276"/>
    402575                                                                <string key="NSAction">_popUpItemAction:</string>
    403576                                                                <reference key="NSTarget" ref="931579513"/>
    404577                                                        </object>
     
    412585                                                                        <reference ref="759858272"/>
    413586                                                                        <object class="NSMenuItem" id="100083644">
    414587                                                                                <reference key="NSMenu" ref="57997422"/>
    415                                                                                 <string key="NSTitle">Seed Forever</string>
     588                                                                                <string key="NSTitle">Unlimited</string>
    416589                                                                                <string key="NSKeyEquiv"/>
    417590                                                                                <int key="NSKeyEquivModMask">1048576</int>
    418591                                                                                <int key="NSMnemonicLoc">2147483647</int>
    419                                                                                 <reference key="NSOnImage" ref="632268411"/>
    420                                                                                 <reference key="NSMixedImage" ref="917913453"/>
     592                                                                                <reference key="NSOnImage" ref="662512792"/>
     593                                                                                <reference key="NSMixedImage" ref="999867276"/>
    421594                                                                                <string key="NSAction">_popUpItemAction:</string>
    422595                                                                                <reference key="NSTarget" ref="931579513"/>
    423596                                                                        </object>
     
    427600                                                                                <string key="NSKeyEquiv"/>
    428601                                                                                <int key="NSKeyEquivModMask">1048576</int>
    429602                                                                                <int key="NSMnemonicLoc">2147483647</int>
    430                                                                                 <reference key="NSOnImage" ref="632268411"/>
    431                                                                                 <reference key="NSMixedImage" ref="917913453"/>
     603                                                                                <reference key="NSOnImage" ref="662512792"/>
     604                                                                                <reference key="NSMixedImage" ref="999867276"/>
    432605                                                                                <string key="NSAction">_popUpItemAction:</string>
    433606                                                                                <reference key="NSTarget" ref="931579513"/>
    434607                                                                        </object>
     
    443616                                        <object class="NSTextField" id="457156870">
    444617                                                <reference key="NSNextResponder" ref="617828785"/>
    445618                                                <int key="NSvFlags">268</int>
    446                                                 <string key="NSFrame">{{10, 57}, {77, 14}}</string>
     619                                                <string key="NSFrame">{{10, 79}, {35, 14}}</string>
    447620                                                <reference key="NSSuperview" ref="617828785"/>
    448621                                                <bool key="NSEnabled">YES</bool>
    449622                                                <object class="NSTextFieldCell" key="NSCell" id="1061208496">
    450623                                                        <int key="NSCellFlags">67239424</int>
    451624                                                        <int key="NSCellFlags2">272629760</int>
    452                                                         <string key="NSContents">Stop Seeding:</string>
     625                                                        <string key="NSContents">Ratio:</string>
    453626                                                        <reference key="NSSupport" ref="26"/>
    454627                                                        <reference key="NSControlView" ref="457156870"/>
    455628                                                        <reference key="NSBackgroundColor" ref="874092629"/>
     
    459632                                        <object class="NSTextField" id="340525598">
    460633                                                <reference key="NSNextResponder" ref="617828785"/>
    461634                                                <int key="NSvFlags">268</int>
    462                                                 <string key="NSFrame">{{9, 182}, {95, 14}}</string>
     635                                                <string key="NSFrame">{{9, 204}, {95, 14}}</string>
    463636                                                <reference key="NSSuperview" ref="617828785"/>
    464637                                                <bool key="NSEnabled">YES</bool>
    465638                                                <object class="NSTextFieldCell" key="NSCell" id="780052505">
     
    542715                                                                <nil key="NS.nil"/>
    543716                                                                <object class="NSAttributedString" key="NS.nan">
    544717                                                                        <string key="NSString">NaN</string>
    545                                                                         <reference key="NSAttributes" ref="136839943"/>
     718                                                                        <reference key="NSAttributes" ref="1014964092"/>
    546719                                                                </object>
    547720                                                                <integer value="1" key="NS.min"/>
    548721                                                                <real value="3000" key="NS.max"/>
     
    583756                                        <object class="NSButton" id="166572511">
    584757                                                <reference key="NSNextResponder" ref="617828785"/>
    585758                                                <int key="NSvFlags">268</int>
    586                                                 <string key="NSFrame">{{11, 116}, {90, 18}}</string>
     759                                                <string key="NSFrame">{{11, 138}, {90, 18}}</string>
    587760                                                <reference key="NSSuperview" ref="617828785"/>
    588761                                                <bool key="NSEnabled">YES</bool>
    589762                                                <object class="NSButtonCell" key="NSCell" id="482789677">
     
    610783                                        <object class="NSButton" id="900455097">
    611784                                                <reference key="NSNextResponder" ref="617828785"/>
    612785                                                <int key="NSvFlags">268</int>
    613                                                 <string key="NSFrame">{{11, 96}, {230, 18}}</string>
     786                                                <string key="NSFrame">{{11, 118}, {230, 18}}</string>
    614787                                                <reference key="NSSuperview" ref="617828785"/>
    615788                                                <bool key="NSEnabled">YES</bool>
    616789                                                <object class="NSButtonCell" key="NSCell" id="582573900">
     
    632805                                        <object class="NSButton" id="614569420">
    633806                                                <reference key="NSNextResponder" ref="617828785"/>
    634807                                                <int key="NSvFlags">268</int>
    635                                                 <string key="NSFrame">{{11, 138}, {106, 18}}</string>
     808                                                <string key="NSFrame">{{11, 160}, {106, 18}}</string>
    636809                                                <reference key="NSSuperview" ref="617828785"/>
    637810                                                <bool key="NSEnabled">YES</bool>
    638811                                                <object class="NSButtonCell" key="NSCell" id="818727845">
     
    654827                                        <object class="NSPopUpButton" id="529271757">
    655828                                                <reference key="NSNextResponder" ref="617828785"/>
    656829                                                <int key="NSvFlags">268</int>
    657                                                 <string key="NSFrame">{{106, 177}, {101, 22}}</string>
     830                                                <string key="NSFrame">{{106, 199}, {101, 22}}</string>
    658831                                                <reference key="NSSuperview" ref="617828785"/>
    659832                                                <bool key="NSEnabled">YES</bool>
    660833                                                <object class="NSPopUpButtonCell" key="NSCell" id="545585394">
     
    679852                                                                        <string key="NSClassName">NSImage</string>
    680853                                                                        <string key="NSResourceName">PriorityNormal</string>
    681854                                                                </object>
    682                                                                 <reference key="NSOnImage" ref="632268411"/>
    683                                                                 <reference key="NSMixedImage" ref="917913453"/>
     855                                                                <reference key="NSOnImage" ref="662512792"/>
     856                                                                <reference key="NSMixedImage" ref="999867276"/>
    684857                                                                <string key="NSAction">_popUpItemAction:</string>
    685858                                                                <int key="NSTag">1</int>
    686859                                                                <reference key="NSTarget" ref="545585394"/>
     
    700873                                                                                        <string key="NSClassName">NSImage</string>
    701874                                                                                        <string key="NSResourceName">PriorityHigh</string>
    702875                                                                                </object>
    703                                                                                 <reference key="NSOnImage" ref="632268411"/>
    704                                                                                 <reference key="NSMixedImage" ref="917913453"/>
     876                                                                                <reference key="NSOnImage" ref="662512792"/>
     877                                                                                <reference key="NSMixedImage" ref="999867276"/>
    705878                                                                                <string key="NSAction">_popUpItemAction:</string>
    706879                                                                                <reference key="NSTarget" ref="545585394"/>
    707880                                                                        </object>
     
    716889                                                                                        <string key="NSClassName">NSImage</string>
    717890                                                                                        <string key="NSResourceName">PriorityLow</string>
    718891                                                                                </object>
    719                                                                                 <reference key="NSOnImage" ref="632268411"/>
    720                                                                                 <reference key="NSMixedImage" ref="917913453"/>
     892                                                                                <reference key="NSOnImage" ref="662512792"/>
     893                                                                                <reference key="NSMixedImage" ref="999867276"/>
    721894                                                                                <string key="NSAction">_popUpItemAction:</string>
    722895                                                                                <int key="NSTag">2</int>
    723896                                                                                <reference key="NSTarget" ref="545585394"/>
     
    732905                                                </object>
    733906                                        </object>
    734907                                </object>
    735                                 <string key="NSFrameSize">{351, 219}</string>
     908                                <string key="NSFrameSize">{351, 241}</string>
    736909                                <reference key="NSSuperview"/>
    737910                                <object class="NSMutableString" key="NSClassName">
    738911                                        <characters key="NS.bytes">NSView</characters>
     
    9511124                                        </object>
    9521125                                        <int key="connectionID">78</int>
    9531126                                </object>
     1127                                <object class="IBConnectionRecord">
     1128                                        <object class="IBOutletConnection" key="connection">
     1129                                                <string key="label">delegate</string>
     1130                                                <reference key="source" ref="317277208"/>
     1131                                                <reference key="destination" ref="1001"/>
     1132                                        </object>
     1133                                        <int key="connectionID">90</int>
     1134                                </object>
     1135                                <object class="IBConnectionRecord">
     1136                                        <object class="IBOutletConnection" key="connection">
     1137                                                <string key="label">fInactivePopUp</string>
     1138                                                <reference key="source" ref="1001"/>
     1139                                                <reference key="destination" ref="110760088"/>
     1140                                        </object>
     1141                                        <int key="connectionID">93</int>
     1142                                </object>
     1143                                <object class="IBConnectionRecord">
     1144                                        <object class="IBOutletConnection" key="connection">
     1145                                                <string key="label">fInactiveLimitField</string>
     1146                                                <reference key="source" ref="1001"/>
     1147                                                <reference key="destination" ref="317277208"/>
     1148                                        </object>
     1149                                        <int key="connectionID">94</int>
     1150                                </object>
     1151                                <object class="IBConnectionRecord">
     1152                                        <object class="IBActionConnection" key="connection">
     1153                                                <string key="label">setInactiveLimit:</string>
     1154                                                <reference key="source" ref="1001"/>
     1155                                                <reference key="destination" ref="317277208"/>
     1156                                        </object>
     1157                                        <int key="connectionID">95</int>
     1158                                </object>
     1159                                <object class="IBConnectionRecord">
     1160                                        <object class="IBActionConnection" key="connection">
     1161                                                <string key="label">setInactiveSetting:</string>
     1162                                                <reference key="source" ref="1001"/>
     1163                                                <reference key="destination" ref="110760088"/>
     1164                                        </object>
     1165                                        <int key="connectionID">96</int>
     1166                                </object>
     1167                                <object class="IBConnectionRecord">
     1168                                        <object class="IBOutletConnection" key="connection">
     1169                                                <string key="label">fInactiveLimitLabel</string>
     1170                                                <reference key="source" ref="1001"/>
     1171                                                <reference key="destination" ref="706967535"/>
     1172                                        </object>
     1173                                        <int key="connectionID">101</int>
     1174                                </object>
    9541175                        </object>
    9551176                        <object class="IBMutableOrderedSet" key="objectRecords">
    9561177                                <object class="NSArray" key="orderedObjects">
     
    10031224                                                        <reference ref="38678337"/>
    10041225                                                        <reference ref="1004759797"/>
    10051226                                                        <reference ref="275413408"/>
     1227                                                        <reference ref="919278636"/>
     1228                                                        <reference ref="110760088"/>
     1229                                                        <reference ref="317277208"/>
     1230                                                        <reference ref="706967535"/>
    10061231                                                </object>
    10071232                                                <reference key="parent" ref="0"/>
    10081233                                                <string key="objectName">Options</string>
     
    13691594                                                <reference key="object" ref="884480943"/>
    13701595                                                <reference key="parent" ref="355652245"/>
    13711596                                        </object>
     1597                                        <object class="IBObjectRecord">
     1598                                                <int key="objectID">79</int>
     1599                                                <reference key="object" ref="919278636"/>
     1600                                                <object class="NSMutableArray" key="children">
     1601                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     1602                                                        <reference ref="563562657"/>
     1603                                                </object>
     1604                                                <reference key="parent" ref="617828785"/>
     1605                                        </object>
     1606                                        <object class="IBObjectRecord">
     1607                                                <int key="objectID">80</int>
     1608                                                <reference key="object" ref="110760088"/>
     1609                                                <object class="NSMutableArray" key="children">
     1610                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     1611                                                        <reference ref="669284794"/>
     1612                                                </object>
     1613                                                <reference key="parent" ref="617828785"/>
     1614                                        </object>
     1615                                        <object class="IBObjectRecord">
     1616                                                <int key="objectID">81</int>
     1617                                                <reference key="object" ref="317277208"/>
     1618                                                <object class="NSMutableArray" key="children">
     1619                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     1620                                                        <reference ref="517007757"/>
     1621                                                </object>
     1622                                                <reference key="parent" ref="617828785"/>
     1623                                        </object>
     1624                                        <object class="IBObjectRecord">
     1625                                                <int key="objectID">82</int>
     1626                                                <reference key="object" ref="517007757"/>
     1627                                                <object class="NSMutableArray" key="children">
     1628                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     1629                                                        <reference ref="285060614"/>
     1630                                                </object>
     1631                                                <reference key="parent" ref="317277208"/>
     1632                                        </object>
     1633                                        <object class="IBObjectRecord">
     1634                                                <int key="objectID">83</int>
     1635                                                <reference key="object" ref="285060614"/>
     1636                                                <reference key="parent" ref="517007757"/>
     1637                                        </object>
     1638                                        <object class="IBObjectRecord">
     1639                                                <int key="objectID">84</int>
     1640                                                <reference key="object" ref="669284794"/>
     1641                                                <object class="NSMutableArray" key="children">
     1642                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     1643                                                        <reference ref="719019509"/>
     1644                                                </object>
     1645                                                <reference key="parent" ref="110760088"/>
     1646                                        </object>
     1647                                        <object class="IBObjectRecord">
     1648                                                <int key="objectID">85</int>
     1649                                                <reference key="object" ref="719019509"/>
     1650                                                <object class="NSMutableArray" key="children">
     1651                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     1652                                                        <reference ref="424536198"/>
     1653                                                        <reference ref="271264514"/>
     1654                                                        <reference ref="408933788"/>
     1655                                                </object>
     1656                                                <reference key="parent" ref="669284794"/>
     1657                                        </object>
     1658                                        <object class="IBObjectRecord">
     1659                                                <int key="objectID">86</int>
     1660                                                <reference key="object" ref="424536198"/>
     1661                                                <reference key="parent" ref="719019509"/>
     1662                                        </object>
     1663                                        <object class="IBObjectRecord">
     1664                                                <int key="objectID">87</int>
     1665                                                <reference key="object" ref="271264514"/>
     1666                                                <reference key="parent" ref="719019509"/>
     1667                                        </object>
     1668                                        <object class="IBObjectRecord">
     1669                                                <int key="objectID">88</int>
     1670                                                <reference key="object" ref="408933788"/>
     1671                                                <reference key="parent" ref="719019509"/>
     1672                                        </object>
     1673                                        <object class="IBObjectRecord">
     1674                                                <int key="objectID">89</int>
     1675                                                <reference key="object" ref="563562657"/>
     1676                                                <reference key="parent" ref="919278636"/>
     1677                                        </object>
     1678                                        <object class="IBObjectRecord">
     1679                                                <int key="objectID">97</int>
     1680                                                <reference key="object" ref="706967535"/>
     1681                                                <object class="NSMutableArray" key="children">
     1682                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     1683                                                        <reference ref="38211108"/>
     1684                                                </object>
     1685                                                <reference key="parent" ref="617828785"/>
     1686                                        </object>
     1687                                        <object class="IBObjectRecord">
     1688                                                <int key="objectID">98</int>
     1689                                                <reference key="object" ref="38211108"/>
     1690                                                <reference key="parent" ref="706967535"/>
     1691                                        </object>
    13721692                                </object>
    13731693                        </object>
    13741694                        <object class="NSMutableDictionary" key="flattenedProperties">
     
    14551775                                        <string>52.IBPluginDependency</string>
    14561776                                        <string>6.IBPluginDependency</string>
    14571777                                        <string>7.IBPluginDependency</string>
     1778                                        <string>79.IBPluginDependency</string>
     1779                                        <string>79.ImportedFromIB2</string>
    14581780                                        <string>8.IBPluginDependency</string>
     1781                                        <string>80.IBPluginDependency</string>
     1782                                        <string>80.ImportedFromIB2</string>
     1783                                        <string>81.IBPluginDependency</string>
     1784                                        <string>81.ImportedFromIB2</string>
     1785                                        <string>82.IBPluginDependency</string>
     1786                                        <string>83.IBNumberFormatterBehaviorMetadataKey</string>
     1787                                        <string>83.IBNumberFormatterLocalizesFormatMetadataKey</string>
     1788                                        <string>83.IBPluginDependency</string>
     1789                                        <string>84.IBPluginDependency</string>
     1790                                        <string>85.IBEditorWindowLastContentRect</string>
     1791                                        <string>85.IBPluginDependency</string>
     1792                                        <string>85.ImportedFromIB2</string>
     1793                                        <string>86.IBPluginDependency</string>
     1794                                        <string>86.ImportedFromIB2</string>
     1795                                        <string>87.IBPluginDependency</string>
     1796                                        <string>87.ImportedFromIB2</string>
     1797                                        <string>88.IBPluginDependency</string>
     1798                                        <string>88.ImportedFromIB2</string>
     1799                                        <string>89.IBPluginDependency</string>
    14591800                                        <string>9.IBPluginDependency</string>
    14601801                                        <string>9.ImportedFromIB2</string>
     1802                                        <string>97.IBPluginDependency</string>
     1803                                        <string>97.ImportedFromIB2</string>
     1804                                        <string>98.IBPluginDependency</string>
    14611805                                </object>
    14621806                                <object class="NSMutableArray" key="dict.values">
    14631807                                        <bool key="EncodedWithXMLCoder">YES</bool>
     
    14851829                                        <integer value="1"/>
    14861830                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    14871831                                        <integer value="1"/>
    1488                                         <string>{{256, 611}, {351, 219}}</string>
     1832                                        <string>{{256, 589}, {351, 241}}</string>
    14891833                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    14901834                                        <integer value="1"/>
    14911835                                        <string>{{519, 803}, {351, 160}}</string>
     
    15151859                                        <boolean value="YES"/>
    15161860                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    15171861                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    1518                                         <string>{{334, 634}, {138, 54}}</string>
     1862                                        <string>{{314, 631}, {143, 54}}</string>
    15191863                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    15201864                                        <integer value="1"/>
    15211865                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     
    15421886                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    15431887                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    15441888                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     1889                                        <integer value="1"/>
    15451890                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     1891                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    15461892                                        <integer value="1"/>
     1893                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     1894                                        <integer value="1"/>
     1895                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     1896                                        <integer value="1041"/>
     1897                                        <boolean value="YES"/>
     1898                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     1899                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     1900                                        <string>{{314, 609}, {161, 54}}</string>
     1901                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     1902                                        <integer value="1"/>
     1903                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     1904                                        <integer value="1"/>
     1905                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     1906                                        <integer value="1"/>
     1907                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     1908                                        <integer value="1"/>
     1909                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     1910                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     1911                                        <integer value="1"/>
     1912                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     1913                                        <integer value="1"/>
     1914                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    15471915                                </object>
    15481916                        </object>
    15491917                        <object class="NSMutableDictionary" key="unlocalizedProperties">
     
    15621930                                </object>
    15631931                        </object>
    15641932                        <nil key="sourceID"/>
    1565                         <int key="maxID">78</int>
     1933                        <int key="maxID">101</int>
    15661934                </object>
    15671935                <object class="IBClassDescriber" key="IBDocument.Classes">
    15681936                        <object class="NSMutableArray" key="referencedPartialClassDescriptions">
     
    15821950                                                <bool key="EncodedWithXMLCoder">YES</bool>
    15831951                                                <object class="NSArray" key="dict.sortedKeys">
    15841952                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     1953                                                        <string>setInactiveLimit:</string>
     1954                                                        <string>setInactiveSetting:</string>
    15851955                                                        <string>setPeersConnectLimit:</string>
    15861956                                                        <string>setPriority:</string>
    15871957                                                        <string>setRatioLimit:</string>
     
    15991969                                                        <string>id</string>
    16001970                                                        <string>id</string>
    16011971                                                        <string>id</string>
     1972                                                        <string>id</string>
     1973                                                        <string>id</string>
    16021974                                                </object>
    16031975                                        </object>
    16041976                                        <object class="NSMutableDictionary" key="outlets">
     
    16091981                                                        <string>fDownloadLimitField</string>
    16101982                                                        <string>fDownloadLimitLabel</string>
    16111983                                                        <string>fGlobalLimitCheck</string>
     1984                                                        <string>fInactiveLimitField</string>
     1985                                                        <string>fInactiveLimitLabel</string>
     1986                                                        <string>fInactivePopUp</string>
    16121987                                                        <string>fPeersConnectField</string>
    1613                                                         <string>fPeersConnectLabel</string>
    16141988                                                        <string>fPriorityPopUp</string>
    16151989                                                        <string>fRatioLimitField</string>
    16161990                                                        <string>fRatioPopUp</string>
     
    16292003                                                        <string>NSPopUpButton</string>
    16302004                                                        <string>NSTextField</string>
    16312005                                                        <string>NSPopUpButton</string>
     2006                                                        <string>NSTextField</string>
     2007                                                        <string>NSPopUpButton</string>
    16322008                                                        <string>NSButton</string>
    16332009                                                        <string>NSTextField</string>
    16342010                                                        <string>NSTextField</string>
     
    22062582                        </object>
    22072583                </object>
    22082584                <int key="IBDocument.localizationMode">0</int>
     2585                <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
    22092586                <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
    22102587                        <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
    22112588                        <integer value="1060" key="NS.object.0"/>
     
    22172594                <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
    22182595                <string key="IBDocument.LastKnownRelativeProjectPath">../../Transmission.xcodeproj</string>
    22192596                <int key="IBDocument.defaultPropertyAccessControl">3</int>
     2597                <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
     2598                        <bool key="EncodedWithXMLCoder">YES</bool>
     2599                        <object class="NSArray" key="dict.sortedKeys">
     2600                                <bool key="EncodedWithXMLCoder">YES</bool>
     2601                                <string>NSMenuCheckmark</string>
     2602                                <string>NSMenuMixedState</string>
     2603                                <string>NSSwitch</string>
     2604                                <string>PriorityHigh</string>
     2605                                <string>PriorityLow</string>
     2606                                <string>PriorityNormal</string>
     2607                        </object>
     2608                        <object class="NSMutableArray" key="dict.values">
     2609                                <bool key="EncodedWithXMLCoder">YES</bool>
     2610                                <string>{9, 8}</string>
     2611                                <string>{7, 2}</string>
     2612                                <string>{15, 15}</string>
     2613                                <string>{14, 14}</string>
     2614                                <string>{14, 14}</string>
     2615                                <string>{14, 14}</string>
     2616                        </object>
     2617                </object>
    22202618        </data>
    22212619</archive>
  • macosx/en.lproj/PrefsWindow.xib

     
    22<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
    33        <data>
    44                <int key="IBDocument.SystemTarget">1050</int>
    5                 <string key="IBDocument.SystemVersion">10D573</string>
     5                <string key="IBDocument.SystemVersion">10F569</string>
    66                <string key="IBDocument.InterfaceBuilderVersion">762</string>
    77                <string key="IBDocument.AppKitVersion">1038.29</string>
    8                 <string key="IBDocument.HIToolboxVersion">460.00</string>
     8                <string key="IBDocument.HIToolboxVersion">461.00</string>
    99                <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
    1010                        <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
    1111                        <string key="NS.object.0">762</string>
    1212                </object>
    1313                <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
    1414                        <bool key="EncodedWithXMLCoder">YES</bool>
    15                         <integer value="1361"/>
     15                        <integer value="256"/>
    1616                </object>
    1717                <object class="NSArray" key="IBDocument.PluginDependencies">
    1818                        <bool key="EncodedWithXMLCoder">YES</bool>
     
    433433                                <string key="NSExtension">NSResponder</string>
    434434                        </object>
    435435                        <object class="NSCustomView" id="314557528">
    436                                 <nil key="NSNextResponder"/>
     436                                <reference key="NSNextResponder"/>
    437437                                <int key="NSvFlags">256</int>
    438438                                <object class="NSMutableArray" key="NSSubviews">
    439439                                        <bool key="EncodedWithXMLCoder">YES</bool>
     
    446446                                                        <bool key="EncodedWithXMLCoder">YES</bool>
    447447                                                        <object class="NSTabViewItem" id="73412354">
    448448                                                                <object class="NSView" key="NSView" id="833882848">
    449                                                                         <reference key="NSNextResponder" ref="463462813"/>
     449                                                                        <nil key="NSNextResponder"/>
    450450                                                                        <int key="NSvFlags">256</int>
    451451                                                                        <object class="NSMutableArray" key="NSSubviews">
    452452                                                                                <bool key="EncodedWithXMLCoder">YES</bool>
     
    961961                                                                                </object>
    962962                                                                        </object>
    963963                                                                        <string key="NSFrame">{{10, 33}, {496, 272}}</string>
    964                                                                         <reference key="NSSuperview" ref="463462813"/>
    965964                                                                </object>
    966965                                                                <string key="NSLabel">Adding</string>
    967966                                                                <reference key="NSColor" ref="977951849"/>
     
    969968                                                        </object>
    970969                                                        <object class="NSTabViewItem" id="298493360">
    971970                                                                <object class="NSView" key="NSView" id="159788047">
    972                                                                         <nil key="NSNextResponder"/>
     971                                                                        <reference key="NSNextResponder" ref="463462813"/>
    973972                                                                        <int key="NSvFlags">256</int>
    974973                                                                        <object class="NSMutableArray" key="NSSubviews">
    975974                                                                                <bool key="EncodedWithXMLCoder">YES</bool>
    976975                                                                                <object class="NSTextField" id="192996348">
    977976                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    978977                                                                                        <int key="NSvFlags">256</int>
    979                                                                                         <string key="NSFrame">{{311, 180}, {35, 22}}</string>
     978                                                                                        <string key="NSFrame">{{311, 154}, {35, 22}}</string>
    980979                                                                                        <reference key="NSSuperview" ref="159788047"/>
    981980                                                                                        <bool key="NSEnabled">YES</bool>
    982981                                                                                        <object class="NSTextFieldCell" key="NSCell" id="283641828">
     
    10591058                                                                                <object class="NSTextField" id="977701368">
    10601059                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    10611060                                                                                        <int key="NSvFlags">256</int>
    1062                                                                                         <string key="NSFrame">{{41, 182}, {56, 17}}</string>
     1061                                                                                        <string key="NSFrame">{{41, 156}, {56, 17}}</string>
    10631062                                                                                        <reference key="NSSuperview" ref="159788047"/>
    10641063                                                                                        <bool key="NSEnabled">YES</bool>
    10651064                                                                                        <object class="NSTextFieldCell" key="NSCell" id="1040746680">
     
    10751074                                                                                <object class="NSTextField" id="271336507">
    10761075                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    10771076                                                                                        <int key="NSvFlags">256</int>
    1078                                                                                         <string key="NSFrame">{{351, 182}, {101, 17}}</string>
     1077                                                                                        <string key="NSFrame">{{351, 156}, {101, 17}}</string>
    10791078                                                                                        <reference key="NSSuperview" ref="159788047"/>
    10801079                                                                                        <bool key="NSEnabled">YES</bool>
    10811080                                                                                        <object class="NSTextFieldCell" key="NSCell" id="506158787">
     
    11761175                                                                                                <reference key="NSTextColor" ref="430340990"/>
    11771176                                                                                        </object>
    11781177                                                                                </object>
     1178                                                                                <object class="NSButton" id="457261886">
     1179                                                                                        <reference key="NSNextResponder" ref="159788047"/>
     1180                                                                                        <int key="NSvFlags">256</int>
     1181                                                                                        <string key="NSFrame">{{105, 197}, {220, 18}}</string>
     1182                                                                                        <reference key="NSSuperview" ref="159788047"/>
     1183                                                                                        <bool key="NSEnabled">YES</bool>
     1184                                                                                        <object class="NSButtonCell" key="NSCell" id="1020157033">
     1185                                                                                                <int key="NSCellFlags">67239424</int>
     1186                                                                                                <int key="NSCellFlags2">0</int>
     1187                                                                                                <string key="NSContents">Stop seeding when inactive for:</string>
     1188                                                                                                <reference key="NSSupport" ref="86725571"/>
     1189                                                                                                <reference key="NSControlView" ref="457261886"/>
     1190                                                                                                <int key="NSButtonFlags">1211912703</int>
     1191                                                                                                <int key="NSButtonFlags2">2</int>
     1192                                                                                                <reference key="NSNormalImage" ref="1001726176"/>
     1193                                                                                                <reference key="NSAlternateImage" ref="764913887"/>
     1194                                                                                                <string key="NSAlternateContents"/>
     1195                                                                                                <string key="NSKeyEquivalent"/>
     1196                                                                                                <int key="NSPeriodicDelay">200</int>
     1197                                                                                                <int key="NSPeriodicInterval">25</int>
     1198                                                                                        </object>
     1199                                                                                </object>
     1200                                                                                <object class="NSTextField" id="430240209">
     1201                                                                                        <reference key="NSNextResponder" ref="159788047"/>
     1202                                                                                        <int key="NSvFlags">256</int>
     1203                                                                                        <string key="NSFrame">{{331, 196}, {41, 22}}</string>
     1204                                                                                        <reference key="NSSuperview" ref="159788047"/>
     1205                                                                                        <bool key="NSEnabled">YES</bool>
     1206                                                                                        <object class="NSTextFieldCell" key="NSCell" id="279439304">
     1207                                                                                                <int key="NSCellFlags">-1804468671</int>
     1208                                                                                                <int key="NSCellFlags2">272630784</int>
     1209                                                                                                <reference key="NSSupport" ref="86725571"/>
     1210                                                                                                <object class="NSNumberFormatter" key="NSFormatter" id="840222534">
     1211                                                                                                        <object class="NSMutableDictionary" key="NS.attributes">
     1212                                                                                                                <bool key="EncodedWithXMLCoder">YES</bool>
     1213                                                                                                                <object class="NSArray" key="dict.sortedKeys">
     1214                                                                                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     1215                                                                                                                        <string>allowsFloats</string>
     1216                                                                                                                        <string>formatterBehavior</string>
     1217                                                                                                                        <string>lenient</string>
     1218                                                                                                                        <string>locale</string>
     1219                                                                                                                        <string>maximum</string>
     1220                                                                                                                        <string>minimum</string>
     1221                                                                                                                        <string>negativeInfinitySymbol</string>
     1222                                                                                                                        <string>nilSymbol</string>
     1223                                                                                                                        <string>numberStyle</string>
     1224                                                                                                                        <string>positiveInfinitySymbol</string>
     1225                                                                                                                </object>
     1226                                                                                                                <object class="NSMutableArray" key="dict.values">
     1227                                                                                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     1228                                                                                                                        <boolean value="YES"/>
     1229                                                                                                                        <integer value="1040"/>
     1230                                                                                                                        <boolean value="YES"/>
     1231                                                                                                                        <reference ref="260779128"/>
     1232                                                                                                                        <real value="10000"/>
     1233                                                                                                                        <real value="1"/>
     1234                                                                                                                        <string>-∞</string>
     1235                                                                                                                        <string/>
     1236                                                                                                                        <integer value="0"/>
     1237                                                                                                                        <string>+∞</string>
     1238                                                                                                                </object>
     1239                                                                                                        </object>
     1240                                                                                                        <string key="NS.positiveformat">#</string>
     1241                                                                                                        <string key="NS.negativeformat">#</string>
     1242                                                                                                        <nil key="NS.positiveattrs"/>
     1243                                                                                                        <nil key="NS.negativeattrs"/>
     1244                                                                                                        <nil key="NS.zero"/>
     1245                                                                                                        <object class="NSAttributedString" key="NS.nil">
     1246                                                                                                                <string key="NSString"/>
     1247                                                                                                        </object>
     1248                                                                                                        <object class="NSAttributedString" key="NS.nan">
     1249                                                                                                                <string key="NSString">NaN</string>
     1250                                                                                                                <reference key="NSAttributes" ref="72222796"/>
     1251                                                                                                        </object>
     1252                                                                                                        <real value="1" key="NS.min"/>
     1253                                                                                                        <real value="10000" key="NS.max"/>
     1254                                                                                                        <object class="NSDecimalNumberHandler" key="NS.rounding">
     1255                                                                                                                <int key="NS.roundingmode">3</int>
     1256                                                                                                                <bool key="NS.raise.overflow">YES</bool>
     1257                                                                                                                <bool key="NS.raise.underflow">YES</bool>
     1258                                                                                                                <bool key="NS.raise.dividebyzero">YES</bool>
     1259                                                                                                        </object>
     1260                                                                                                        <string key="NS.decimal">.</string>
     1261                                                                                                        <string key="NS.thousand">,</string>
     1262                                                                                                        <bool key="NS.hasthousands">NO</bool>
     1263                                                                                                        <bool key="NS.localized">NO</bool>
     1264                                                                                                        <bool key="NS.allowsfloats">YES</bool>
     1265                                                                                                </object>
     1266                                                                                                <reference key="NSControlView" ref="430240209"/>
     1267                                                                                                <bool key="NSDrawsBackground">YES</bool>
     1268                                                                                                <reference key="NSBackgroundColor" ref="317620196"/>
     1269                                                                                                <reference key="NSTextColor" ref="430340990"/>
     1270                                                                                        </object>
     1271                                                                                </object>
    11791272                                                                                <object class="NSTextField" id="926230950">
    11801273                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    11811274                                                                                        <int key="NSvFlags">256</int>
    1182                                                                                         <string key="NSFrame">{{24, 242}, {73, 17}}</string>
     1275                                                                                        <string key="NSFrame">{{50, 242}, {47, 17}}</string>
    11831276                                                                                        <reference key="NSSuperview" ref="159788047"/>
    11841277                                                                                        <bool key="NSEnabled">YES</bool>
    11851278                                                                                        <object class="NSTextFieldCell" key="NSCell" id="1052593840">
    11861279                                                                                                <int key="NSCellFlags">67239424</int>
    11871280                                                                                                <int key="NSCellFlags2">4194304</int>
    1188                                                                                                 <string key="NSContents">Automatic:</string>
     1281                                                                                                <string key="NSContents">Limits:</string>
    11891282                                                                                                <reference key="NSSupport" ref="86725571"/>
    11901283                                                                                                <reference key="NSControlView" ref="926230950"/>
    11911284                                                                                                <reference key="NSBackgroundColor" ref="977951849"/>
     
    12231316                                                                                <object class="NSButton" id="959697936">
    12241317                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    12251318                                                                                        <int key="NSvFlags">256</int>
    1226                                                                                         <string key="NSFrame">{{100, 181}, {205, 18}}</string>
     1319                                                                                        <string key="NSFrame">{{100, 155}, {205, 18}}</string>
    12271320                                                                                        <reference key="NSSuperview" ref="159788047"/>
    12281321                                                                                        <bool key="NSEnabled">YES</bool>
    12291322                                                                                        <object class="NSButtonCell" key="NSCell" id="415355814">
     
    12451338                                                                                <object class="NSTextField" id="642835928">
    12461339                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    12471340                                                                                        <int key="NSvFlags">256</int>
    1248                                                                                         <string key="NSFrame">{{297, 154}, {35, 22}}</string>
     1341                                                                                        <string key="NSFrame">{{297, 128}, {35, 22}}</string>
    12491342                                                                                        <reference key="NSSuperview" ref="159788047"/>
    12501343                                                                                        <bool key="NSEnabled">YES</bool>
    12511344                                                                                        <object class="NSTextFieldCell" key="NSCell" id="440983450">
     
    13081401                                                                                <object class="NSTextField" id="929631251">
    13091402                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    13101403                                                                                        <int key="NSvFlags">256</int>
    1311                                                                                         <string key="NSFrame">{{337, 156}, {101, 17}}</string>
     1404                                                                                        <string key="NSFrame">{{337, 130}, {101, 17}}</string>
    13121405                                                                                        <reference key="NSSuperview" ref="159788047"/>
    13131406                                                                                        <bool key="NSEnabled">YES</bool>
    13141407                                                                                        <object class="NSTextFieldCell" key="NSCell" id="153425121">
     
    13241417                                                                                <object class="NSButton" id="802622975">
    13251418                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    13261419                                                                                        <int key="NSvFlags">256</int>
    1327                                                                                         <string key="NSFrame">{{100, 155}, {191, 18}}</string>
     1420                                                                                        <string key="NSFrame">{{100, 129}, {191, 18}}</string>
    13281421                                                                                        <reference key="NSSuperview" ref="159788047"/>
    13291422                                                                                        <bool key="NSEnabled">YES</bool>
    13301423                                                                                        <object class="NSButtonCell" key="NSCell" id="265029926">
     
    13461439                                                                                <object class="NSTextField" id="805721613">
    13471440                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    13481441                                                                                        <int key="NSvFlags">256</int>
    1349                                                                                         <string key="NSFrame">{{374, 128}, {41, 22}}</string>
     1442                                                                                        <string key="NSFrame">{{374, 102}, {41, 22}}</string>
    13501443                                                                                        <reference key="NSSuperview" ref="159788047"/>
    13511444                                                                                        <bool key="NSEnabled">YES</bool>
    13521445                                                                                        <object class="NSTextFieldCell" key="NSCell" id="997390601">
     
    13591452                                                                                                                <object class="NSArray" key="dict.sortedKeys">
    13601453                                                                                                                        <bool key="EncodedWithXMLCoder">YES</bool>
    13611454                                                                                                                        <string>allowsFloats</string>
     1455                                                                                                                        <string>currencySymbol</string>
    13621456                                                                                                                        <string>formatterBehavior</string>
    1363                                                                                                                         <string>locale</string>
     1457                                                                                                                        <string>internationalCurrencySymbol</string>
     1458                                                                                                                        <string>lenient</string>
    13641459                                                                                                                        <string>maximum</string>
    13651460                                                                                                                        <string>minimum</string>
    13661461                                                                                                                        <string>minimumIntegerDigits</string>
     1462                                                                                                                        <string>negativeFormat</string>
     1463                                                                                                                        <string>numberStyle</string>
     1464                                                                                                                        <string>positiveFormat</string>
    13671465                                                                                                                </object>
    13681466                                                                                                                <object class="NSMutableArray" key="dict.values">
    13691467                                                                                                                        <bool key="EncodedWithXMLCoder">YES</bool>
    1370                                                                                                                         <integer value="0"/>
     1468                                                                                                                        <boolean value="NO"/>
     1469                                                                                                                        <string>€</string>
    13711470                                                                                                                        <integer value="1040"/>
    1372                                                                                                                         <reference ref="260779128"/>
     1471                                                                                                                        <string>€€</string>
     1472                                                                                                                        <boolean value="NO"/>
    13731473                                                                                                                        <real value="10000"/>
    13741474                                                                                                                        <real value="1"/>
    1375                                                                                                                         <real value="1"/>
     1475                                                                                                                        <integer value="1"/>
     1476                                                                                                                        <string>#0</string>
     1477                                                                                                                        <integer value="0"/>
     1478                                                                                                                        <string>#0</string>
    13761479                                                                                                                </object>
    13771480                                                                                                        </object>
    13781481                                                                                                        <string key="NS.positiveformat">#0</string>
     
    13961499                                                                                                        <string key="NS.decimal">.</string>
    13971500                                                                                                        <string key="NS.thousand">,</string>
    13981501                                                                                                        <bool key="NS.hasthousands">NO</bool>
    1399                                                                                                         <bool key="NS.localized">NO</bool>
     1502                                                                                                        <bool key="NS.localized">YES</bool>
    14001503                                                                                                        <bool key="NS.allowsfloats">NO</bool>
    14011504                                                                                                </object>
    14021505                                                                                                <reference key="NSControlView" ref="805721613"/>
     
    14081511                                                                                <object class="NSTextField" id="452040825">
    14091512                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    14101513                                                                                        <int key="NSvFlags">256</int>
    1411                                                                                         <string key="NSFrame">{{420, 130}, {55, 17}}</string>
     1514                                                                                        <string key="NSFrame">{{420, 104}, {55, 17}}</string>
    14121515                                                                                        <reference key="NSSuperview" ref="159788047"/>
    14131516                                                                                        <bool key="NSEnabled">YES</bool>
    14141517                                                                                        <object class="NSTextFieldCell" key="NSCell" id="416442895">
     
    14241527                                                                                <object class="NSButton" id="605552642">
    14251528                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    14261529                                                                                        <int key="NSvFlags">256</int>
    1427                                                                                         <string key="NSFrame">{{100, 129}, {268, 18}}</string>
     1530                                                                                        <string key="NSFrame">{{100, 103}, {268, 18}}</string>
    14281531                                                                                        <reference key="NSSuperview" ref="159788047"/>
    14291532                                                                                        <bool key="NSEnabled">YES</bool>
    14301533                                                                                        <object class="NSButtonCell" key="NSCell" id="983632896">
     
    14461549                                                                                <object class="NSTextField" id="489294512">
    14471550                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    14481551                                                                                        <int key="NSvFlags">256</int>
    1449                                                                                         <string key="NSFrame">{{20, 90}, {77, 17}}</string>
     1552                                                                                        <string key="NSFrame">{{20, 64}, {77, 17}}</string>
    14501553                                                                                        <reference key="NSSuperview" ref="159788047"/>
    14511554                                                                                        <bool key="NSEnabled">YES</bool>
    14521555                                                                                        <object class="NSTextFieldCell" key="NSCell" id="146274476">
     
    14621565                                                                                <object class="NSPopUpButton" id="986412145">
    14631566                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    14641567                                                                                        <int key="NSvFlags">256</int>
    1465                                                                                         <string key="NSFrame">{{298, 84}, {130, 26}}</string>
     1568                                                                                        <string key="NSFrame">{{298, 58}, {130, 26}}</string>
    14661569                                                                                        <reference key="NSSuperview" ref="159788047"/>
    14671570                                                                                        <bool key="NSEnabled">YES</bool>
    14681571                                                                                        <object class="NSPopUpButtonCell" key="NSCell" id="705215561">
     
    15141617                                                                                <object class="NSButton" id="144778876">
    15151618                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    15161619                                                                                        <int key="NSvFlags">256</int>
    1517                                                                                         <string key="NSFrame">{{100, 64}, {183, 18}}</string>
     1620                                                                                        <string key="NSFrame">{{100, 38}, {183, 18}}</string>
    15181621                                                                                        <reference key="NSSuperview" ref="159788047"/>
    15191622                                                                                        <bool key="NSEnabled">YES</bool>
    15201623                                                                                        <object class="NSButtonCell" key="NSCell" id="665924860">
     
    15361639                                                                                <object class="NSPopUpButton" id="1042395974">
    15371640                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    15381641                                                                                        <int key="NSvFlags">256</int>
    1539                                                                                         <string key="NSFrame">{{298, 59}, {130, 26}}</string>
     1642                                                                                        <string key="NSFrame">{{298, 33}, {130, 26}}</string>
    15401643                                                                                        <reference key="NSSuperview" ref="159788047"/>
    15411644                                                                                        <bool key="NSEnabled">YES</bool>
    15421645                                                                                        <object class="NSPopUpButtonCell" key="NSCell" id="301407755">
     
    15841687                                                                                <object class="NSButton" id="630340288">
    15851688                                                                                        <reference key="NSNextResponder" ref="159788047"/>
    15861689                                                                                        <int key="NSvFlags">256</int>
    1587                                                                                         <string key="NSFrame">{{100, 89}, {195, 18}}</string>
     1690                                                                                        <string key="NSFrame">{{100, 63}, {195, 18}}</string>
    15881691                                                                                        <reference key="NSSuperview" ref="159788047"/>
    15891692                                                                                        <bool key="NSEnabled">YES</bool>
    15901693                                                                                        <object class="NSButtonCell" key="NSCell" id="1000733872">
     
    16031706                                                                                                <int key="NSPeriodicInterval">25</int>
    16041707                                                                                        </object>
    16051708                                                                                </object>
     1709                                                                                <object class="NSTextField" id="654576556">
     1710                                                                                        <reference key="NSNextResponder" ref="159788047"/>
     1711                                                                                        <int key="NSvFlags">256</int>
     1712                                                                                        <string key="NSFrame">{{377, 198}, {55, 17}}</string>
     1713                                                                                        <reference key="NSSuperview" ref="159788047"/>
     1714                                                                                        <bool key="NSEnabled">YES</bool>
     1715                                                                                        <object class="NSTextFieldCell" key="NSCell" id="517021610">
     1716                                                                                                <int key="NSCellFlags">67239424</int>
     1717                                                                                                <int key="NSCellFlags2">272629760</int>
     1718                                                                                                <string key="NSContents">minutes</string>
     1719                                                                                                <reference key="NSSupport" ref="86725571"/>
     1720                                                                                                <reference key="NSControlView" ref="654576556"/>
     1721                                                                                                <reference key="NSBackgroundColor" ref="977951849"/>
     1722                                                                                                <reference key="NSTextColor" ref="400627124"/>
     1723                                                                                        </object>
     1724                                                                                </object>
    16061725                                                                        </object>
    16071726                                                                        <string key="NSFrame">{{10, 33}, {496, 272}}</string>
     1727                                                                        <reference key="NSSuperview" ref="463462813"/>
    16081728                                                                </object>
    16091729                                                                <string key="NSLabel">Management</string>
    16101730                                                                <reference key="NSColor" ref="977951849"/>
    16111731                                                                <reference key="NSTabView" ref="463462813"/>
    16121732                                                        </object>
    16131733                                                </object>
    1614                                                 <reference key="NSSelectedTabViewItem" ref="73412354"/>
     1734                                                <reference key="NSSelectedTabViewItem" ref="298493360"/>
    16151735                                                <reference key="NSFont" ref="86725571"/>
    16161736                                                <int key="NSTvFlags">0</int>
    16171737                                                <bool key="NSAllowTruncatedLabels">YES</bool>
    16181738                                                <bool key="NSDrawsBackground">YES</bool>
    16191739                                                <object class="NSMutableArray" key="NSSubviews">
    16201740                                                        <bool key="EncodedWithXMLCoder">YES</bool>
    1621                                                         <reference ref="833882848"/>
     1741                                                        <reference ref="159788047"/>
    16221742                                                </object>
    16231743                                        </object>
    16241744                                </object>
    16251745                                <string key="NSFrameSize">{542, 331}</string>
     1746                                <reference key="NSSuperview"/>
    16261747                                <string key="NSClassName">NSView</string>
    16271748                                <string key="NSExtension">NSResponder</string>
    16281749                        </object>
     
    17121833AAABAQADAAAAAQASAAABAgADAAAABAAABSIBAwADAAAAAQAFAAABBgADAAAAAQACAAABEQAEAAAAAQAA
    17131834AAgBEgADAAAAAQABAAABFQADAAAAAQAEAAABFgADAAAAAQASAAABFwAEAAAAAQAABGABHAADAAAAAQAB
    17141835AAABPQADAAAAAQACAAABUgADAAAAAQABAAABUwADAAAABAAABSqHcwAHAAAYmAAABTIAAAAAAAgACAAI
    1715 AAgAAQABAAEAAQAAGJhhcHBsAhAAAG1udHJSR0IgWFlaIAfaAAMAHQAXABYADWFjc3BBUFBMAAAAAAAA
     1836AAgAAQABAAEAAQAAGJhhcHBsAhAAAG1udHJSR0IgWFlaIAfaAAYAGgAKAB0ANWFjc3BBUFBMAAAAAAAA
    17161837AAAAAAAAAAAAAAAAAAAAAAAAAAD21gABAAAAANMtYXBwbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    17171838AAAAAAAAAAAAAAAAAAAAAAAAAAAAEWRlc2MAAAFQAAAAYmRzY20AAAG0AAAA8GNwcnQAAAKkAAAA0Hd0
    17181839cHQAAAN0AAAAFHJYWVoAAAOIAAAAFGdYWVoAAAOcAAAAFGJYWVoAAAOwAAAAFHJUUkMAAAPEAAAIDGFh
     
    29483069                                <string key="NSExtension">NSResponder</string>
    29493070                        </object>
    29503071                        <object class="NSCustomView" id="538122014">
    2951                                 <reference key="NSNextResponder"/>
     3072                                <nil key="NSNextResponder"/>
    29523073                                <int key="NSvFlags">256</int>
    29533074                                <object class="NSMutableArray" key="NSSubviews">
    29543075                                        <bool key="EncodedWithXMLCoder">YES</bool>
     
    34423563                                        </object>
    34433564                                </object>
    34443565                                <string key="NSFrameSize">{542, 342}</string>
    3445                                 <reference key="NSSuperview"/>
    34463566                                <string key="NSClassName">NSView</string>
    34473567                                <string key="NSExtension">NSResponder</string>
    34483568                        </object>
     
    79048024                                        </object>
    79058025                                        <int key="connectionID">1957</int>
    79068026                                </object>
     8027                                <object class="IBConnectionRecord">
     8028                                        <object class="IBOutletConnection" key="connection">
     8029                                                <string key="label">nextKeyView</string>
     8030                                                <reference key="source" ref="430240209"/>
     8031                                                <reference key="destination" ref="192996348"/>
     8032                                        </object>
     8033                                        <int key="connectionID">1963</int>
     8034                                </object>
     8035                                <object class="IBConnectionRecord">
     8036                                        <object class="IBOutletConnection" key="connection">
     8037                                                <string key="label">delegate</string>
     8038                                                <reference key="source" ref="430240209"/>
     8039                                                <reference key="destination" ref="511492310"/>
     8040                                        </object>
     8041                                        <int key="connectionID">1964</int>
     8042                                </object>
     8043                                <object class="IBConnectionRecord">
     8044                                        <object class="IBBindingConnection" key="connection">
     8045                                                <string key="label">enabled: values.CheckStalled</string>
     8046                                                <reference key="source" ref="654576556"/>
     8047                                                <reference key="destination" ref="356871564"/>
     8048                                                <object class="NSNibBindingConnector" key="connector">
     8049                                                        <reference key="NSSource" ref="654576556"/>
     8050                                                        <reference key="NSDestination" ref="356871564"/>
     8051                                                        <string key="NSLabel">enabled: values.CheckStalled</string>
     8052                                                        <string key="NSBinding">enabled</string>
     8053                                                        <string key="NSKeyPath">values.CheckStalled</string>
     8054                                                        <int key="NSNibBindingConnectorVersion">2</int>
     8055                                                </object>
     8056                                        </object>
     8057                                        <int key="connectionID">1971</int>
     8058                                </object>
     8059                                <object class="IBConnectionRecord">
     8060                                        <object class="IBActionConnection" key="connection">
     8061                                                <string key="label">applyInactiveStopSetting:</string>
     8062                                                <reference key="source" ref="511492310"/>
     8063                                                <reference key="destination" ref="457261886"/>
     8064                                        </object>
     8065                                        <int key="connectionID">1972</int>
     8066                                </object>
     8067                                <object class="IBConnectionRecord">
     8068                                        <object class="IBBindingConnection" key="connection">
     8069                                                <string key="label">value: values.InactiveLimitCheck</string>
     8070                                                <reference key="source" ref="457261886"/>
     8071                                                <reference key="destination" ref="356871564"/>
     8072                                                <object class="NSNibBindingConnector" key="connector">
     8073                                                        <reference key="NSSource" ref="457261886"/>
     8074                                                        <reference key="NSDestination" ref="356871564"/>
     8075                                                        <string key="NSLabel">value: values.InactiveLimitCheck</string>
     8076                                                        <string key="NSBinding">value</string>
     8077                                                        <string key="NSKeyPath">values.InactiveLimitCheck</string>
     8078                                                        <int key="NSNibBindingConnectorVersion">2</int>
     8079                                                </object>
     8080                                        </object>
     8081                                        <int key="connectionID">1973</int>
     8082                                </object>
     8083                                <object class="IBConnectionRecord">
     8084                                        <object class="IBBindingConnection" key="connection">
     8085                                                <string key="label">enabled: values.InactiveLimitCheck</string>
     8086                                                <reference key="source" ref="430240209"/>
     8087                                                <reference key="destination" ref="356871564"/>
     8088                                                <object class="NSNibBindingConnector" key="connector">
     8089                                                        <reference key="NSSource" ref="430240209"/>
     8090                                                        <reference key="NSDestination" ref="356871564"/>
     8091                                                        <string key="NSLabel">enabled: values.InactiveLimitCheck</string>
     8092                                                        <string key="NSBinding">enabled</string>
     8093                                                        <string key="NSKeyPath">values.InactiveLimitCheck</string>
     8094                                                        <int key="NSNibBindingConnectorVersion">2</int>
     8095                                                </object>
     8096                                        </object>
     8097                                        <int key="connectionID">1974</int>
     8098                                </object>
     8099                                <object class="IBConnectionRecord">
     8100                                        <object class="IBActionConnection" key="connection">
     8101                                                <string key="label">setInactiveStop:</string>
     8102                                                <reference key="source" ref="511492310"/>
     8103                                                <reference key="destination" ref="430240209"/>
     8104                                        </object>
     8105                                        <int key="connectionID">1975</int>
     8106                                </object>
     8107                                <object class="IBConnectionRecord">
     8108                                        <object class="IBOutletConnection" key="connection">
     8109                                                <string key="label">fInactiveStopField</string>
     8110                                                <reference key="source" ref="511492310"/>
     8111                                                <reference key="destination" ref="430240209"/>
     8112                                        </object>
     8113                                        <int key="connectionID">1976</int>
     8114                                </object>
    79078115                        </object>
    79088116                        <object class="IBMutableOrderedSet" key="objectRecords">
    79098117                                <object class="NSArray" key="orderedObjects">
     
    82578465                                                        <reference ref="144778876"/>
    82588466                                                        <reference ref="1042395974"/>
    82598467                                                        <reference ref="630340288"/>
     8468                                                        <reference ref="457261886"/>
     8469                                                        <reference ref="430240209"/>
     8470                                                        <reference ref="654576556"/>
    82608471                                                </object>
    82618472                                                <reference key="parent" ref="298493360"/>
    82628473                                        </object>
     
    1072110932                                                <reference key="object" ref="548071836"/>
    1072210933                                                <reference key="parent" ref="1042006550"/>
    1072310934                                        </object>
     10935                                        <object class="IBObjectRecord">
     10936                                                <int key="objectID">1958</int>
     10937                                                <reference key="object" ref="457261886"/>
     10938                                                <object class="NSMutableArray" key="children">
     10939                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     10940                                                        <reference ref="1020157033"/>
     10941                                                </object>
     10942                                                <reference key="parent" ref="159788047"/>
     10943                                        </object>
     10944                                        <object class="IBObjectRecord">
     10945                                                <int key="objectID">1959</int>
     10946                                                <reference key="object" ref="430240209"/>
     10947                                                <object class="NSMutableArray" key="children">
     10948                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     10949                                                        <reference ref="279439304"/>
     10950                                                </object>
     10951                                                <reference key="parent" ref="159788047"/>
     10952                                        </object>
     10953                                        <object class="IBObjectRecord">
     10954                                                <int key="objectID">1960</int>
     10955                                                <reference key="object" ref="279439304"/>
     10956                                                <object class="NSMutableArray" key="children">
     10957                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     10958                                                        <reference ref="840222534"/>
     10959                                                </object>
     10960                                                <reference key="parent" ref="430240209"/>
     10961                                        </object>
     10962                                        <object class="IBObjectRecord">
     10963                                                <int key="objectID">1961</int>
     10964                                                <reference key="object" ref="840222534"/>
     10965                                                <reference key="parent" ref="279439304"/>
     10966                                        </object>
     10967                                        <object class="IBObjectRecord">
     10968                                                <int key="objectID">1962</int>
     10969                                                <reference key="object" ref="1020157033"/>
     10970                                                <reference key="parent" ref="457261886"/>
     10971                                        </object>
     10972                                        <object class="IBObjectRecord">
     10973                                                <int key="objectID">1969</int>
     10974                                                <reference key="object" ref="654576556"/>
     10975                                                <object class="NSMutableArray" key="children">
     10976                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     10977                                                        <reference ref="517021610"/>
     10978                                                </object>
     10979                                                <reference key="parent" ref="159788047"/>
     10980                                        </object>
     10981                                        <object class="IBObjectRecord">
     10982                                                <int key="objectID">1970</int>
     10983                                                <reference key="object" ref="517021610"/>
     10984                                                <reference key="parent" ref="654576556"/>
     10985                                        </object>
    1072410986                                </object>
    1072510987                        </object>
    1072610988                        <object class="NSMutableDictionary" key="flattenedProperties">
     
    1112711389                                        <string>1951.IBPluginDependency</string>
    1112811390                                        <string>1951.ImportedFromIB2</string>
    1112911391                                        <string>1952.IBPluginDependency</string>
     11392                                        <string>1958.IBPluginDependency</string>
     11393                                        <string>1958.ImportedFromIB2</string>
     11394                                        <string>1959.IBPluginDependency</string>
     11395                                        <string>1959.ImportedFromIB2</string>
    1113011396                                        <string>196.IBPluginDependency</string>
    1113111397                                        <string>196.ImportedFromIB2</string>
     11398                                        <string>1960.IBPluginDependency</string>
     11399                                        <string>1961.IBNumberFormatterBehaviorMetadataKey</string>
     11400                                        <string>1961.IBNumberFormatterLocalizesFormatMetadataKey</string>
     11401                                        <string>1961.IBNumberFormatterSampleNumberKey</string>
     11402                                        <string>1961.IBPluginDependency</string>
     11403                                        <string>1961.ImportedFromIB2</string>
     11404                                        <string>1962.IBPluginDependency</string>
     11405                                        <string>1969.CustomClassName</string>
     11406                                        <string>1969.IBPluginDependency</string>
     11407                                        <string>1969.ImportedFromIB2</string>
     11408                                        <string>1970.IBPluginDependency</string>
    1113211409                                        <string>198.IBPluginDependency</string>
    1113311410                                        <string>198.ImportedFromIB2</string>
    1113411411                                        <string>199.IBPluginDependency</string>
     
    1131211589                                        <string>921.IBNumberFormatterLocalizesFormatMetadataKey</string>
    1131311590                                        <string>921.IBPluginDependency</string>
    1131411591                                        <string>921.ImportedFromIB2</string>
     11592                                        <string>922.IBNumberFormatterBehaviorMetadataKey</string>
    1131511593                                        <string>922.IBNumberFormatterLocalizesFormatMetadataKey</string>
    1131611594                                        <string>922.IBPluginDependency</string>
    1131711595                                        <string>922.ImportedFromIB2</string>
     
    1174012018                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    1174112019                                        <real value="1"/>
    1174212020                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     12021                                        <integer value="1041"/>
     12022                                        <boolean value="YES"/>
     12023                                        <real value="5"/>
     12024                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    1174312025                                        <real value="1"/>
    1174412026                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     12027                                        <string>ColorTextField</string>
     12028                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    1174512029                                        <real value="1"/>
    1174612030                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     12031                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    1174712032                                        <real value="1"/>
     12033                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     12034                                        <real value="1"/>
     12035                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     12036                                        <real value="1"/>
     12037                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     12038                                        <real value="1"/>
     12039                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     12040                                        <real value="1"/>
    1174812041                                        <string>{{593, 449}, {182, 53}}</string>
    1174912042                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    1175012043                                        <real value="1"/>
     
    1192512218                                        <boolean value="YES"/>
    1192612219                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    1192712220                                        <real value="1"/>
     12221                                        <integer value="1040"/>
    1192812222                                        <boolean value="YES"/>
    1192912223                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    1193012224                                        <real value="1"/>
     
    1196112255                                </object>
    1196212256                        </object>
    1196312257                        <nil key="sourceID"/>
    11964                         <int key="maxID">1957</int>
     12258                        <int key="maxID">1976</int>
    1196512259                </object>
    1196612260                <object class="IBClassDescriber" key="IBDocument.Classes">
    1196712261                        <object class="NSMutableArray" key="referencedPartialClassDescriptions">
     
    1210912403                                                <object class="NSArray" key="dict.sortedKeys">
    1211012404                                                        <bool key="EncodedWithXMLCoder">YES</bool>
    1211112405                                                        <string>addRemoveRPCIP:</string>
     12406                                                        <string>applyInactiveStopSetting:</string>
    1211212407                                                        <string>applyRatioSetting:</string>
    1211312408                                                        <string>applySpeedSettings:</string>
    1211412409                                                        <string>folderSheetShow:</string>
     
    1213512430                                                        <string>setDownloadLocation:</string>
    1213612431                                                        <string>setEncryptionMode:</string>
    1213712432                                                        <string>setGlobalLimit:</string>
     12433                                                        <string>setInactiveStop:</string>
    1213812434                                                        <string>setLPD:</string>
    1213912435                                                        <string>setNat:</string>
    1214012436                                                        <string>setPEX:</string>
     
    1222712523                                                        <string>id</string>
    1222812524                                                        <string>id</string>
    1222912525                                                        <string>id</string>
     12526                                                        <string>id</string>
     12527                                                        <string>id</string>
    1223012528                                                </object>
    1223112529                                        </object>
    1223212530                                        <object class="NSMutableDictionary" key="outlets">
     
    1224312541                                                        <string>fGeneralView</string>
    1224412542                                                        <string>fGroupsView</string>
    1224512543                                                        <string>fImportFolderPopUp</string>
     12544                                                        <string>fInactiveStopField</string>
    1224612545                                                        <string>fIncompleteFolderPopUp</string>
    1224712546                                                        <string>fNatCheck</string>
    1224812547                                                        <string>fNetworkView</string>
     
    1228312582                                                        <string>NSView</string>
    1228412583                                                        <string>NSView</string>
    1228512584                                                        <string>NSPopUpButton</string>
     12585                                                        <string>NSTextField</string>
    1228612586                                                        <string>NSPopUpButton</string>
    1228712587                                                        <string>NSButton</string>
    1228812588                                                        <string>NSView</string>
  • macosx/Defaults.plist

     
    7676        <integer>-2</integer>
    7777        <key>FilterSearchType</key>
    7878        <string>Name</string>
     79        <key>InactiveLimitCheck</key>
     80        <false/>
     81        <key>InactiveLimitMinutes</key>
     82        <integer>30</integer>
    7983        <key>IncompleteDownloadFolder</key>
    8084        <string>~/Downloads</string>
    8185        <key>InfoVisible</key>
  • macosx/PrefsController.h

     
    3737    NSString * fInitialString;
    3838   
    3939    IBOutlet NSPopUpButton * fFolderPopUp, * fIncompleteFolderPopUp, * fImportFolderPopUp;
    40     IBOutlet NSTextField * fRatioStopField, * fQueueDownloadField, * fQueueSeedField, * fStalledField;
     40    IBOutlet NSTextField * fRatioStopField, * fInactiveStopField, * fQueueDownloadField, * fQueueSeedField, * fStalledField;
    4141
    4242    IBOutlet NSTextField * fUploadField, * fDownloadField,
    4343                        * fSpeedLimitUploadField, * fSpeedLimitDownloadField;
     
    115115- (void) setRenamePartialFiles: (id) sender;
    116116
    117117- (void) applyRatioSetting: (id) sender;
     118- (void) setRatioStop: (id) sender;
    118119- (void) updateRatioStopField;
    119 - (void) setRatioStop: (id) sender;
    120120
     121- (void) applyInactiveStopSetting: (id) sender;
     122- (void) setInactiveStop: (id) sender;
     123
    121124- (void) applySpeedSettings: (id) sender;
    122125- (void) applyAltSpeedSettings;
    123126
  • macosx/PrefsController.m

     
    183183    //set stop ratio
    184184    [fRatioStopField setFloatValue: [fDefaults floatForKey: @"RatioLimit"]];
    185185   
     186    //set inactive seeding minutes
     187    [fInactiveStopField setIntegerValue: [fDefaults integerForKey: @"InactiveLimitMinutes"]];
     188   
    186189    //set limits
    187190    [self updateLimitFields];
    188191   
     
    589592
    590593- (void) applyRatioSetting: (id) sender
    591594{
    592     //[[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateUI" object: nil];
    593595    tr_sessionSetRatioLimited(fHandle, [fDefaults boolForKey: @"RatioCheck"]);
    594596    tr_sessionSetRatioLimit(fHandle, [fDefaults floatForKey: @"RatioLimit"]);
    595597}
    596598
     599- (void) setRatioStop: (id) sender
     600{
     601    [fDefaults setFloat: [sender floatValue] forKey: @"RatioLimit"];
     602   
     603    [self applyRatioSetting: nil];
     604}
     605
    597606- (void) updateRatioStopField
    598607{
    599608    if (fHasLoaded)
     
    602611    [self applyRatioSetting: nil];
    603612}
    604613
    605 - (void) setRatioStop: (id) sender
     614- (void) applyInactiveStopSetting: (id) sender
    606615{
    607     [fDefaults setFloat: [sender floatValue] forKey: @"RatioLimit"];
     616    tr_sessionSetInactivityLimited(fHandle, [fDefaults boolForKey: @"InactiveLimitCheck"]);
     617    tr_sessionSetInactiveLimit(fHandle, [fDefaults integerForKey: @"InactiveLimitMinutes"]);
     618}
     619
     620- (void) setInactiveStop: (id) sender
     621{
     622    [fDefaults setInteger: [sender integerValue] forKey: @"InactiveLimitMinutes"];
    608623   
    609     [self applyRatioSetting: nil];
     624    [self applyInactiveStopSetting: nil];
    610625}
    611626
    612627- (void) updateLimitFields
     
    12261241    const float ratioLimit = tr_sessionGetRatioLimit(fHandle);
    12271242    [fDefaults setFloat: ratioLimit forKey: @"RatioLimit"];
    12281243   
     1244    //inactive seed limit
     1245    const BOOL inactivityLimited = tr_sessionIsInactivityLimited(fHandle);
     1246    [fDefaults setBool: inactivityLimited forKey: @"InactiveLimitCheck"];
     1247   
     1248    const NSUInteger inactiveLimitMin = tr_sessionGetInactiveLimit(fHandle);
     1249    [fDefaults setInteger: inactiveLimitMin forKey: @"InactiveLimitMinutes"];
     1250   
    12291251    //update gui if loaded
    12301252    if (fHasLoaded)
    12311253    {
     
    12641286       
    12651287        //ratio limit enabled handled by bindings
    12661288        [fRatioStopField setFloatValue: ratioLimit];
     1289       
     1290        //inactivity limit enabled handled by bindings
     1291        [fInactiveStopField setIntegerValue: inactiveLimitMin];
    12671292    }
    12681293   
    12691294    [[NSNotificationCenter defaultCenter] postNotificationName: @"SpeedLimitUpdate" object: nil];
  • macosx/Torrent.h

     
    9898- (BOOL) seedRatioSet;
    9999- (CGFloat) progressStopRatio;
    100100
     101- (tr_inactvelimit) inactiveSetting;
     102- (void) setInactiveSetting: (tr_inactvelimit) setting;
     103- (NSUInteger) inactiveLimitMinutes;
     104- (void) setInactiveLimitMinutes: (NSUInteger) limit;
     105- (BOOL) seedInactiveLimitSet;
     106
    101107- (BOOL) usesSpeedLimit: (BOOL) upload;
    102108- (void) setUseSpeedLimit: (BOOL) use upload: (BOOL) upload;
    103109- (NSInteger) speedLimit: (BOOL) upload;
  • macosx/Torrent.m

     
    4545
    4646- (void) completenessChange: (NSDictionary *) statusInfo;
    4747- (void) ratioLimitHit;
     48- (void) inactiveLimitHit;
    4849- (void) metadataRetrieved;
    4950
    5051- (NSString *) etaString;
     
    6566    [(Torrent *)torrentData performSelectorOnMainThread: @selector(ratioLimitHit) withObject: nil waitUntilDone: NO];
    6667}
    6768
     69void inactiveLimitHitCallback(tr_torrent * torrent, void * torrentData)
     70{
     71    [(Torrent *)torrentData performSelectorOnMainThread: @selector(inactiveLimitHit) withObject: nil waitUntilDone: NO];
     72}
     73
    6874void metadataCallback(tr_torrent * torrent, void * torrentData)
    6975{
    7076    [(Torrent *)torrentData performSelectorOnMainThread: @selector(metadataRetrieved) withObject: nil waitUntilDone: NO];
     
    292298        tr_torrentStart(fHandle);
    293299        [self update];
    294300       
    295         //capture, specifically, ratio setting changing to unlimited
     301        //capture, specifically, stop-seeding settings changing to unlimited
    296302        [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateOptions" object: nil];
    297303    }
    298304}
     
    387393    return fStat->seedRatioPercentDone;
    388394}
    389395
     396- (tr_inactvelimit) inactiveSetting
     397{
     398    return tr_torrentGetInactiveMode(fHandle);
     399}
     400
     401- (void) setInactiveSetting: (tr_inactvelimit) setting
     402{
     403    tr_torrentSetInactiveMode(fHandle, setting);
     404}
     405
     406- (NSUInteger) inactiveLimitMinutes
     407{
     408    return tr_torrentGetInactiveLimit(fHandle);
     409}
     410
     411- (void) setInactiveLimitMinutes: (NSUInteger) limit
     412{
     413    NSAssert(limit > 0, @"Inactive limit must be greater than zero");
     414    tr_torrentSetInactiveLimit(fHandle, limit);
     415}
     416
     417- (BOOL) seedInactiveLimitSet
     418{
     419    return tr_torrentGetSeedInactive(fHandle, NULL);
     420}
     421
    390422- (BOOL) usesSpeedLimit: (BOOL) upload
    391423{
    392424    return tr_torrentUsesSpeedLimit(fHandle, upload ? TR_UP : TR_DOWN);
     
    9801012        string = [downloadString stringByAppendingFormat: @", %@", uploadString];
    9811013    }
    9821014   
    983     //add time when downloading
     1015    //add time when downloading or seed limit set
    9841016    if (fStat->activity == TR_STATUS_DOWNLOAD || ([self isSeeding] && [self seedRatioSet]))
    9851017        string = [string stringByAppendingFormat: @" - %@", [self etaString]];
    9861018   
     
    11291161
    11301162- (NSString *) remainingTimeString
    11311163{
     1164    #warning update?
    11321165    if (fStat->activity == TR_STATUS_DOWNLOAD || ([self isSeeding] && [self seedRatioSet]))
    11331166        return [self etaString];
    11341167    else
     
    16131646   
    16141647    tr_torrentSetCompletenessCallback(fHandle, completenessChangeCallback, self);
    16151648    tr_torrentSetRatioLimitHitCallback(fHandle, ratioLimitHitCallback, self);
     1649    tr_torrentSetInactiveLimitHitCallback(fHandle, inactiveLimitHitCallback, self);
    16161650    tr_torrentSetMetadataCallback(fHandle, metadataCallback, self);
    16171651   
    16181652    fHashString = [[NSString alloc] initWithUTF8String: fInfo->hashString];
     
    17681802    [[NSNotificationCenter defaultCenter] postNotificationName: @"TorrentStoppedForRatio" object: self];
    17691803}
    17701804
     1805- (void) inactiveLimitHit
     1806{
     1807    fStat = tr_torrentStat(fHandle);
     1808   
     1809    #warning fix
     1810    [[NSNotificationCenter defaultCenter] postNotificationName: @"TorrentStoppedForRatio" object: self];
     1811}
     1812
    17711813- (void) metadataRetrieved
    17721814{
    17731815    fStat = tr_torrentStat(fHandle);
  • macosx/InfoOptionsViewController.h

     
    3131   
    3232    BOOL fSet;
    3333   
    34     IBOutlet NSPopUpButton * fPriorityPopUp, * fRatioPopUp;
     34    IBOutlet NSPopUpButton * fPriorityPopUp, * fRatioPopUp, * fInactivePopUp;
    3535    IBOutlet NSButton * fUploadLimitCheck, * fDownloadLimitCheck, * fGlobalLimitCheck;
    36     IBOutlet NSTextField * fUploadLimitField, * fDownloadLimitField, * fRatioLimitField,
    37                         * fUploadLimitLabel, * fDownloadLimitLabel, * fPeersConnectLabel,
    38                         * fPeersConnectField;
     36    IBOutlet NSTextField * fUploadLimitField, * fDownloadLimitField, * fRatioLimitField, * fInactiveLimitField,
     37                        * fUploadLimitLabel, * fDownloadLimitLabel, * fInactiveLimitLabel, * fPeersConnectLabel, * fPeersConnectField;
    3938   
    4039    NSString * fInitialString;
    4140}
     
    5150- (void) setRatioSetting: (id) sender;
    5251- (void) setRatioLimit: (id) sender;
    5352
     53- (void) setInactiveSetting: (id) sender;
     54- (void) setInactiveLimit: (id) sender;
     55
    5456- (void) setPriority: (id) sender;
    5557
    5658- (void) setPeersConnectLimit: (id) sender;
  • macosx/InfoOptionsViewController.m

     
    139139    [fGlobalLimitCheck setState: globalUseSpeedLimit];
    140140    [fGlobalLimitCheck setEnabled: YES];
    141141   
    142     //get ratio info
     142    //get ratio and inactive info
    143143    enumerator = [fTorrents objectEnumerator];
    144144    torrent = [enumerator nextObject]; //first torrent
    145145   
    146     NSInteger checkRatio = [torrent ratioSetting];
     146    NSInteger checkRatio = [torrent ratioSetting], checkInactive = [torrent inactiveSetting];
    147147    CGFloat ratioLimit = [torrent ratioLimit];
     148    NSUInteger inactiveLimit = [torrent inactiveLimitMinutes];
    148149   
    149     while ((torrent = [enumerator nextObject]) && (checkRatio != INVALID || ratioLimit != INVALID))
     150    while ((torrent = [enumerator nextObject])
     151            && (checkRatio != INVALID || ratioLimit != INVALID || checkInactive != INVALID || inactiveLimit != INVALID))
    150152    {
    151153        if (checkRatio != INVALID && checkRatio != [torrent ratioSetting])
    152154            checkRatio = INVALID;
    153155       
    154156        if (ratioLimit != INVALID && ratioLimit != [torrent ratioLimit])
    155157            ratioLimit = INVALID;
     158       
     159        if (checkInactive != INVALID && checkInactive != [torrent inactiveSetting])
     160            checkInactive = INVALID;
     161       
     162        if (inactiveLimit != INVALID && inactiveLimit != [torrent inactiveLimitMinutes])
     163            inactiveLimit = INVALID;
    156164    }
    157165   
    158166    //set ratio view
     
    174182    else
    175183        [fRatioLimitField setStringValue: @""];
    176184   
     185    //set inactive view
     186    if (checkInactive == TR_INACTIVELIMIT_SINGLE)
     187        index = OPTION_POPUP_LIMIT;
     188    else if (checkInactive == TR_INACTIVELIMIT_UNLIMITED)
     189        index = OPTION_POPUP_NO_LIMIT;
     190    else if (checkInactive == TR_INACTIVELIMIT_GLOBAL)
     191        index = OPTION_POPUP_GLOBAL;
     192    else
     193        index = -1;
     194    [fInactivePopUp selectItemAtIndex: index];
     195    [fInactivePopUp setEnabled: YES];
     196   
     197    [fInactiveLimitField setHidden: checkInactive != TR_INACTIVELIMIT_SINGLE];
     198    [fInactiveLimitLabel setHidden: checkInactive != TR_INACTIVELIMIT_SINGLE];
     199    if (inactiveLimit != INVALID)
     200        [fInactiveLimitField setIntegerValue: inactiveLimit];
     201    else
     202        [fInactiveLimitField setStringValue: @""];
     203   
    177204    //get priority info
    178205    enumerator = [fTorrents objectEnumerator];
    179206    torrent = [enumerator nextObject]; //first torrent
     
    298325
    299326- (void) setRatioLimit: (id) sender
    300327{
    301     CGFloat limit = [sender floatValue];
     328    const CGFloat limit = [sender floatValue];
    302329   
    303330    for (Torrent * torrent in fTorrents)
    304331        [torrent setRatioLimit: limit];
    305332}
    306333
     334- (void) setInactiveSetting: (id) sender
     335{
     336    NSInteger setting;
     337    bool single = NO;
     338    switch ([sender indexOfSelectedItem])
     339    {
     340        case OPTION_POPUP_LIMIT:
     341            setting = TR_INACTIVELIMIT_SINGLE;
     342            single = YES;
     343            break;
     344        case OPTION_POPUP_NO_LIMIT:
     345            setting = TR_INACTIVELIMIT_UNLIMITED;
     346            break;
     347        case OPTION_POPUP_GLOBAL:
     348            setting = TR_INACTIVELIMIT_GLOBAL;
     349            break;
     350        default:
     351            NSAssert1(NO, @"Unknown option selected in inactive popup: %d", [sender indexOfSelectedItem]);
     352            return;
     353    }
     354   
     355    for (Torrent * torrent in fTorrents)
     356        [torrent setInactiveSetting: setting];
     357   
     358    [fInactiveLimitField setHidden: !single];
     359    if (single)
     360    {
     361        [fInactiveLimitField selectText: self];
     362        [[[self view] window] makeKeyAndOrderFront: self];
     363    }
     364}
     365
     366- (void) setInactiveLimit: (id) sender
     367{
     368    const NSUInteger limit = [sender integerValue];
     369   
     370    for (Torrent * torrent in fTorrents)
     371        [torrent setInactiveLimitMinutes: limit];
     372}
     373
    307374- (void) setPriority: (id) sender
    308375{
    309376    tr_priority_t priority;
     
    388455        [fRatioLimitField setHidden: YES];
    389456        [fRatioLimitField setStringValue: @""];
    390457       
     458        [fInactivePopUp setEnabled: NO];
     459        [fInactivePopUp selectItemAtIndex: -1];
     460        [fInactiveLimitField setHidden: YES];
     461        [fInactiveLimitField setStringValue: @""];
     462        [fInactiveLimitLabel setHidden: YES];
     463       
    391464        [fPeersConnectField setEnabled: NO];
    392465        [fPeersConnectField setStringValue: @""];
    393466        [fPeersConnectLabel setEnabled: NO];
  • macosx/Controller.m

     
    283283                                                                            [fDefaults objectForKey: @"SpeedLimitAutoOffDate"]]);
    284284        tr_bencDictAddInt(&settings, TR_PREFS_KEY_ALT_SPEED_TIME_DAY, [fDefaults integerForKey: @"SpeedLimitAutoDay"]);
    285285       
    286         tr_bencDictAddBool(&settings, TR_PREFS_KEY_START, [fDefaults boolForKey: @"AutoStartDownload"]);
    287        
    288286        tr_bencDictAddInt(&settings, TR_PREFS_KEY_DSPEED_KBps, [fDefaults integerForKey: @"DownloadLimit"]);
    289287        tr_bencDictAddBool(&settings, TR_PREFS_KEY_DSPEED_ENABLED, [fDefaults boolForKey: @"CheckDownload"]);
    290288        tr_bencDictAddInt(&settings, TR_PREFS_KEY_USPEED_KBps, [fDefaults integerForKey: @"UploadLimit"]);
     
    300298        tr_bencDictAddBool(&settings, TR_PREFS_KEY_DHT_ENABLED, [fDefaults boolForKey: @"DHTGlobal"]);
    301299        tr_bencDictAddStr(&settings, TR_PREFS_KEY_DOWNLOAD_DIR, [[[fDefaults stringForKey: @"DownloadFolder"]
    302300                                                                    stringByExpandingTildeInPath] UTF8String]);
     301        tr_bencDictAddInt(&settings, TR_PREFS_KEY_INACTIVE_LIMIT, [fDefaults integerForKey: @"InactiveLimitMinutes"]);
     302        tr_bencDictAddBool(&settings, TR_PREFS_KEY_INACTIVE_LIMIT_ENABLED, [fDefaults boolForKey: @"InactiveLimitCheck"]);
    303303        tr_bencDictAddStr(&settings, TR_PREFS_KEY_INCOMPLETE_DIR, [[[fDefaults stringForKey: @"IncompleteDownloadFolder"]
    304304                                                                    stringByExpandingTildeInPath] UTF8String]);
    305305        tr_bencDictAddBool(&settings, TR_PREFS_KEY_INCOMPLETE_DIR_ENABLED, [fDefaults boolForKey: @"UseIncompleteDownloadFolder"]);
     
    332332        tr_bencDictAddInt(&settings, TR_PREFS_KEY_RPC_PORT, [fDefaults integerForKey: @"RPCPort"]);
    333333        tr_bencDictAddStr(&settings, TR_PREFS_KEY_RPC_USERNAME,  [[fDefaults stringForKey: @"RPCUsername"] UTF8String]);
    334334        tr_bencDictAddBool(&settings, TR_PREFS_KEY_RPC_WHITELIST_ENABLED,  [fDefaults boolForKey: @"RPCUseWhitelist"]);
     335        tr_bencDictAddBool(&settings, TR_PREFS_KEY_START, [fDefaults boolForKey: @"AutoStartDownload"]);
    335336       
    336337        tr_formatter_size_init(1024, [NSLocalizedString(@"KB", "File size - kilobytes") UTF8String],
    337338                                    [NSLocalizedString(@"MB", "File size - megabytes") UTF8String],