Changeset 490


Ignore:
Timestamp:
Jun 30, 2006, 11:43:43 PM (16 years ago)
Author:
livings124
Message:

Speed Limit: a way to quickly change the upload and download limits for when less bandwidth has to be used.

Location:
trunk/macosx
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/macosx/Controller.h

    r463 r490  
    5050    NSToolbar                   * fToolbar;
    5151   
    52     IBOutlet NSMenuItem         * fAdvancedBarItem;
     52    IBOutlet NSMenuItem         * fAdvancedBarItem, * fSpeedLimitItem;
    5353    IBOutlet NSButton           * fActionButton;
    5454   
     
    125125- (void) setSort: (id) sender;
    126126
     127- (void) toggleSpeedLimit: (id) sender;
     128
    127129- (void) setLimitGlobalEnabled: (id) sender;
    128130- (void) setQuickLimitGlobal: (id) sender;
  • trunk/macosx/Controller.m

    r489 r490  
    126126    [self showStatusBar: [fDefaults boolForKey: @"StatusBar"] animate: NO];
    127127   
     128    //set speed limit
     129    BOOL speedLimit = [fDefaults boolForKey: @"SpeedLimit"];
     130    [fSpeedLimitItem setState: speedLimit];
     131   
    128132    [fActionButton setToolTip: @"Shortcuts for changing global settings."];
    129133
     
    916920}
    917921
     922- (void) toggleSpeedLimit: (id) sender
     923{
     924    BOOL enable = [fSpeedLimitItem state] == NSOffState;
     925
     926    [fSpeedLimitItem setState: enable];
     927    [fDefaults setBool: enable forKey: @"SpeedLimit"];
     928
     929    [fPrefsController enableSpeedLimit: enable];
     930}
     931
    918932- (void) setLimitGlobalEnabled: (id) sender
    919933{
  • trunk/macosx/Defaults.plist

    r484 r490  
    5151        <key>Sort</key>
    5252        <string>Order</string>
     53        <key>SpeedLimit</key>
     54        <false/>
     55        <key>SpeedLimitDownloadLimit</key>
     56        <integer>10</integer>
     57        <key>SpeedLimitUploadLimit</key>
     58        <integer>10</integer>
    5359        <key>StartSetting</key>
    5460        <string>Start</string>
  • trunk/macosx/English.lproj/MainMenu.nib/classes.nib

    r463 r490  
    2727                stopAllTorrents = id;
    2828                stopTorrent = id;
     29                toggleSpeedLimit = id;
    2930                toggleStatusBar = id;
    3031            };
     
    4647                fRatioSetItem = NSMenuItem;
    4748                fScrollView = NSScrollView;
     49                fSpeedLimitItem = NSMenuItem;
    4850                fStateSortItem = NSMenuItem;
    4951                fStatusBar = SmoothAquaView;
  • trunk/macosx/English.lproj/MainMenu.nib/info.nib

    r463 r490  
    3131        <array>
    3232                <integer>29</integer>
    33                 <integer>21</integer>
    3433        </array>
    3534        <key>IBSystem Version</key>
    36         <string>8I127</string>
     35        <string>8J135</string>
    3736</dict>
    3837</plist>
  • trunk/macosx/English.lproj/PrefsWindow.nib/classes.nib

    r486 r490  
    1515                setRatioCheck = id;
    1616                setShowMessage = id;
     17                setSpeedLimit = id;
    1718                setStartSetting = id;
    1819                setUpdate = id;
     
    3940                fRemoveCheck = NSButton;
    4041                fRemoveDownloadingCheck = NSButton;
     42                fSpeedLimitDownloadField = NSTextField;
     43                fSpeedLimitUploadField = NSTextField;
    4144                fStartMatrix = NSMatrix;
    4245                fTransfersView = NSView;
  • trunk/macosx/English.lproj/PrefsWindow.nib/info.nib

    r486 r490  
    88        <dict>
    99                <key>153</key>
    10                 <string>261 290 536 130 0 0 1152 842 </string>
     10                <string>302 469 548 217 0 0 1152 842 </string>
    1111                <key>28</key>
    12                 <string>308 451 536 254 0 0 1152 842 </string>
     12                <string>122 427 548 254 0 0 1152 842 </string>
    1313                <key>41</key>
    14                 <string>308 438 536 280 0 0 1152 842 </string>
     14                <string>130 394 548 297 0 0 1152 842 </string>
    1515                <key>66</key>
    16                 <string>300 526 551 104 0 0 1152 842 </string>
     16                <string>182 510 548 104 0 0 1152 842 </string>
    1717        </dict>
    1818        <key>IBFramework Version</key>
     
    2121        <array>
    2222                <integer>153</integer>
    23                 <integer>28</integer>
    2423        </array>
    2524        <key>IBSystem Version</key>
  • trunk/macosx/PrefsController.h

    r486 r490  
    4141    IBOutlet NSPopUpButton  * fUpdatePopUp;
    4242
    43     IBOutlet NSTextField    * fPortField, * fUploadField, * fDownloadField;
     43    IBOutlet NSTextField    * fUploadField, * fDownloadField,
     44                            * fSpeedLimitUploadField, * fSpeedLimitDownloadField;
    4445    IBOutlet NSButton       * fUploadCheck, * fDownloadCheck;
     46
     47    IBOutlet NSTextField    * fPortField;
    4548   
    4649    IBOutlet NSButton       * fRatioCheck;
     
    5356
    5457    NSString                * fDownloadFolder;
     58    BOOL                    fSpeedLimit;
    5559    NSUserDefaults          * fDefaults;
    5660}
     
    5862- (void) setPrefs: (tr_handle_t *) handle;
    5963
    60 - (void) setShowMessage:        (id) sender;
    61 - (void) setBadge:              (id) sender;
    62 - (void) setUpdate:             (id) sender;
     64- (void) setShowMessage:    (id) sender;
     65- (void) setBadge:          (id) sender;
     66- (void) setUpdate:         (id) sender;
    6367- (void) checkUpdate;
    6468
     
    7074- (void) folderSheetShow:       (id) sender;
    7175
    72 - (void) setPort:               (id) sender;
     76- (void) setPort:       (id) sender;
     77- (void) setSpeedLimit: (id) sender;
    7378
    74 - (void) setLimit:              (id) sender;
    75 - (void) setLimitCheck:         (id) sender;
    76 - (void) setLimitEnabled:       (BOOL) enable type: (NSString *) type;
    77 - (void) setQuickLimit:         (int) limit type: (NSString *) type;
     79- (void) setLimit:          (id) sender;
     80- (void) setLimitCheck:     (id) sender;
     81- (void) setLimitEnabled:   (BOOL) enable type: (NSString *) type;
     82- (void) setQuickLimit:     (int) limit type: (NSString *) type;
    7883
    79 - (void) setRatio:              (id) sender;
    80 - (void) setRatioCheck:                 (id) sender;
    81 - (void) setRatioEnabled:       (BOOL) enable;
    82 - (void) setQuickRatio:         (float) ratioLimit;
     84- (void) enableSpeedLimit: (BOOL) enable;
     85
     86- (void) setRatio:          (id) sender;
     87- (void) setRatioCheck:     (id) sender;
     88- (void) setRatioEnabled:   (BOOL) enable;
     89- (void) setQuickRatio: (float) ratioLimit;
    8390
    8491@end
  • trunk/macosx/PrefsController.m

    r486 r490  
    122122    [fUploadField setIntValue: uploadLimit];
    123123    [fUploadField setEnabled: checkUpload];
    124    
    125     tr_setUploadLimit(fHandle, checkUpload ? uploadLimit : -1);
    126124
    127125        //set download limit
     
    133131    [fDownloadField setEnabled: checkDownload];
    134132   
    135     tr_setDownloadLimit(fHandle, checkDownload ? downloadLimit : -1);
     133    //set speed limit
     134    fSpeedLimit = [fDefaults boolForKey: @"SpeedLimit"];
     135   
     136    int speedLimitUploadLimit = [fDefaults integerForKey: @"SpeedLimitUploadLimit"];
     137    [fSpeedLimitUploadField setIntValue: speedLimitUploadLimit];
     138   
     139    int speedLimitDownloadLimit = [fDefaults integerForKey: @"SpeedLimitDownloadLimit"];
     140    [fSpeedLimitDownloadField setIntValue: speedLimitDownloadLimit];
     141   
     142    //actually set bandwidth limits
     143    if (fSpeedLimit)
     144    {
     145        tr_setUploadLimit(fHandle, speedLimitUploadLimit);
     146        tr_setDownloadLimit(fHandle, speedLimitDownloadLimit);
     147    }
     148    else
     149    {
     150        tr_setUploadLimit(fHandle, checkUpload ? uploadLimit : -1);
     151        tr_setDownloadLimit(fHandle, checkDownload ? downloadLimit : -1);
     152    }
    136153   
    137154    //set ratio limit
     
    293310    else
    294311    {
    295         if (sender == fUploadField)
    296             tr_setUploadLimit(fHandle, [fUploadCheck state] == NSOffState ? -1 : limit);
    297         else
    298             tr_setDownloadLimit(fHandle, [fDownloadCheck state] == NSOffState ? -1 : limit);
     312        if (!fSpeedLimit)
     313        {
     314            if (sender == fUploadField)
     315                tr_setUploadLimit(fHandle, [fUploadCheck state] ? limit : -1);
     316            else
     317                tr_setDownloadLimit(fHandle, [fDownloadCheck state] ? limit : -1);
     318        }
    299319       
    300320        [fDefaults setInteger: limit forKey: key];
     
    352372    [check setState: NSOnState];
    353373    [self setLimitCheck: check];
     374}
     375
     376- (void) enableSpeedLimit: (BOOL) enable
     377{
     378    if (fSpeedLimit != enable)
     379    {
     380        fSpeedLimit = enable;
     381        [fDefaults setBool: fSpeedLimit forKey: @"SpeedLimit"];
     382       
     383        if (fSpeedLimit)
     384        {
     385            tr_setUploadLimit(fHandle, [fDefaults integerForKey: @"SpeedLimitUploadLimit"]);
     386            tr_setDownloadLimit(fHandle, [fDefaults integerForKey: @"SpeedLimitDownloadLimit"]);
     387        }
     388        else
     389        {
     390            tr_setUploadLimit(fHandle, [fUploadCheck state] ? [fDefaults integerForKey: @"UploadLimit"] : -1);
     391            tr_setDownloadLimit(fHandle, [fDownloadCheck state] ? [fDefaults integerForKey: @"DownloadLimit"] : -1);
     392        }
     393    }
     394}
     395
     396- (void) setSpeedLimit: (id) sender
     397{
     398    NSString * key;
     399    if (sender == fSpeedLimitUploadField)
     400        key = @"SpeedLimitUploadLimit";
     401    else
     402        key = @"SpeedLimitDownloadLimit";
     403
     404    int limit = [sender intValue];
     405    if (![[sender stringValue] isEqualToString: [NSString stringWithFormat: @"%d", limit]]
     406            || limit < 0)
     407    {
     408        NSBeep();
     409        limit = [fDefaults integerForKey: key];
     410        [sender setIntValue: limit];
     411    }
     412    else
     413    {
     414        if (fSpeedLimit)
     415        {
     416            if (sender == fSpeedLimitUploadField)
     417                tr_setUploadLimit(fHandle, limit);
     418            else
     419                tr_setDownloadLimit(fHandle, limit);
     420        }
     421       
     422        [fDefaults setInteger: limit forKey: key];
     423    }
    354424}
    355425
Note: See TracChangeset for help on using the changeset viewer.