Changeset 1030 for trunk/macosx/PrefsController.m
- Timestamp:
- Oct 25, 2006, 2:57:00 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/macosx/PrefsController.m
r1029 r1030 71 71 } 72 72 73 [[self window] update]; //make sure nib is loaded right away 73 //set download folder and import folder 74 fDownloadFolder = [[[fDefaults stringForKey: @"DownloadFolder"] stringByExpandingTildeInPath] retain]; 75 fImportFolder = [[[fDefaults stringForKey: @"AutoImportDirectory"] stringByExpandingTildeInPath] retain]; 76 77 //set auto import 78 if ([fDefaults boolForKey: @"AutoImport"]) 79 [[UKKQueue sharedFileWatcher] addPath: fImportFolder]; 80 81 //set bind port 82 int bindPort = [fDefaults integerForKey: @"BindPort"]; 83 tr_setBindPort(fHandle, bindPort); 84 85 //set NAT 86 if ([fDefaults boolForKey: @"NatTraversal"]) 87 tr_natTraversalEnable(fHandle); 88 89 //actually set bandwidth limits 90 if ([fDefaults boolForKey: @"SpeedLimit"]) 91 { 92 tr_setUploadLimit(fHandle, [fDefaults integerForKey: @"SpeedLimitUploadLimit"]); 93 tr_setDownloadLimit(fHandle, [fDefaults integerForKey: @"SpeedLimitDownloadLimit"]); 94 } 95 else 96 { 97 tr_setUploadLimit(fHandle, [fDefaults boolForKey: @"CheckUpload"] 98 ? [fDefaults integerForKey: @"UploadLimit"] : -1); 99 tr_setDownloadLimit(fHandle, [fDefaults boolForKey: @"CheckDownload"] 100 ? [fDefaults integerForKey: @"DownloadLimit"] : -1); 101 } 74 102 } 75 103 return self; … … 78 106 - (void) dealloc 79 107 { 80 [fNatStatusTimer invalidate]; 108 if (fNatStatusTimer) 109 [fNatStatusTimer invalidate]; 81 110 82 111 [fDownloadFolder release]; … … 99 128 //set download folder 100 129 NSString * downloadChoice = [fDefaults stringForKey: @"DownloadChoice"]; 101 fDownloadFolder = [[[fDefaults stringForKey: @"DownloadFolder"] stringByExpandingTildeInPath] retain];102 130 if ([downloadChoice isEqualToString: @"Constant"]) 103 131 [fFolderPopUp selectItemAtIndex: DOWNLOAD_FOLDER]; … … 109 137 110 138 //set auto import 111 fImportFolder = [[[fDefaults stringForKey: @"AutoImportDirectory"] stringByExpandingTildeInPath] retain];112 139 [self updateImportPopUp]; 113 140 … … 116 143 [fImportFolderPopUp setEnabled: autoImport]; 117 144 118 if (autoImport)119 [[UKKQueue sharedFileWatcher] addPath: fImportFolder];120 121 145 //set auto size 122 146 [fAutoSizeCheck setState: [fDefaults boolForKey: @"AutoSize"]]; … … 125 149 int bindPort = [fDefaults integerForKey: @"BindPort"]; 126 150 [fPortField setIntValue: bindPort]; 127 tr_setBindPort(fHandle, bindPort);128 129 151 [self updatePortStatus]; 130 152 131 153 //set NAT 132 BOOL natShouldEnable = [fDefaults boolForKey: @"NatTraversal"]; 133 if (natShouldEnable) 134 tr_natTraversalEnable(fHandle); 135 [fNatCheck setState: natShouldEnable]; 154 [fNatCheck setState: [fDefaults boolForKey: @"NatTraversal"]]; 136 155 137 156 fNatStatus = -1; … … 142 161 //set upload limit 143 162 BOOL checkUpload = [fDefaults boolForKey: @"CheckUpload"]; 144 int uploadLimit = [fDefaults integerForKey: @"UploadLimit"];145 146 163 [fUploadCheck setState: checkUpload]; 147 [fUploadField setIntValue: uploadLimit];164 [fUploadField setIntValue: [fDefaults integerForKey: @"UploadLimit"]]; 148 165 [fUploadField setEnabled: checkUpload]; 149 166 150 167 //set download limit 151 168 BOOL checkDownload = [fDefaults boolForKey: @"CheckDownload"]; 152 int downloadLimit = [fDefaults integerForKey: @"DownloadLimit"];153 154 169 [fDownloadCheck setState: checkDownload]; 155 [fDownloadField setIntValue: downloadLimit];170 [fDownloadField setIntValue: [fDefaults integerForKey: @"DownloadLimit"]]; 156 171 [fDownloadField setEnabled: checkDownload]; 157 172 158 173 //set speed limit 159 int speedLimitUploadLimit = [fDefaults integerForKey: @"SpeedLimitUploadLimit"]; 160 [fSpeedLimitUploadField setIntValue: speedLimitUploadLimit]; 161 162 int speedLimitDownloadLimit = [fDefaults integerForKey: @"SpeedLimitDownloadLimit"]; 163 [fSpeedLimitDownloadField setIntValue: speedLimitDownloadLimit]; 164 165 //actually set bandwidth limits 166 if ([fDefaults boolForKey: @"SpeedLimit"]) 167 { 168 tr_setUploadLimit(fHandle, speedLimitUploadLimit); 169 tr_setDownloadLimit(fHandle, speedLimitDownloadLimit); 170 } 171 else 172 { 173 tr_setUploadLimit(fHandle, checkUpload ? uploadLimit : -1); 174 tr_setDownloadLimit(fHandle, checkDownload ? downloadLimit : -1); 175 } 174 [fSpeedLimitUploadField setIntValue: [fDefaults integerForKey: @"SpeedLimitUploadLimit"]]; 175 [fSpeedLimitDownloadField setIntValue: [fDefaults integerForKey: @"SpeedLimitDownloadLimit"]]; 176 176 177 177 //set auto speed limit … … 279 279 else 280 280 [fUpdatePopUp selectItemAtIndex: UPDATE_DAILY]; 281 } 282 283 - (void) setUpdater: (SUUpdater *) updater 284 { 285 fUpdater = updater; 281 286 } 282 287 … … 482 487 } 483 488 484 NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys: 485 [NSNumber numberWithBool: [check state]], @"Enable", 486 [NSNumber numberWithInt: limit], @"Limit", 487 type, @"Type", nil]; 488 [[NSNotificationCenter defaultCenter] postNotificationName: @"LimitGlobalChange" object: dict]; 489 [[NSNotificationCenter defaultCenter] postNotificationName: @"LimitGlobalChange" 490 object: [[NSNumber alloc] initWithBool: sender == fUploadField]]; 489 491 } 490 492 … … 511 513 } 512 514 513 - (void) setLimitEnabled: (BOOL) enable type: (NSString *) type 514 { 515 NSButton * check = [type isEqualToString: @"Upload"] ? fUploadCheck : fDownloadCheck; 516 [check setState: enable ? NSOnState : NSOffState]; 517 [self setLimitCheck: check]; 515 - (void) setQuickLimitEnabled: (BOOL) enable type: (NSString *) type 516 { 517 //if interface is loaded, perform change as if user performed it 518 #warning better way? 519 if (fToolbar) 520 { 521 NSButton * check = [type isEqualToString: @"Upload"] ? fUploadCheck : fDownloadCheck; 522 [check setState: enable ? NSOnState : NSOffState]; 523 [self setLimitCheck: check]; 524 } 525 else 526 { 527 BOOL upload = [type isEqualToString: @"Upload"]; 528 [fDefaults setBool: enable forKey: upload ? @"CheckUpload" : @"CheckDownload"]; 529 530 [[NSNotificationCenter defaultCenter] postNotificationName: @"LimitGlobalChange" 531 object: [[NSNumber alloc] initWithBool: upload]]; 532 } 518 533 } 519 534 520 535 - (void) setQuickLimit: (int) limit type: (NSString *) type 521 536 { 522 NSButton * check; 523 if ([type isEqualToString: @"Upload"]) 524 { 525 [fUploadField setIntValue: limit]; 526 check = fUploadCheck; 527 } 528 else 529 { 530 [fDownloadField setIntValue: limit]; 531 check = fDownloadCheck; 532 } 533 [check setState: NSOnState]; 534 [self setLimitCheck: check]; 537 //if interface is loaded, perform change as if user performed it 538 #warning better way? 539 if (fToolbar) 540 { 541 NSButton * check; 542 if ([type isEqualToString: @"Upload"]) 543 { 544 [fUploadField setIntValue: limit]; 545 check = fUploadCheck; 546 } 547 else 548 { 549 [fDownloadField setIntValue: limit]; 550 check = fDownloadCheck; 551 } 552 [check setState: NSOnState]; 553 [self setLimitCheck: check]; 554 } 555 else 556 { 557 BOOL upload = [type isEqualToString: @"Upload"]; 558 [fDefaults setBool: YES forKey: upload ? @"CheckUpload" : @"CheckDownload"]; 559 [fDefaults setInteger: limit forKey: upload ? @"UploadLimit" : @"DownloadLimit"]; 560 561 [[NSNotificationCenter defaultCenter] postNotificationName: @"LimitGlobalChange" 562 object: [[NSNumber alloc] initWithBool: upload]]; 563 } 535 564 } 536 565 … … 548 577 else 549 578 { 550 tr_setUploadLimit(fHandle, [fUploadCheck state] ? [fDefaults integerForKey: @"UploadLimit"] : -1); 551 tr_setDownloadLimit(fHandle, [fDownloadCheck state] ? [fDefaults integerForKey: @"DownloadLimit"] : -1); 579 tr_setUploadLimit(fHandle, [fDefaults boolForKey: @"CheckUpload"] 580 ? [fDefaults integerForKey: @"UploadLimit"] : -1); 581 tr_setDownloadLimit(fHandle, [fDefaults boolForKey: @"CheckDownload"] 582 ? [fDefaults integerForKey: @"DownloadLimit"] : -1); 552 583 } 553 584 } … … 628 659 [fDefaults setFloat: ratioLimit forKey: @"RatioLimit"]; 629 660 630 NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys: 631 [NSNumber numberWithBool: [fRatioCheck state]], @"Enable", 632 [NSNumber numberWithFloat: ratioLimit], @"Ratio", nil]; 633 [[NSNotificationCenter defaultCenter] postNotificationName: @"RatioGlobalChange" object: dict]; 661 [[NSNotificationCenter defaultCenter] postNotificationName: @"RatioGlobalChange" object: nil]; 634 662 } 635 663 … … 643 671 } 644 672 645 - (void) setRatioEnabled: (BOOL) enable 646 { 647 int state = enable ? NSOnState : NSOffState; 648 649 [fRatioCheck setState: state]; 650 [self setRatioCheck: fRatioCheck]; 673 - (void) setQuickRatioEnabled: (BOOL) enable 674 { 675 //if interface is loaded, perform change as if user performed it 676 #warning better way? 677 if (fToolbar) 678 { 679 int state = enable ? NSOnState : NSOffState; 680 681 [fRatioCheck setState: state]; 682 [self setRatioCheck: fRatioCheck]; 683 } 684 else 685 { 686 [fDefaults setBool: enable forKey: @"RatioCheck"]; 687 688 [[NSNotificationCenter defaultCenter] postNotificationName: @"RatioGlobalChange" object: nil]; 689 } 651 690 } 652 691 653 692 - (void) setQuickRatio: (float) ratioLimit 654 693 { 655 [fRatioField setFloatValue: ratioLimit]; 656 657 [fRatioCheck setState: NSOnState]; 658 [self setRatioCheck: fRatioCheck]; 694 //if interface is loaded, perform change as if user performed it 695 #warning better way? 696 if (fToolbar) 697 { 698 [fRatioField setFloatValue: ratioLimit]; 699 700 [fRatioCheck setState: NSOnState]; 701 [self setRatioCheck: fRatioCheck]; 702 } 703 else 704 { 705 [fDefaults setBool: YES forKey: @"RatioCheck"]; 706 [fDefaults setFloat: ratioLimit forKey: @"RatioLimit"]; 707 708 [[NSNotificationCenter defaultCenter] postNotificationName: @"RatioGlobalChange" object: nil]; 709 } 659 710 } 660 711 … … 744 795 745 796 [fDefaults setInteger: seconds forKey: @"SUScheduledCheckInterval"]; 746 [fUpdater scheduleCheckWithInterval: seconds]; 797 798 if (fUpdater) 799 [fUpdater scheduleCheckWithInterval: seconds]; 747 800 } 748 801 … … 811 864 } 812 865 813 - (void) checkUpdate814 {815 [fUpdater checkForUpdates: nil];816 }817 818 866 - (void) folderSheetShow: (id) sender 819 867 {
Note: See TracChangeset
for help on using the changeset viewer.