1/****************************************************************************** 2 * $Id: PrefsController.h 13449 2012-08-19 19:06:52Z livings124 $ 3 * 4 * Copyright (c) 2005-2012 Transmission authors and contributors 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a 7 * copy of this software and associated documentation files (the "Software"), 8 * to deal in the Software without restriction, including without limitation 9 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 * and/or sell copies of the Software, and to permit persons to whom the 11 * Software is furnished to do so, subject to the following conditions: 12 * 13 * The above copyright notice and this permission notice shall be included in 14 * all copies or substantial portions of the Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 * DEALINGS IN THE SOFTWARE. 23 *****************************************************************************/ 24 25#import <Cocoa/Cocoa.h> 26#import <transmission.h> 27 28@class PortChecker; 29 30@interface PrefsController : NSWindowController <NSToolbarDelegate> 31{ 32 tr_session * fHandle; 33 NSUserDefaults * fDefaults; 34 BOOL fHasLoaded; 35 36 IBOutlet NSView * fGeneralView, * fTransfersView, * fBandwidthView, * fPeersView, * fNetworkView, * fRemoteView, * fGroupsView; 37 38 NSString * fInitialString; 39 40 IBOutlet NSButton * fBuiltInGrowlButton, *fGrowlAppButton; 41 IBOutlet NSTextField * fCheckForUpdatesLabel; 42 IBOutlet NSButton * fCheckForUpdatesButton, * fCheckForUpdatesBetaButton; 43 44 IBOutlet NSPopUpButton * fFolderPopUp, * fIncompleteFolderPopUp, * fImportFolderPopUp, * fDoneScriptPopUp; 45 IBOutlet NSTextField * fRatioStopField, * fIdleStopField, * fQueueDownloadField, * fQueueSeedField, * fStalledField; 46 47 IBOutlet NSTextField * fUploadField, * fDownloadField, 48 * fSpeedLimitUploadField, * fSpeedLimitDownloadField; 49 IBOutlet NSPopUpButton * fAutoSpeedDayTypePopUp; 50 51 IBOutlet NSTextField * fPeersGlobalField, * fPeersTorrentField, 52 * fBlocklistURLField, * fBlocklistMessageField, * fBlocklistDateField; 53 IBOutlet NSButton * fBlocklistButton; 54 55 PortChecker * fPortChecker; 56 IBOutlet NSTextField * fPortField, * fPortStatusField; 57 IBOutlet NSButton * fNatCheck; 58 IBOutlet NSImageView * fPortStatusImage; 59 IBOutlet NSProgressIndicator * fPortStatusProgress; 60 NSTimer * fPortStatusTimer; 61 int fPeerPort, fNatStatus; 62 63 IBOutlet NSTextField * fRPCPortField, * fRPCPasswordField; 64 IBOutlet NSTableView * fRPCWhitelistTable; 65 NSMutableArray * fRPCWhitelistArray; 66 IBOutlet NSSegmentedControl * fRPCAddRemoveControl; 67 NSString * fRPCPassword; 68} 69 70- (id) initWithHandle: (tr_session *) handle; 71 72- (void) setAutoUpdateToBeta: (id) sender; 73 74- (void) setPort: (id) sender; 75- (void) randomPort: (id) sender; 76- (void) setRandomPortOnStart: (id) sender; 77- (void) setNat: (id) sender; 78- (void) updatePortStatus; 79- (void) portCheckerDidFinishProbing: (PortChecker *) portChecker; 80 81- (NSArray *) sounds; 82- (void) setSound: (id) sender; 83 84- (void) setUTP: (id) sender; 85 86- (void) setPeersGlobal: (id) sender; 87- (void) setPeersTorrent: (id) sender; 88 89- (void) setPEX: (id) sender; 90- (void) setDHT: (id) sender; 91- (void) setLPD: (id) sender; 92 93- (void) setEncryptionMode: (id) sender; 94 95- (void) setBlocklistEnabled: (id) sender; 96- (void) updateBlocklist: (id) sender; 97- (void) setBlocklistAutoUpdate: (id) sender; 98- (void) updateBlocklistFields; 99- (void) updateBlocklistURLField; 100- (void) updateBlocklistButton; 101 102- (void) setAutoStartDownloads: (id) sender; 103 104- (void) setBadge: (id) sender; 105 106- (IBAction) setBuiltInGrowlEnabled: (id) sender; 107- (IBAction) openGrowlApp: (id) sender; 108- (void) openNotificationSystemPrefs: (id) sender; 109 110- (void) resetWarnings: (id) sender; 111 112- (void) setDefaultForMagnets: (id) sender; 113 114- (void) setQueue: (id) sender; 115- (void) setQueueNumber: (id) sender; 116 117- (void) setStalled: (id) sender; 118- (void) setStalledMinutes: (id) sender; 119 120- (void) setDownloadLocation: (id) sender; 121- (void) folderSheetShow: (id) sender; 122- (void) incompleteFolderSheetShow: (id) sender; 123- (void) setUseIncompleteFolder: (id) sender; 124 125- (void) setRenamePartialFiles: (id) sender; 126 127- (void) setDoneScriptEnabled: (id) sender; 128- (void) doneScriptSheetShow: (id) sender; 129 130- (void) applyRatioSetting: (id) sender; 131- (void) setRatioStop: (id) sender; 132- (void) updateRatioStopField; 133- (void) updateRatioStopFieldOld; 134 135- (void) applyIdleStopSetting: (id) sender; 136- (void) setIdleStop: (id) sender; 137- (void) updateLimitStopField; 138 139- (void) applySpeedSettings: (id) sender; 140- (void) applyAltSpeedSettings; 141 142- (void) updateLimitFields; 143- (void) setGlobalLimit: (id) sender; 144 145- (void) setSpeedLimit: (id) sender; 146- (void) setAutoSpeedLimit: (id) sender; 147- (void) setAutoSpeedLimitTime: (id) sender; 148- (void) setAutoSpeedLimitDay: (id) sender; 149+ (NSInteger) dateToTimeSum: (NSDate *) date; 150+ (NSDate *) timeSumToDate: (NSInteger) sum; 151 152- (void) setAutoImport: (id) sender; 153- (void) importFolderSheetShow: (id) sender; 154 155- (void) setAutoSize: (id) sender; 156 157- (void) setRPCEnabled: (id) sender; 158- (void) linkWebUI: (id) sender; 159- (void) setRPCAuthorize: (id) sender; 160- (void) setRPCUsername: (id) sender; 161- (void) setRPCPassword: (id) sender; 162- (void) updateRPCPassword; 163- (void) setRPCPort: (id) sender; 164- (void) setRPCUseWhitelist: (id) sender; 165- (void) setRPCWebUIDiscovery: (id) sender; 166- (void) updateRPCWhitelist; 167- (void) addRemoveRPCIP: (id) sender; 168 169- (void) helpForScript: (id) sender; 170- (void) helpForPeers: (id) sender; 171- (void) helpForNetwork: (id) sender; 172- (void) helpForRemote: (id) sender; 173 174- (void) rpcUpdatePrefs; 175 176@end 177