Ignore:
Timestamp:
Apr 4, 2009, 3:39:06 AM (13 years ago)
Author:
livings124
Message:

#1679 speed limit for specific day(s) only in Mac gui

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/macosx/PrefsController.m

    r8127 r8131  
    3737#define DOWNLOAD_TORRENT    2
    3838
     39#define SCHED_ALL_TAG       0
     40#define SCHED_WEEKDAY_TAG   1
     41#define SCHED_WEEKEND_TAG   2
     42#define SCHED_MON_TAG       3
     43#define SCHED_TUES_TAG      4
     44#define SCHED_WED_TAG       5
     45#define SCHED_THURS_TAG     6
     46#define SCHED_FRI_TAG       7
     47#define SCHED_SAT_TAG       8
     48#define SCHED_SUN_TAG       9
     49
    3950#define PROXY_HTTP      0
    4051#define PROXY_SOCKS4    1
     
    101112        }
    102113       
     114        //set auto speed limit day
     115        [self updateAutoSpeedLimitDay];
     116       
    103117        //save a new random port
    104118        if ([fDefaults boolForKey: @"RandomPort"])
     
    188202    [fSpeedLimitDownloadField setIntValue: [fDefaults integerForKey: @"SpeedLimitDownloadLimit"]];
    189203   
     204    int schedDay;
     205    switch (tr_sessionGetAltSpeedDay(fHandle))
     206    {
     207        case TR_SCHED_ALL:
     208            schedDay = SCHED_ALL_TAG;
     209            break;
     210        case TR_SCHED_WEEKDAY:
     211            schedDay = SCHED_WEEKDAY_TAG;
     212            break;
     213        case TR_SCHED_WEEKEND:
     214            schedDay = SCHED_WEEKEND_TAG;
     215            break;
     216        case TR_SCHED_MON:
     217            schedDay = SCHED_MON_TAG;
     218            break;
     219        case TR_SCHED_TUES:
     220            schedDay = SCHED_TUES_TAG;
     221            break;
     222        case TR_SCHED_WED:
     223            schedDay = SCHED_WED_TAG;
     224            break;
     225        case TR_SCHED_THURS:
     226            schedDay = SCHED_THURS_TAG;
     227            break;
     228        case TR_SCHED_FRI:
     229            schedDay = SCHED_FRI_TAG;
     230            break;
     231        case TR_SCHED_SAT:
     232            schedDay = SCHED_SAT_TAG;
     233            break;
     234        case TR_SCHED_SUN:
     235            schedDay = SCHED_SUN_TAG;
     236            break;
     237    }
     238    [fAutoSpeedDayTypePopUp selectItemWithTag: schedDay];
     239   
    190240    //set port
    191241    [fPortField setIntValue: [fDefaults integerForKey: @"BindPort"]];
     
    208258    [fProxyAddressField setStringValue: [fDefaults stringForKey: @"ProxyAddress"]];
    209259    int proxyType;
    210     switch(tr_sessionGetProxyType(fHandle))
     260    switch (tr_sessionGetProxyType(fHandle))
    211261    {
    212262        case TR_PROXY_SOCKS4:
     
    608658    tr_sessionSetAltSpeedBegin(fHandle, [PrefsController dateToTimeSum: [fDefaults objectForKey: @"SpeedLimitAutoOnDate"]]);
    609659    tr_sessionSetAltSpeedEnd(fHandle, [PrefsController dateToTimeSum: [fDefaults objectForKey: @"SpeedLimitAutoOffDate"]]);
     660}
     661
     662- (void) setAutoSpeedLimitDay: (id) sender
     663{
     664    NSString * day;
     665    switch ([[sender selectedItem] tag])
     666    {
     667        case SCHED_ALL_TAG:
     668            day = @"ALL";
     669            break;
     670        case SCHED_WEEKDAY_TAG:
     671            day = @"WEEKDAY";
     672            break;
     673        case SCHED_WEEKEND_TAG:
     674            day = @"WEEKEND";
     675            break;
     676        case SCHED_MON_TAG:
     677            day = @"MON";
     678            break;
     679        case SCHED_TUES_TAG:
     680            day = @"TUES";
     681            break;
     682        case SCHED_WED_TAG:
     683            day = @"WED";
     684            break;
     685        case SCHED_THURS_TAG:
     686            day = @"THURS";
     687            break;
     688        case SCHED_FRI_TAG:
     689            day = @"FRI";
     690            break;
     691        case SCHED_SAT_TAG:
     692            day = @"SAT";
     693            break;
     694        case SCHED_SUN_TAG:
     695            day = @"SUN";
     696            break;
     697    }
     698   
     699    [fDefaults setObject: day forKey: @"SpeedLimitAutoDay"];
     700    [self updateAutoSpeedLimitDay];
     701}
     702
     703- (void) updateAutoSpeedLimitDay
     704{
     705    NSString * dayString = [fDefaults stringForKey: @"SpeedLimitAutoDay"];
     706    tr_sched_day day;
     707    if ([dayString isEqualToString: @"WEEKDAY"])
     708        day = TR_SCHED_WEEKDAY;
     709    else if ([dayString isEqualToString: @"WEEKEND"])
     710        day = TR_SCHED_WEEKEND;
     711    else if ([dayString isEqualToString: @"MON"])
     712        day = TR_SCHED_MON;
     713    else if ([dayString isEqualToString: @"TUES"])
     714        day = TR_SCHED_TUES;
     715    else if ([dayString isEqualToString: @"WED"])
     716        day = TR_SCHED_WED;
     717    else if ([dayString isEqualToString: @"THURS"])
     718        day = TR_SCHED_THURS;
     719    else if ([dayString isEqualToString: @"FRI"])
     720        day = TR_SCHED_FRI;
     721    else if ([dayString isEqualToString: @"SAT"])
     722        day = TR_SCHED_SAT;
     723    else if ([dayString isEqualToString: @"SUN"])
     724        day = TR_SCHED_SUN;
     725    else
     726    {
     727        //safety
     728        if (![dayString isEqualToString: @"ALL"])
     729        {
     730            dayString = @"ALL";
     731            [fDefaults setObject: dayString forKey: @"SpeedLimitAutoDay"];
     732        }
     733        day = TR_SCHED_ALL;
     734    }
     735   
     736    tr_sessionSetAltSpeedDay(fHandle, day);
    610737}
    611738
Note: See TracChangeset for help on using the changeset viewer.