1 /******************************************************************************
2 * $Id: PrefsController.h 11617 2011-01-01 20:42:14Z livings124 $
4 * Copyright (c) 2005-2011 Transmission authors and contributors
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:
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
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 *****************************************************************************/
25 #import <Cocoa/Cocoa.h>
26 #import <transmission.h>
30 @interface PrefsController
: NSWindowController
32 NSUserDefaults
* fDefaults
;
35 IBOutlet NSView
* fGeneralView
, * fTransfersView
, * fBandwidthView
, * fPeersView
, * fNetworkView
, * fRemoteView
, * fGroupsView
;
37 NSString
* fInitialString
;
39 IBOutlet NSTextField
* fCheckForUpdatesLabel
;
40 IBOutlet NSButton
* fCheckForUpdatesButton
, * fCheckForUpdatesBetaButton
;
42 IBOutlet NSPopUpButton
* fFolderPopUp
, * fIncompleteFolderPopUp
, * fImportFolderPopUp
, * fDoneScriptPopUp
;
43 IBOutlet NSTextField
* fRatioStopField
, * fIdleStopField
, * fQueueDownloadField
, * fQueueSeedField
, * fStalledField
;
45 IBOutlet NSTextField
* fUploadField
, * fDownloadField
,
46 * fSpeedLimitUploadField
, * fSpeedLimitDownloadField
;
47 IBOutlet NSPopUpButton
* fAutoSpeedDayTypePopUp
;
49 IBOutlet NSTextField
* fPeersGlobalField
, * fPeersTorrentField
,
50 * fBlocklistURLField
, * fBlocklistMessageField
, * fBlocklistDateField
;
51 IBOutlet NSButton
* fBlocklistButton
;
53 PortChecker
* fPortChecker
;
54 IBOutlet NSTextField
* fPortField
, * fPortStatusField
;
55 IBOutlet NSButton
* fNatCheck
;
56 IBOutlet NSImageView
* fPortStatusImage
;
57 IBOutlet NSProgressIndicator
* fPortStatusProgress
;
58 NSTimer
* fPortStatusTimer
;
59 int fPeerPort
, fNatStatus
;
61 IBOutlet NSTextField
* fRPCPortField
, * fRPCPasswordField
;
62 IBOutlet NSTableView
* fRPCWhitelistTable
;
63 NSMutableArray
* fRPCWhitelistArray
;
64 IBOutlet NSSegmentedControl
* fRPCAddRemoveControl
;
65 NSString
* fRPCPassword
;
68 + (void) setHandle
: (tr_session
*) handle
;
69 + (tr_session
*) handle
;
71 - (void) setAutoUpdateToBeta
: (id
) sender
;
73 - (void) setPort
: (id
) sender
;
74 - (void) randomPort
: (id
) sender
;
75 - (void) setRandomPortOnStart
: (id
) sender
;
76 - (void) setNat
: (id
) sender
;
77 - (void) updatePortStatus
;
78 - (void) portCheckerDidFinishProbing
: (PortChecker
*) portChecker
;
81 - (void) setSound
: (id
) sender
;
83 - (void) setPeersGlobal
: (id
) sender
;
84 - (void) setPeersTorrent
: (id
) sender
;
86 - (void) setPEX
: (id
) sender
;
87 - (void) setDHT
: (id
) sender
;
88 - (void) setLPD
: (id
) sender
;
90 - (void) setEncryptionMode
: (id
) sender
;
92 - (void) setBlocklistEnabled
: (id
) sender
;
93 - (void) updateBlocklist
: (id
) sender
;
94 - (void) setBlocklistAutoUpdate
: (id
) sender
;
95 - (void) updateBlocklistFields
;
96 - (void) updateBlocklistURLField
;
97 - (void) updateBlocklistButton
;
99 - (void) setAutoStartDownloads
: (id
) sender
;
101 - (void) setBadge
: (id
) sender
;
103 - (void) resetWarnings
: (id
) sender
;
105 - (void) setDefaultForMagnets
: (id
) sender
;
107 - (void) setQueue
: (id
) sender
;
108 - (void) setQueueNumber
: (id
) sender
;
110 - (void) setStalled
: (id
) sender
;
111 - (void) setStalledMinutes
: (id
) sender
;
113 - (void) setDownloadLocation
: (id
) sender
;
114 - (void) folderSheetShow
: (id
) sender
;
115 - (void) incompleteFolderSheetShow
: (id
) sender
;
116 - (void) setUseIncompleteFolder
: (id
) sender
;
118 - (void) setRenamePartialFiles
: (id
) sender
;
120 - (void) setDoneScriptEnabled
: (id
) sender
;
121 - (void) doneScriptSheetShow
: (id
) sender
;
123 - (void) applyRatioSetting
: (id
) sender
;
124 - (void) setRatioStop
: (id
) sender
;
125 - (void) updateRatioStopField
;
127 - (void) applyIdleStopSetting
: (id
) sender
;
128 - (void) setIdleStop
: (id
) sender
;
130 - (void) applySpeedSettings
: (id
) sender
;
131 - (void) applyAltSpeedSettings
;
133 - (void) updateLimitFields
;
134 - (void) setGlobalLimit
: (id
) sender
;
136 - (void) setSpeedLimit
: (id
) sender
;
137 - (void) setAutoSpeedLimit
: (id
) sender
;
138 - (void) setAutoSpeedLimitTime
: (id
) sender
;
139 - (void) setAutoSpeedLimitDay
: (id
) sender
;
140 + (NSInteger
) dateToTimeSum
: (NSDate
*) date
;
141 + (NSDate
*) timeSumToDate
: (NSInteger
) sum
;
143 - (void) setAutoImport
: (id
) sender
;
144 - (void) importFolderSheetShow
: (id
) sender
;
146 - (void) setAutoSize
: (id
) sender
;
148 - (void) setRPCEnabled
: (id
) sender
;
149 - (void) linkWebUI
: (id
) sender
;
150 - (void) setRPCAuthorize
: (id
) sender
;
151 - (void) setRPCUsername
: (id
) sender
;
152 - (void) setRPCPassword
: (id
) sender
;
153 - (void) updateRPCPassword
;
154 - (void) setRPCPort
: (id
) sender
;
155 - (void) setRPCUseWhitelist
: (id
) sender
;
156 - (void) setRPCWebUIDiscovery
: (id
) sender
;
157 - (void) updateRPCWhitelist
;
158 - (void) addRemoveRPCIP
: (id
) sender
;
160 - (void) helpForScript
: (id
) sender
;
161 - (void) helpForPeers
: (id
) sender
;
162 - (void) helpForNetwork
: (id
) sender
;
163 - (void) helpForRemote
: (id
) sender
;
165 - (void) rpcUpdatePrefs
;