expand upon the code for setting download and incomplete folders

This commit is contained in:
Mitchell Livingston 2007-05-10 18:29:36 +00:00
parent ffde59b418
commit 894c606162
3 changed files with 52 additions and 44 deletions

View File

@ -684,7 +684,7 @@
else if ([ident isEqualToString: @"Progress"])
{
NSNumber * progress;
return (progress = [peer objectForKey: @"Progress"]) ? progress : nil;
return [peer objectForKey: @"Progress"]; //returning nil is fine
}
else if ([ident isEqualToString: @"UL To"])
{

View File

@ -63,19 +63,21 @@
int8_t * fPieces;
}
- (id) initWithPath: (NSString *) path forceDeleteTorrent: (BOOL) delete lib: (tr_handle_t *) lib;
- (id) initWithHistory: (NSDictionary *) history lib: (tr_handle_t *) lib;
- (id) initWithPath: (NSString *) path forceDeleteTorrent: (BOOL) delete lib: (tr_handle_t *) lib;
- (id) initWithHistory: (NSDictionary *) history lib: (tr_handle_t *) lib;
- (NSDictionary *) history;
- (void) setDownloadFolder: (NSString *) path;
- (void) setIncompleteFolder: (NSString *) folder;
- (void) setDownloadFolder: (NSString *) folder;
- (void) updateDownloadFolder;
- (NSString *) downloadFolder;
- (void) getAvailability: (int8_t *) tab size: (int) size;
- (void) getAmountFinished: (float *) tab size: (int) size;
- (void) update;
- (NSDictionary *) infoForCurrentView;
- (void) update;
- (NSDictionary *) infoForCurrentView;
- (void) startTransfer;
- (void) stopTransfer;

View File

@ -79,8 +79,8 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
if (self)
{
fUseIncompleteFolder = [fDefaults boolForKey: @"UseIncompleteDownloadFolder"];
fIncompleteFolder = [[[fDefaults stringForKey: @"IncompleteDownloadFolder"] stringByExpandingTildeInPath] retain];
if ((fUseIncompleteFolder = [fDefaults boolForKey: @"UseIncompleteDownloadFolder"]))
fIncompleteFolder = [[[fDefaults stringForKey: @"IncompleteDownloadFolder"] stringByExpandingTildeInPath] retain];
if (!fPublicTorrent)
[self trashFile: path];
@ -109,27 +109,23 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
if (self)
{
//download folders
NSString * downloadFolder;
if (!(downloadFolder = [history objectForKey: @"DownloadFolder"]))
downloadFolder = [[fDefaults stringForKey: @"DownloadFolder"] stringByExpandingTildeInPath];
if (!(fDownloadFolder = [history objectForKey: @"DownloadFolder"]))
fDownloadFolder = [[fDefaults stringForKey: @"DownloadFolder"] stringByExpandingTildeInPath];
[fDownloadFolder retain];
NSNumber * useIncompleteFolder;
if ((useIncompleteFolder = [history objectForKey: @"UseIncompleteFolder"]))
NSNumber * statusIncompleteFolder;
if ((statusIncompleteFolder = [history objectForKey: @"UseIncompleteFolder"])
&& (fUseIncompleteFolder = [statusIncompleteFolder boolValue]))
{
if ((fUseIncompleteFolder = [useIncompleteFolder boolValue]))
{
NSString * incompleteFolder;
if (incompleteFolder = [history objectForKey: @"IncompleteFolder"])
fIncompleteFolder = [incompleteFolder retain];
else
fIncompleteFolder = [[[fDefaults stringForKey: @"IncompleteDownloadFolder"]
stringByExpandingTildeInPath] retain];
}
if (!(fIncompleteFolder = [history objectForKey: @"IncompleteFolder"]))
fIncompleteFolder = [[fDefaults stringForKey: @"IncompleteDownloadFolder"]
stringByExpandingTildeInPath];
[fIncompleteFolder retain];
}
else
fUseIncompleteFolder = NO;
[self setDownloadFolder: downloadFolder];
[self updateDownloadFolder];
//start transfer
BOOL start = YES;
@ -137,7 +133,7 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
NSString * paused;
if ((active = [history objectForKey: @"Active"]))
start = [active boolValue];
else if ((paused = [history objectForKey: @"Paused"])) //old way of storing if active
else if ((paused = [history objectForKey: @"Paused"])) //old way of storing active status
start = [paused isEqualToString: @"NO"];
else;
@ -224,15 +220,35 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
[super dealloc];
}
#warning make less confusing
- (void) setDownloadFolder: (NSString *) path
- (void) setIncompleteFolder: (NSString *) folder
{
if (path)
fDownloadFolder = [path copy];
fUseIncompleteFolder = folder != nil;
if (fIncompleteFolder)
{
[fIncompleteFolder release];
fIncompleteFolder = nil;
}
if (folder)
fIncompleteFolder = [folder retain];
[self updateDownloadFolder];
}
- (void) setDownloadFolder: (NSString *) folder
{
if (fDownloadFolder)
[fDownloadFolder release];
fDownloadFolder = [folder retain];
[self updateDownloadFolder];
}
- (void) updateDownloadFolder
{
if (!fUseIncompleteFolder || [[NSFileManager defaultManager] fileExistsAtPath:
[path stringByAppendingPathComponent: [self name]]])
tr_torrentSetFolder(fHandle, [path UTF8String]);
[fDownloadFolder stringByAppendingPathComponent: [self name]]])
tr_torrentSetFolder(fHandle, [fDownloadFolder UTF8String]);
else
tr_torrentSetFolder(fHandle, [fIncompleteFolder UTF8String]);
}
@ -271,7 +287,7 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
if ([[NSFileManager defaultManager] movePath: [[self downloadFolder] stringByAppendingPathComponent: [self name]]
toPath: [fDownloadFolder stringByAppendingPathComponent: [self name]] handler: nil])
tr_torrentSetFolder(fHandle, [fDownloadFolder UTF8String]);
[self updateDownloadFolder];
[self updateSpeedSetting];
}
@ -734,10 +750,7 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
[fIncompleteFolder release];
fIncompleteFolder = nil;
}
[fDownloadFolder release];
fDownloadFolder = [folder retain];
tr_torrentSetFolder(fHandle, [fDownloadFolder UTF8String]);
[self setDownloadFolder: folder];
[[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateInfoSettings" object: nil];
@ -833,16 +846,9 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
NSString * folder = [[openPanel filenames] objectAtIndex: 0];
if (fUseIncompleteFolder)
{
[fIncompleteFolder release];
fIncompleteFolder = [folder retain];
[self setDownloadFolder: nil];
}
[self setIncompleteFolder: folder];
else
{
[fDownloadFolder release];
[self setDownloadFolder: folder];
}
[self startTransfer];
[self update];