redone options tab of inspector...current settings for "stop at ratio" won't carry over
This commit is contained in:
parent
4465ea7bc8
commit
d7f1933087
|
@ -18,6 +18,8 @@
|
|||
<integer>9090</integer>
|
||||
<key>CheckDownload</key>
|
||||
<false/>
|
||||
<key>CheckDownloadTorrent</key>
|
||||
<false/>
|
||||
<key>CheckQuit</key>
|
||||
<true/>
|
||||
<key>CheckQuitDownloading</key>
|
||||
|
@ -28,6 +30,8 @@
|
|||
<false/>
|
||||
<key>CheckUpload</key>
|
||||
<true/>
|
||||
<key>CheckUploadTorrent</key>
|
||||
<false/>
|
||||
<key>DeleteOriginalTorrent</key>
|
||||
<false/>
|
||||
<key>DownloadChoice</key>
|
||||
|
@ -36,6 +40,8 @@
|
|||
<string>~/Desktop</string>
|
||||
<key>DownloadLimit</key>
|
||||
<integer>100</integer>
|
||||
<key>DownloadLimitTorrent</key>
|
||||
<integer>50</integer>
|
||||
<key>DownloadSound</key>
|
||||
<string>Glass</string>
|
||||
<key>Filter</key>
|
||||
|
@ -102,6 +108,8 @@
|
|||
<string>Daily</string>
|
||||
<key>UploadLimit</key>
|
||||
<integer>20</integer>
|
||||
<key>UploadLimitTorrent</key>
|
||||
<integer>20</integer>
|
||||
<key>UseAdvancedBar</key>
|
||||
<false/>
|
||||
<key>UseIncompleteDownloadFolder</key>
|
||||
|
|
|
@ -13,8 +13,10 @@
|
|||
revealFile = id;
|
||||
revealTorrentFile = id;
|
||||
setLimitCheck = id;
|
||||
setRatioCheck = id;
|
||||
setLimitCustom = id;
|
||||
setRatioCustom = id;
|
||||
setRatioLimit = id;
|
||||
setRatioSetting = id;
|
||||
setSpeedLimit = id;
|
||||
};
|
||||
CLASS = InfoWindowController;
|
||||
|
@ -38,13 +40,15 @@
|
|||
fHashField = NSTextField;
|
||||
fImageView = NSImageView;
|
||||
fLeechersField = NSTextField;
|
||||
fLimitCustomCheck = NSButton;
|
||||
fNameField = NSTextField;
|
||||
fPeerTable = NSTableView;
|
||||
fPiecesField = NSTextField;
|
||||
fPiecesView = PiecesView;
|
||||
fRatioCustomCheck = NSButton;
|
||||
fRatioField = NSTextField;
|
||||
fRatioLimitField = NSTextField;
|
||||
fRatioMatrix = NSMatrix;
|
||||
fRatioStopCheck = NSButton;
|
||||
fRevealDataButton = NSButton;
|
||||
fRevealTorrentButton = NSButton;
|
||||
fSecureField = NSTextField;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>69 61 356 240 0 0 1152 842 </string>
|
||||
<string>34 67 356 240 0 0 1152 842 </string>
|
||||
<key>IBEditorPositions</key>
|
||||
<dict>
|
||||
<key>549</key>
|
||||
|
|
Binary file not shown.
|
@ -6,6 +6,7 @@
|
|||
{
|
||||
ACTIONS = {
|
||||
applySpeedSettings = id;
|
||||
applyTorrentSpeedSetting = id;
|
||||
folderSheetShow = id;
|
||||
helpForNetwork = id;
|
||||
importFolderSheetShow = id;
|
||||
|
|
|
@ -3,17 +3,17 @@
|
|||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>19 87 356 240 0 0 1152 842 </string>
|
||||
<string>19 79 356 240 0 0 1152 842 </string>
|
||||
<key>IBEditorPositions</key>
|
||||
<dict>
|
||||
<key>153</key>
|
||||
<string>235 384 563 267 0 0 1152 842 </string>
|
||||
<string>180 392 571 335 0 0 1152 842 </string>
|
||||
<key>28</key>
|
||||
<string>294 434 563 290 0 0 1152 842 </string>
|
||||
<string>99 386 571 290 0 0 1152 842 </string>
|
||||
<key>41</key>
|
||||
<string>161 288 563 305 0 0 1152 842 </string>
|
||||
<string>290 426 571 305 0 0 1152 842 </string>
|
||||
<key>66</key>
|
||||
<string>294 507 563 144 0 0 1152 842 </string>
|
||||
<string>139 501 571 144 0 0 1152 842 </string>
|
||||
</dict>
|
||||
<key>IBFramework Version</key>
|
||||
<string>446.1</string>
|
||||
|
@ -24,7 +24,6 @@
|
|||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>153</integer>
|
||||
<integer>41</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8L127</string>
|
||||
|
|
Binary file not shown.
|
@ -56,8 +56,8 @@
|
|||
IBOutlet NSTableView * fFileTable;
|
||||
IBOutlet NSTextField * fFileTableStatusField;
|
||||
|
||||
IBOutlet NSButton * fUploadLimitCheck, * fDownloadLimitCheck;
|
||||
IBOutlet NSMatrix * fRatioMatrix;
|
||||
IBOutlet NSButton * fRatioCustomCheck, * fRatioStopCheck,
|
||||
* fLimitCustomCheck, * fUploadLimitCheck, * fDownloadLimitCheck;
|
||||
IBOutlet NSTextField * fUploadLimitField, * fDownloadLimitField, * fRatioLimitField;
|
||||
}
|
||||
|
||||
|
@ -71,10 +71,12 @@
|
|||
- (void) revealDataFile: (id) sender;
|
||||
- (void) revealFile: (id) sender;
|
||||
|
||||
- (void) setLimitCustom: (id) sender;
|
||||
- (void) setLimitCheck: (id) sender;
|
||||
- (void) setSpeedLimit: (id) sender;
|
||||
|
||||
- (void) setRatioCheck: (id) sender;
|
||||
- (void) setRatioCustom: (id) sender;
|
||||
- (void) setRatioSetting: (id) sender;
|
||||
- (void) setRatioLimit: (id) sender;
|
||||
|
||||
@end
|
||||
|
|
|
@ -25,10 +25,6 @@
|
|||
#import "InfoWindowController.h"
|
||||
#import "StringAdditions.h"
|
||||
|
||||
#define RATIO_GLOBAL_TAG 0
|
||||
#define RATIO_NO_CHECK_TAG 1
|
||||
#define RATIO_CHECK_TAG 2
|
||||
|
||||
#define MIN_WINDOW_WIDTH 300
|
||||
#define MAX_WINDOW_WIDTH 5000
|
||||
|
||||
|
@ -43,7 +39,7 @@
|
|||
#define TAB_ACTIVITY_HEIGHT 170.0
|
||||
#define TAB_PEERS_HEIGHT 268.0
|
||||
#define TAB_FILES_HEIGHT 268.0
|
||||
#define TAB_OPTIONS_HEIGHT 147.0
|
||||
#define TAB_OPTIONS_HEIGHT 157.0
|
||||
|
||||
#define INVALID -99
|
||||
|
||||
|
@ -384,15 +380,20 @@
|
|||
NSEnumerator * enumerator = [fTorrents objectEnumerator];
|
||||
torrent = [enumerator nextObject]; //first torrent
|
||||
|
||||
int checkUpload = [torrent checkUpload] ? 1 : 0,
|
||||
int limitCustom = [torrent customLimitSetting] ? 1 : 0,
|
||||
checkUpload = [torrent checkUpload] ? 1 : 0,
|
||||
checkDownload = [torrent checkDownload] ? 1 : 0,
|
||||
uploadLimit = [torrent uploadLimit],
|
||||
downloadLimit = [torrent downloadLimit];
|
||||
|
||||
while ((checkUpload != INVALID || uploadLimit != INVALID
|
||||
while ((limitCustom != INVALID
|
||||
|| checkUpload != INVALID || uploadLimit != INVALID
|
||||
|| checkDownload != INVALID || downloadLimit != INVALID)
|
||||
&& (torrent = [enumerator nextObject]))
|
||||
{
|
||||
if (limitCustom != INVALID && limitCustom != ([torrent customLimitSetting] ? 1 : 0))
|
||||
limitCustom = INVALID;
|
||||
|
||||
if (checkUpload != INVALID && checkUpload != ([torrent checkUpload] ? 1 : 0))
|
||||
checkUpload = INVALID;
|
||||
|
||||
|
@ -406,23 +407,25 @@
|
|||
downloadLimit = INVALID;
|
||||
}
|
||||
|
||||
[fUploadLimitCheck setEnabled: YES];
|
||||
[fDownloadLimitCheck setEnabled: YES];
|
||||
|
||||
[fUploadLimitField setEnabled: checkUpload != 0];
|
||||
[fDownloadLimitField setEnabled: checkDownload != 0];
|
||||
[fLimitCustomCheck setEnabled: YES];
|
||||
[fLimitCustomCheck setState: limitCustom == INVALID ? NSMixedState
|
||||
: (limitCustom == 1 ? NSOnState : NSOffState)];
|
||||
|
||||
[fUploadLimitCheck setEnabled: limitCustom == 1];
|
||||
[fUploadLimitCheck setState: checkUpload == INVALID ? NSMixedState
|
||||
: (checkUpload == 1 ? NSOnState : NSOffState)];
|
||||
|
||||
[fDownloadLimitCheck setEnabled: limitCustom == 1];
|
||||
[fDownloadLimitCheck setState: checkDownload == INVALID ? NSMixedState
|
||||
: (checkDownload == 1 ? NSOnState : NSOffState)];
|
||||
|
||||
[fUploadLimitField setEnabled: limitCustom == 1 && checkUpload == 1];
|
||||
if (uploadLimit != INVALID)
|
||||
[fUploadLimitField setIntValue: uploadLimit];
|
||||
else
|
||||
[fUploadLimitField setStringValue: @""];
|
||||
|
||||
[fDownloadLimitCheck setState: checkDownload == INVALID ? NSMixedState
|
||||
: (checkDownload == 1 ? NSOnState : NSOffState)];
|
||||
|
||||
[fDownloadLimitField setEnabled: limitCustom == 1 && checkDownload == 1];
|
||||
if (downloadLimit != INVALID)
|
||||
[fDownloadLimitField setIntValue: downloadLimit];
|
||||
else
|
||||
|
@ -432,38 +435,32 @@
|
|||
enumerator = [fTorrents objectEnumerator];
|
||||
torrent = [enumerator nextObject]; //first torrent
|
||||
|
||||
int ratioSetting = [torrent stopRatioSetting];
|
||||
int ratioCustom = [torrent customRatioSetting] ? 1 : 0,
|
||||
ratioStop = [torrent shouldStopAtRatio];
|
||||
float ratioLimit = [torrent ratioLimit];
|
||||
|
||||
while ((ratioSetting != INVALID || ratioLimit != INVALID)
|
||||
while ((ratioCustom != INVALID || ratioStop != INVALID || ratioLimit != INVALID)
|
||||
&& (torrent = [enumerator nextObject]))
|
||||
{
|
||||
if (ratioSetting != INVALID && ratioSetting != [torrent stopRatioSetting])
|
||||
ratioSetting = INVALID;
|
||||
if (ratioCustom != INVALID && ratioCustom != ([torrent customRatioSetting] ? 1 : 0))
|
||||
ratioCustom = INVALID;
|
||||
|
||||
if (ratioStop != INVALID && ratioStop != ([torrent shouldStopAtRatio] ? 1 : 0))
|
||||
ratioStop = INVALID;
|
||||
|
||||
if (ratioLimit != INVALID && ratioLimit != [torrent ratioLimit])
|
||||
ratioLimit = INVALID;
|
||||
}
|
||||
|
||||
[fRatioMatrix setEnabled: YES];
|
||||
[fRatioCustomCheck setEnabled: YES];
|
||||
[fRatioCustomCheck setState: ratioCustom == INVALID ? NSMixedState
|
||||
: (ratioCustom == 1 ? NSOnState : NSOffState)];
|
||||
|
||||
if (ratioSetting == RATIO_CHECK)
|
||||
{
|
||||
[fRatioMatrix selectCellWithTag: RATIO_CHECK_TAG];
|
||||
[fRatioLimitField setEnabled: YES];
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ratioSetting == RATIO_NO_CHECK)
|
||||
[fRatioMatrix selectCellWithTag: RATIO_NO_CHECK_TAG];
|
||||
else if (ratioSetting == RATIO_GLOBAL)
|
||||
[fRatioMatrix selectCellWithTag: RATIO_GLOBAL_TAG];
|
||||
else
|
||||
[fRatioMatrix deselectAllCells];
|
||||
|
||||
[fRatioLimitField setEnabled: NO];
|
||||
}
|
||||
[fRatioStopCheck setEnabled: ratioCustom == 1];
|
||||
[fRatioStopCheck setState: ratioStop == INVALID ? NSMixedState
|
||||
: (ratioStop == 1 ? NSOnState : NSOffState)];
|
||||
|
||||
[fRatioLimitField setEnabled: ratioCustom == 1 && ratioStop == 1];
|
||||
if (ratioLimit != INVALID)
|
||||
[fRatioLimitField setFloatValue: ratioLimit];
|
||||
else
|
||||
|
@ -471,21 +468,25 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
[fRatioMatrix deselectAllCells];
|
||||
[fRatioMatrix setEnabled: NO];
|
||||
[fLimitCustomCheck setEnabled: NO];
|
||||
[fLimitCustomCheck setState: NSOffState];
|
||||
|
||||
[fRatioLimitField setEnabled: NO];
|
||||
[fRatioLimitField setStringValue: @""];
|
||||
|
||||
[fUploadLimitCheck setState: NSOffState];
|
||||
[fUploadLimitCheck setEnabled: NO];
|
||||
[fUploadLimitCheck setState: NSOffState];
|
||||
[fUploadLimitField setEnabled: NO];
|
||||
[fUploadLimitField setStringValue: @""];
|
||||
|
||||
[fDownloadLimitCheck setState: NSOffState];
|
||||
[fDownloadLimitCheck setEnabled: NO];
|
||||
[fDownloadLimitCheck setState: NSOffState];
|
||||
[fDownloadLimitField setEnabled: NO];
|
||||
[fDownloadLimitField setStringValue: @""];
|
||||
|
||||
[fRatioCustomCheck setEnabled: NO];
|
||||
[fRatioCustomCheck setState: NSOffState];
|
||||
[fRatioStopCheck setEnabled: NO];
|
||||
[fRatioStopCheck setState: NSOffState];
|
||||
[fRatioLimitField setEnabled: NO];
|
||||
[fRatioLimitField setStringValue: @""];
|
||||
}
|
||||
|
||||
[self updateInfoStats];
|
||||
|
@ -691,6 +692,24 @@
|
|||
inFileViewerRootedAtPath: nil];
|
||||
}
|
||||
|
||||
- (void) setLimitCustom: (id) sender
|
||||
{
|
||||
BOOL custom = [sender state] != NSOffState;
|
||||
if (custom)
|
||||
[sender setState: NSOnState];
|
||||
|
||||
Torrent * torrent;
|
||||
NSEnumerator * enumerator = [fTorrents objectEnumerator];
|
||||
while ((torrent = [enumerator nextObject]))
|
||||
[torrent setCustomLimitSetting: custom];
|
||||
|
||||
[fUploadLimitCheck setEnabled: custom];
|
||||
[fUploadLimitField setEnabled: custom && [fUploadLimitCheck state] == NSOnState];
|
||||
|
||||
[fDownloadLimitCheck setEnabled: custom];
|
||||
[fDownloadLimitField setEnabled: custom && [fDownloadLimitCheck state] == NSOnState];
|
||||
}
|
||||
|
||||
- (void) setLimitCheck: (id) sender
|
||||
{
|
||||
BOOL upload = sender == fUploadLimitCheck,
|
||||
|
@ -706,9 +725,6 @@
|
|||
|
||||
NSTextField * field = upload ? fUploadLimitField : fDownloadLimitField;
|
||||
|
||||
if (![[field stringValue] isEqualToString: @""])
|
||||
[self setSpeedLimit: field];
|
||||
|
||||
[field setEnabled: limit];
|
||||
}
|
||||
|
||||
|
@ -743,23 +759,33 @@
|
|||
}
|
||||
}
|
||||
|
||||
- (void) setRatioCheck: (id) sender
|
||||
- (void) setRatioCustom: (id) sender
|
||||
{
|
||||
int ratioSetting, tag = [[fRatioMatrix selectedCell] tag];
|
||||
if (tag == RATIO_CHECK_TAG)
|
||||
ratioSetting = RATIO_CHECK;
|
||||
else if (tag == RATIO_NO_CHECK_TAG)
|
||||
ratioSetting = RATIO_NO_CHECK;
|
||||
else
|
||||
ratioSetting = RATIO_GLOBAL;
|
||||
BOOL custom = [sender state] != NSOffState;
|
||||
if (custom)
|
||||
[sender setState: NSOnState];
|
||||
|
||||
Torrent * torrent;
|
||||
NSEnumerator * enumerator = [fTorrents objectEnumerator];
|
||||
while ((torrent = [enumerator nextObject]))
|
||||
[torrent setStopRatioSetting: ratioSetting];
|
||||
[torrent setCustomRatioSetting: custom];
|
||||
|
||||
[self setRatioLimit: fRatioLimitField];
|
||||
[fRatioLimitField setEnabled: tag == RATIO_CHECK_TAG];
|
||||
[fRatioStopCheck setEnabled: custom];
|
||||
[fRatioLimitField setEnabled: custom && [fRatioStopCheck state] == NSOnState];
|
||||
}
|
||||
|
||||
- (void) setRatioSetting: (id) sender
|
||||
{
|
||||
BOOL enabled = [sender state] != NSOffState;
|
||||
if (enabled)
|
||||
[sender setState: NSOnState];
|
||||
|
||||
Torrent * torrent;
|
||||
NSEnumerator * enumerator = [fTorrents objectEnumerator];
|
||||
while ((torrent = [enumerator nextObject]))
|
||||
[torrent setShouldStopAtRatio: enabled];
|
||||
|
||||
[fRatioLimitField setEnabled: enabled && [fRatioCustomCheck state] == NSOnState];
|
||||
}
|
||||
|
||||
- (void) setRatioLimit: (id) sender
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
- (void) setAutoSpeedLimit: (id) sender;
|
||||
|
||||
- (void) applySpeedSettings: (id) sender;
|
||||
- (void) applyTorrentSpeedSetting: (id) sender;
|
||||
|
||||
- (void) setAutoImport: (id) sender;
|
||||
- (void) importFolderSheetShow: (id) sender;
|
||||
|
|
|
@ -313,6 +313,11 @@
|
|||
}
|
||||
}
|
||||
|
||||
- (void) applyTorrentSpeedSetting: (id) sender
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateSpeedSetting" object: self];
|
||||
}
|
||||
|
||||
- (void) setAutoSpeedLimit: (id) sender
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName: @"AutoSpeedLimitChange" object: self];
|
||||
|
|
|
@ -25,10 +25,6 @@
|
|||
#import <Cocoa/Cocoa.h>
|
||||
#import <transmission.h>
|
||||
|
||||
#define RATIO_CHECK 1
|
||||
#define RATIO_GLOBAL -1
|
||||
#define RATIO_NO_CHECK 0
|
||||
|
||||
@interface Torrent : NSObject
|
||||
{
|
||||
tr_handle_t * fLib;
|
||||
|
@ -51,9 +47,11 @@
|
|||
NSMutableString * fNameString, * fProgressString, * fStatusString, * fShortStatusString, * fRemainingTimeString;
|
||||
|
||||
|
||||
int fUploadLimit, fDownloadLimit, fStopRatioSetting;
|
||||
int fUploadLimit, fDownloadLimit;
|
||||
float fRatioLimit;
|
||||
BOOL fCheckUpload, fCheckDownload, fFinishedSeeding, fWaitToStart, fError;
|
||||
BOOL fLimitCustom, fCheckUpload, fCheckDownload,
|
||||
fRatioCustom, fShouldStopAtRatio,
|
||||
fFinishedSeeding, fWaitToStart, fError;
|
||||
|
||||
int fOrderValue;
|
||||
|
||||
|
@ -85,19 +83,25 @@
|
|||
- (NSDate *) announceDate;
|
||||
|
||||
- (float) ratio;
|
||||
- (int) stopRatioSetting;
|
||||
- (void) setStopRatioSetting: (int) setting;
|
||||
- (BOOL) customRatioSetting;
|
||||
- (void) setCustomRatioSetting: (BOOL) setting;
|
||||
- (BOOL) shouldStopAtRatio;
|
||||
- (void) setShouldStopAtRatio: (BOOL) setting;
|
||||
- (float) ratioLimit;
|
||||
- (void) setRatioLimit: (float) limit;
|
||||
|
||||
- (void) setLimitUpload: (BOOL) limit;
|
||||
- (void) setUploadLimit: (int) limit;
|
||||
- (void) setLimitDownload: (BOOL) limit;
|
||||
- (void) setDownloadLimit: (int) limit;
|
||||
- (BOOL) checkUpload;
|
||||
- (int) uploadLimit;
|
||||
- (BOOL) checkDownload;
|
||||
- (int) downloadLimit;
|
||||
- (BOOL) checkUpload;
|
||||
- (void) setLimitUpload: (BOOL) limit;
|
||||
- (int) uploadLimit;
|
||||
- (void) setUploadLimit: (int) limit;
|
||||
- (BOOL) checkDownload;
|
||||
- (void) setLimitDownload: (BOOL) limit;
|
||||
- (int) downloadLimit;
|
||||
- (void) setDownloadLimit: (int) limit;
|
||||
|
||||
- (BOOL) customLimitSetting;
|
||||
- (void) setCustomLimitSetting: (BOOL) setting;
|
||||
- (void) updateSpeedSetting: (NSNotification *) notification;
|
||||
|
||||
- (void) setWaitToStart: (BOOL) wait;
|
||||
- (BOOL) waitingToStart;
|
||||
|
|
145
macosx/Torrent.m
145
macosx/Torrent.m
|
@ -34,8 +34,11 @@
|
|||
|
||||
- (id) initWithHash: (NSString *) hashString path: (NSString *) path lib: (tr_handle_t *) lib
|
||||
publicTorrent: (NSNumber *) publicTorrent
|
||||
date: (NSDate *) date stopRatioSetting: (NSNumber *) stopRatioSetting
|
||||
date: (NSDate *) date
|
||||
stopRatioCustom: (NSNumber *) ratioCustom
|
||||
shouldStopAtRatio: (NSNumber *) shouldStopAtRatio
|
||||
ratioLimit: (NSNumber *) ratioLimit
|
||||
limitSpeedCustom: (NSNumber *) limitCustom
|
||||
checkUpload: (NSNumber *) checkUpload uploadLimit: (NSNumber *) uploadLimit
|
||||
checkDownload: (NSNumber *) checkDownload downloadLimit: (NSNumber *) downloadLimit
|
||||
waitToStart: (NSNumber *) waitToStart orderValue: (NSNumber *) orderValue;
|
||||
|
@ -64,7 +67,9 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
|||
{
|
||||
self = [self initWithHash: nil path: path lib: lib
|
||||
publicTorrent: delete ? [NSNumber numberWithBool: NO] : nil
|
||||
date: nil stopRatioSetting: nil ratioLimit: nil
|
||||
date: nil
|
||||
stopRatioCustom: nil shouldStopAtRatio: nil ratioLimit: nil
|
||||
limitSpeedCustom: nil
|
||||
checkUpload: nil uploadLimit: nil
|
||||
checkDownload: nil downloadLimit: nil
|
||||
waitToStart: nil orderValue: nil];
|
||||
|
@ -86,8 +91,10 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
|||
path: [history objectForKey: @"TorrentPath"] lib: lib
|
||||
publicTorrent: [history objectForKey: @"PublicCopy"]
|
||||
date: [history objectForKey: @"Date"]
|
||||
stopRatioSetting: [history objectForKey: @"StopRatioSetting"]
|
||||
stopRatioCustom: [history objectForKey: @"StopRatioCustom"]
|
||||
shouldStopAtRatio: [history objectForKey: @"ShouldStopAtRatio"]
|
||||
ratioLimit: [history objectForKey: @"RatioLimit"]
|
||||
limitSpeedCustom: [history objectForKey: @"LimitSpeedCustom"]
|
||||
checkUpload: [history objectForKey: @"CheckUpload"]
|
||||
uploadLimit: [history objectForKey: @"UploadLimit"]
|
||||
checkDownload: [history objectForKey: @"CheckDownload"]
|
||||
|
@ -139,8 +146,10 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
|||
[NSNumber numberWithBool: fUseIncompleteFolder], @"UseIncompleteFolder",
|
||||
[self isActive] ? @"NO" : @"YES", @"Paused",
|
||||
[self date], @"Date",
|
||||
[NSNumber numberWithInt: fStopRatioSetting], @"StopRatioSetting",
|
||||
[NSNumber numberWithBool: fRatioCustom], @"StopRatioCustom",
|
||||
[NSNumber numberWithBool: fShouldStopAtRatio], @"ShouldStopAtRatio",
|
||||
[NSNumber numberWithFloat: fRatioLimit], @"RatioLimit",
|
||||
[NSNumber numberWithBool: fLimitCustom], @"LimitSpeedCustom",
|
||||
[NSNumber numberWithBool: fCheckUpload], @"CheckUpload",
|
||||
[NSNumber numberWithInt: fUploadLimit], @"UploadLimit",
|
||||
[NSNumber numberWithBool: fCheckDownload], @"CheckDownload",
|
||||
|
@ -163,6 +172,8 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
|||
{
|
||||
tr_torrentClose(fLib, fHandle);
|
||||
|
||||
[[NSNotificationCenter defaultCenter] removeObserver: self];
|
||||
|
||||
if (fDownloadFolder)
|
||||
[fDownloadFolder release];
|
||||
if (fIncompleteFolder)
|
||||
|
@ -253,12 +264,12 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
|||
}
|
||||
|
||||
//check to stop for ratio
|
||||
if ([self isSeeding] && ((fStopRatioSetting == RATIO_CHECK && [self ratio] >= fRatioLimit)
|
||||
|| (fStopRatioSetting == RATIO_GLOBAL && [fDefaults boolForKey: @"RatioCheck"]
|
||||
&& [self ratio] >= [fDefaults floatForKey: @"RatioLimit"])))
|
||||
if ([self isSeeding] && ((fRatioCustom && fShouldStopAtRatio && [self ratio] >= fRatioLimit)
|
||||
|| (!fRatioCustom && [fDefaults boolForKey: @"RatioCheck"]
|
||||
&& [self ratio] >= [fDefaults floatForKey: @"RatioLimit"])))
|
||||
{
|
||||
[self stopTransfer];
|
||||
[self setStopRatioSetting: RATIO_NO_CHECK];
|
||||
|
||||
fFinishedSeeding = YES;
|
||||
|
||||
fStat = tr_torrentStat(fHandle);
|
||||
|
@ -498,14 +509,24 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
|||
return downloaded > 0 ? (float)[self uploadedTotal] / downloaded : -1;
|
||||
}
|
||||
|
||||
- (int) stopRatioSetting
|
||||
- (BOOL) customRatioSetting
|
||||
{
|
||||
return fStopRatioSetting;
|
||||
return fRatioCustom;
|
||||
}
|
||||
|
||||
- (void) setStopRatioSetting: (int) setting
|
||||
- (void) setCustomRatioSetting: (BOOL) setting
|
||||
{
|
||||
fStopRatioSetting = setting;
|
||||
fRatioCustom = setting;
|
||||
}
|
||||
|
||||
- (BOOL) shouldStopAtRatio
|
||||
{
|
||||
return fShouldStopAtRatio;
|
||||
}
|
||||
|
||||
- (void) setShouldStopAtRatio: (BOOL) setting
|
||||
{
|
||||
fShouldStopAtRatio = setting;
|
||||
}
|
||||
|
||||
- (float) ratioLimit
|
||||
|
@ -519,50 +540,77 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
|||
fRatioLimit = limit;
|
||||
}
|
||||
|
||||
- (void) setLimitUpload: (BOOL) limit
|
||||
{
|
||||
fCheckUpload = limit;
|
||||
tr_setUploadLimit(fHandle, fCheckUpload ? fUploadLimit : -1);
|
||||
}
|
||||
|
||||
- (void) setUploadLimit: (int) limit
|
||||
{
|
||||
fUploadLimit = limit;
|
||||
tr_setUploadLimit(fHandle, fCheckUpload ? fUploadLimit : -1);
|
||||
}
|
||||
|
||||
- (void) setLimitDownload: (BOOL) limit
|
||||
{
|
||||
fCheckDownload = limit;
|
||||
tr_setDownloadLimit(fHandle, fCheckDownload ? fDownloadLimit : -1);
|
||||
}
|
||||
|
||||
- (void) setDownloadLimit: (int) limit
|
||||
{
|
||||
fDownloadLimit = limit;
|
||||
tr_setDownloadLimit(fHandle, fCheckDownload ? fDownloadLimit : -1);
|
||||
}
|
||||
|
||||
- (BOOL) checkUpload
|
||||
{
|
||||
return fCheckUpload;
|
||||
}
|
||||
|
||||
- (void) setLimitUpload: (BOOL) limit
|
||||
{
|
||||
fCheckUpload = limit;
|
||||
[self updateSpeedSetting: nil];
|
||||
}
|
||||
|
||||
- (int) uploadLimit
|
||||
{
|
||||
return fUploadLimit;
|
||||
}
|
||||
|
||||
- (void) setUploadLimit: (int) limit
|
||||
{
|
||||
fUploadLimit = limit;
|
||||
[self updateSpeedSetting: nil];
|
||||
}
|
||||
|
||||
- (BOOL) checkDownload
|
||||
{
|
||||
return fCheckDownload;
|
||||
}
|
||||
|
||||
- (void) setLimitDownload: (BOOL) limit
|
||||
{
|
||||
fCheckDownload = limit;
|
||||
[self updateSpeedSetting: nil];
|
||||
}
|
||||
|
||||
- (int) downloadLimit
|
||||
{
|
||||
return fDownloadLimit;
|
||||
}
|
||||
|
||||
- (void) setDownloadLimit: (int) limit
|
||||
{
|
||||
fDownloadLimit = limit;
|
||||
[self updateSpeedSetting: nil];
|
||||
}
|
||||
|
||||
- (BOOL) customLimitSetting
|
||||
{
|
||||
return fLimitCustom;
|
||||
}
|
||||
|
||||
- (void) setCustomLimitSetting: (BOOL) setting
|
||||
{
|
||||
fLimitCustom = setting;
|
||||
[self updateSpeedSetting: nil];
|
||||
}
|
||||
|
||||
- (void) updateSpeedSetting: (NSNotification *) notification
|
||||
{
|
||||
if (fLimitCustom)
|
||||
{
|
||||
tr_setUploadLimit(fHandle, fCheckUpload ? fUploadLimit : -1);
|
||||
tr_setDownloadLimit(fHandle, fCheckDownload ? fDownloadLimit : -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
tr_setUploadLimit(fHandle, [fDefaults boolForKey: @"CheckUploadTorrent"]
|
||||
? [fDefaults integerForKey: @"UploadLimitTorrent"] : -1);
|
||||
tr_setDownloadLimit(fHandle, [fDefaults boolForKey: @"CheckDownloadTorrent"]
|
||||
? [fDefaults integerForKey: @"DownloadLimitTorrent"] : -1);
|
||||
}
|
||||
}
|
||||
|
||||
- (void) setWaitToStart: (BOOL) wait
|
||||
{
|
||||
fWaitToStart = wait;
|
||||
|
@ -1093,8 +1141,11 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
|||
//if a hash is given, attempt to load that; otherwise, attempt to open file at path
|
||||
- (id) initWithHash: (NSString *) hashString path: (NSString *) path lib: (tr_handle_t *) lib
|
||||
publicTorrent: (NSNumber *) publicTorrent
|
||||
date: (NSDate *) date stopRatioSetting: (NSNumber *) stopRatioSetting
|
||||
date: (NSDate *) date
|
||||
stopRatioCustom: (NSNumber *) ratioCustom
|
||||
shouldStopAtRatio: (NSNumber *) shouldStopAtRatio
|
||||
ratioLimit: (NSNumber *) ratioLimit
|
||||
limitSpeedCustom: (NSNumber *) limitCustom
|
||||
checkUpload: (NSNumber *) checkUpload uploadLimit: (NSNumber *) uploadLimit
|
||||
checkDownload: (NSNumber *) checkDownload downloadLimit: (NSNumber *) downloadLimit
|
||||
waitToStart: (NSNumber *) waitToStart orderValue: (NSNumber *) orderValue
|
||||
|
@ -1122,21 +1173,25 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
|||
return nil;
|
||||
}
|
||||
|
||||
NSNotificationCenter * nc = [NSNotificationCenter defaultCenter];
|
||||
[nc addObserver: self selector: @selector(updateSpeedSetting:)
|
||||
name: @"UpdateSpeedSetting" object: nil];
|
||||
|
||||
fInfo = tr_torrentInfo( fHandle );
|
||||
|
||||
fDate = date ? [date retain] : [[NSDate alloc] init];
|
||||
|
||||
fStopRatioSetting = stopRatioSetting ? [stopRatioSetting intValue] : -1;
|
||||
fRatioCustom = ratioCustom ? [ratioCustom boolValue] : NO;
|
||||
fShouldStopAtRatio = shouldStopAtRatio ? [shouldStopAtRatio boolValue] : [fDefaults boolForKey: @"RatioCheck"];
|
||||
fRatioLimit = ratioLimit ? [ratioLimit floatValue] : [fDefaults floatForKey: @"RatioLimit"];
|
||||
fFinishedSeeding = NO;
|
||||
|
||||
fCheckUpload = checkUpload && [checkUpload boolValue];
|
||||
fUploadLimit = uploadLimit ? [uploadLimit intValue] : 10;
|
||||
tr_setUploadLimit(fHandle, fCheckUpload ? fUploadLimit : -1);
|
||||
|
||||
fCheckDownload = checkDownload && [checkDownload boolValue];
|
||||
fDownloadLimit = downloadLimit ? [downloadLimit intValue] : 10;
|
||||
tr_setDownloadLimit(fHandle, fCheckDownload ? fDownloadLimit : -1);
|
||||
fLimitCustom = limitCustom ? [limitCustom boolValue] : NO;
|
||||
fCheckUpload = checkUpload ? [checkUpload boolValue] : [fDefaults boolForKey: @"CheckUploadTorrent"];
|
||||
fUploadLimit = uploadLimit ? [uploadLimit intValue] : [fDefaults integerForKey: @"UploadLimitTorrent"];
|
||||
fCheckDownload = checkDownload ? [checkDownload boolValue] : [fDefaults boolForKey: @"CheckDownloadTorrent"];
|
||||
fDownloadLimit = downloadLimit ? [downloadLimit intValue] : [fDefaults integerForKey: @"DownloadLimitTorrent"];
|
||||
[self updateSpeedSetting: nil];
|
||||
|
||||
fWaitToStart = waitToStart ? [waitToStart boolValue] : [fDefaults boolForKey: @"AutoStartDownload"];
|
||||
fOrderValue = orderValue ? [orderValue intValue] : tr_torrentCount(fLib) - 1;
|
||||
|
|
Loading…
Reference in New Issue