mirror of
https://github.com/transmission/transmission
synced 2025-03-09 13:50:00 +00:00
expand upon the code for setting download and incomplete folders
This commit is contained in:
parent
ffde59b418
commit
894c606162
3 changed files with 52 additions and 44 deletions
|
@ -684,7 +684,7 @@
|
||||||
else if ([ident isEqualToString: @"Progress"])
|
else if ([ident isEqualToString: @"Progress"])
|
||||||
{
|
{
|
||||||
NSNumber * progress;
|
NSNumber * progress;
|
||||||
return (progress = [peer objectForKey: @"Progress"]) ? progress : nil;
|
return [peer objectForKey: @"Progress"]; //returning nil is fine
|
||||||
}
|
}
|
||||||
else if ([ident isEqualToString: @"UL To"])
|
else if ([ident isEqualToString: @"UL To"])
|
||||||
{
|
{
|
||||||
|
|
|
@ -63,19 +63,21 @@
|
||||||
int8_t * fPieces;
|
int8_t * fPieces;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id) initWithPath: (NSString *) path forceDeleteTorrent: (BOOL) delete 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;
|
- (id) initWithHistory: (NSDictionary *) history lib: (tr_handle_t *) lib;
|
||||||
|
|
||||||
- (NSDictionary *) history;
|
- (NSDictionary *) history;
|
||||||
|
|
||||||
- (void) setDownloadFolder: (NSString *) path;
|
- (void) setIncompleteFolder: (NSString *) folder;
|
||||||
|
- (void) setDownloadFolder: (NSString *) folder;
|
||||||
|
- (void) updateDownloadFolder;
|
||||||
- (NSString *) downloadFolder;
|
- (NSString *) downloadFolder;
|
||||||
|
|
||||||
- (void) getAvailability: (int8_t *) tab size: (int) size;
|
- (void) getAvailability: (int8_t *) tab size: (int) size;
|
||||||
- (void) getAmountFinished: (float *) tab size: (int) size;
|
- (void) getAmountFinished: (float *) tab size: (int) size;
|
||||||
|
|
||||||
- (void) update;
|
- (void) update;
|
||||||
- (NSDictionary *) infoForCurrentView;
|
- (NSDictionary *) infoForCurrentView;
|
||||||
|
|
||||||
- (void) startTransfer;
|
- (void) startTransfer;
|
||||||
- (void) stopTransfer;
|
- (void) stopTransfer;
|
||||||
|
|
|
@ -79,8 +79,8 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
||||||
|
|
||||||
if (self)
|
if (self)
|
||||||
{
|
{
|
||||||
fUseIncompleteFolder = [fDefaults boolForKey: @"UseIncompleteDownloadFolder"];
|
if ((fUseIncompleteFolder = [fDefaults boolForKey: @"UseIncompleteDownloadFolder"]))
|
||||||
fIncompleteFolder = [[[fDefaults stringForKey: @"IncompleteDownloadFolder"] stringByExpandingTildeInPath] retain];
|
fIncompleteFolder = [[[fDefaults stringForKey: @"IncompleteDownloadFolder"] stringByExpandingTildeInPath] retain];
|
||||||
|
|
||||||
if (!fPublicTorrent)
|
if (!fPublicTorrent)
|
||||||
[self trashFile: path];
|
[self trashFile: path];
|
||||||
|
@ -109,27 +109,23 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
||||||
if (self)
|
if (self)
|
||||||
{
|
{
|
||||||
//download folders
|
//download folders
|
||||||
NSString * downloadFolder;
|
if (!(fDownloadFolder = [history objectForKey: @"DownloadFolder"]))
|
||||||
if (!(downloadFolder = [history objectForKey: @"DownloadFolder"]))
|
fDownloadFolder = [[fDefaults stringForKey: @"DownloadFolder"] stringByExpandingTildeInPath];
|
||||||
downloadFolder = [[fDefaults stringForKey: @"DownloadFolder"] stringByExpandingTildeInPath];
|
[fDownloadFolder retain];
|
||||||
|
|
||||||
NSNumber * useIncompleteFolder;
|
NSNumber * statusIncompleteFolder;
|
||||||
if ((useIncompleteFolder = [history objectForKey: @"UseIncompleteFolder"]))
|
if ((statusIncompleteFolder = [history objectForKey: @"UseIncompleteFolder"])
|
||||||
|
&& (fUseIncompleteFolder = [statusIncompleteFolder boolValue]))
|
||||||
{
|
{
|
||||||
if ((fUseIncompleteFolder = [useIncompleteFolder boolValue]))
|
if (!(fIncompleteFolder = [history objectForKey: @"IncompleteFolder"]))
|
||||||
{
|
fIncompleteFolder = [[fDefaults stringForKey: @"IncompleteDownloadFolder"]
|
||||||
NSString * incompleteFolder;
|
stringByExpandingTildeInPath];
|
||||||
if (incompleteFolder = [history objectForKey: @"IncompleteFolder"])
|
[fIncompleteFolder retain];
|
||||||
fIncompleteFolder = [incompleteFolder retain];
|
|
||||||
else
|
|
||||||
fIncompleteFolder = [[[fDefaults stringForKey: @"IncompleteDownloadFolder"]
|
|
||||||
stringByExpandingTildeInPath] retain];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
fUseIncompleteFolder = NO;
|
fUseIncompleteFolder = NO;
|
||||||
|
|
||||||
[self setDownloadFolder: downloadFolder];
|
[self updateDownloadFolder];
|
||||||
|
|
||||||
//start transfer
|
//start transfer
|
||||||
BOOL start = YES;
|
BOOL start = YES;
|
||||||
|
@ -137,7 +133,7 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
||||||
NSString * paused;
|
NSString * paused;
|
||||||
if ((active = [history objectForKey: @"Active"]))
|
if ((active = [history objectForKey: @"Active"]))
|
||||||
start = [active boolValue];
|
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"];
|
start = [paused isEqualToString: @"NO"];
|
||||||
else;
|
else;
|
||||||
|
|
||||||
|
@ -224,15 +220,35 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
#warning make less confusing
|
- (void) setIncompleteFolder: (NSString *) folder
|
||||||
- (void) setDownloadFolder: (NSString *) path
|
|
||||||
{
|
{
|
||||||
if (path)
|
fUseIncompleteFolder = folder != nil;
|
||||||
fDownloadFolder = [path copy];
|
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:
|
if (!fUseIncompleteFolder || [[NSFileManager defaultManager] fileExistsAtPath:
|
||||||
[path stringByAppendingPathComponent: [self name]]])
|
[fDownloadFolder stringByAppendingPathComponent: [self name]]])
|
||||||
tr_torrentSetFolder(fHandle, [path UTF8String]);
|
tr_torrentSetFolder(fHandle, [fDownloadFolder UTF8String]);
|
||||||
else
|
else
|
||||||
tr_torrentSetFolder(fHandle, [fIncompleteFolder UTF8String]);
|
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]]
|
if ([[NSFileManager defaultManager] movePath: [[self downloadFolder] stringByAppendingPathComponent: [self name]]
|
||||||
toPath: [fDownloadFolder stringByAppendingPathComponent: [self name]] handler: nil])
|
toPath: [fDownloadFolder stringByAppendingPathComponent: [self name]] handler: nil])
|
||||||
tr_torrentSetFolder(fHandle, [fDownloadFolder UTF8String]);
|
[self updateDownloadFolder];
|
||||||
|
|
||||||
[self updateSpeedSetting];
|
[self updateSpeedSetting];
|
||||||
}
|
}
|
||||||
|
@ -734,10 +750,7 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
|
||||||
[fIncompleteFolder release];
|
[fIncompleteFolder release];
|
||||||
fIncompleteFolder = nil;
|
fIncompleteFolder = nil;
|
||||||
}
|
}
|
||||||
[fDownloadFolder release];
|
[self setDownloadFolder: folder];
|
||||||
fDownloadFolder = [folder retain];
|
|
||||||
|
|
||||||
tr_torrentSetFolder(fHandle, [fDownloadFolder UTF8String]);
|
|
||||||
|
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateInfoSettings" object: nil];
|
[[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];
|
NSString * folder = [[openPanel filenames] objectAtIndex: 0];
|
||||||
if (fUseIncompleteFolder)
|
if (fUseIncompleteFolder)
|
||||||
{
|
[self setIncompleteFolder: folder];
|
||||||
[fIncompleteFolder release];
|
|
||||||
fIncompleteFolder = [folder retain];
|
|
||||||
[self setDownloadFolder: nil];
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
[fDownloadFolder release];
|
|
||||||
[self setDownloadFolder: folder];
|
[self setDownloadFolder: folder];
|
||||||
}
|
|
||||||
|
|
||||||
[self startTransfer];
|
[self startTransfer];
|
||||||
[self update];
|
[self update];
|
||||||
|
|
Loading…
Add table
Reference in a new issue