From 2dc3f8b8f0a0a9de8ab9d6a8e2dfecaf9125ff85 Mon Sep 17 00:00:00 2001 From: Mitchell Livingston Date: Tue, 10 Jul 2007 03:30:25 +0000 Subject: [PATCH] compile with charles_ last set of changes...currently file selection doesn't apply --- macosx/FileOutlineView.m | 24 ++++--- macosx/FilePriorityCell.m | 20 +++--- macosx/InfoWindowController.m | 18 ++--- macosx/Torrent.h | 4 -- macosx/Torrent.m | 120 +++++----------------------------- 5 files changed, 50 insertions(+), 136 deletions(-) diff --git a/macosx/FileOutlineView.m b/macosx/FileOutlineView.m index 39e7c6c88..b22344600 100644 --- a/macosx/FileOutlineView.m +++ b/macosx/FileOutlineView.m @@ -103,16 +103,17 @@ if (![self isRowSelected: row]) { NSDictionary * item = [self itemAtRow: row]; + Torrent * torrent = [(InfoWindowController *)[[self window] windowController] selectedTorrent]; + if ([[item objectForKey: @"IsFolder"] boolValue] - || ![[(InfoWindowController *)[[self window] windowController] selectedTorrent] - canChangeDownloadCheckForFiles: [item objectForKey: @"Indexes"]]) + || ![torrent canChangeDownloadCheckForFiles: [item objectForKey: @"Indexes"]]) [fNormalColor set]; else { - int priority = [[item objectForKey: @"Priority"] intValue]; - if (priority == PRIORITY_HIGH) + NSIndexSet * indexSet = [item objectForKey: @"Indexes"]; + if ([torrent hasFilePriority: TR_PRI_HIGH forIndexes: indexSet]) [fHighPriorityColor set]; - else if (priority == PRIORITY_LOW) + else if ([torrent hasFilePriority: TR_PRI_LOW forIndexes: indexSet]) [fLowPriorityColor set]; else [fNormalColor set]; @@ -132,6 +133,7 @@ [super drawRect: r]; NSDictionary * item; + NSIndexSet * indexSet; int i, priority; Torrent * torrent = [(InfoWindowController *)[[self window] windowController] selectedTorrent]; for (i = 0; i < [self numberOfRows]; i++) @@ -139,13 +141,15 @@ if ([self isRowSelected: i]) { item = [self itemAtRow: i]; - if (![[item objectForKey: @"IsFolder"] boolValue] - && [torrent canChangeDownloadCheckForFiles: [item objectForKey: @"Indexes"]]) + if ([[item objectForKey: @"IsFolder"] boolValue]) + continue; + + indexSet = [item objectForKey: @"Indexes"]; + if ([torrent canChangeDownloadCheckForFiles: indexSet]) { - priority = [[item objectForKey: @"Priority"] intValue]; - if (priority == PRIORITY_HIGH) + if ([torrent hasFilePriority: TR_PRI_HIGH forIndexes: indexSet]) [fHighPriorityColor set]; - else if (priority == PRIORITY_LOW) + else if ([torrent hasFilePriority: TR_PRI_LOW forIndexes: indexSet]) [fLowPriorityColor set]; else continue; diff --git a/macosx/FilePriorityCell.m b/macosx/FilePriorityCell.m index d0806219d..a874a7f32 100644 --- a/macosx/FilePriorityCell.m +++ b/macosx/FilePriorityCell.m @@ -37,15 +37,15 @@ if (![torrent canChangeDownloadCheckForFiles: indexes]) return; - int priority = segment, actualPriority; - if (priority == 0) - actualPriority = PRIORITY_LOW; - else if (priority == 2) - actualPriority = PRIORITY_HIGH; + int priority; + if (segment == 0) + priority = TR_PRI_LOW; + else if (segment == 2) + priority = TR_PRI_HIGH; else - actualPriority = PRIORITY_NORMAL; + priority = TR_PRI_NORMAL; - [torrent setFilePriority: actualPriority forIndexes: indexes]; + [torrent setFilePriority: priority forIndexes: indexes]; [(FileOutlineView *)[self controlView] reloadData]; } @@ -57,9 +57,9 @@ if (![torrent canChangeDownloadCheckForFiles: indexSet]) return; - BOOL low = [torrent hasFilePriority: PRIORITY_LOW forIndexes: indexSet], - normal = [torrent hasFilePriority: PRIORITY_NORMAL forIndexes: indexSet], - high = [torrent hasFilePriority: PRIORITY_HIGH forIndexes: indexSet]; + BOOL low = [torrent hasFilePriority: TR_PRI_LOW forIndexes: indexSet], + normal = [torrent hasFilePriority: TR_PRI_NORMAL forIndexes: indexSet], + high = [torrent hasFilePriority: TR_PRI_HIGH forIndexes: indexSet]; FileOutlineView * view = (FileOutlineView *)[self controlView]; int row = [view hoverRow]; diff --git a/macosx/InfoWindowController.m b/macosx/InfoWindowController.m index f72ee98b6..b4a5c1f19 100644 --- a/macosx/InfoWindowController.m +++ b/macosx/InfoWindowController.m @@ -666,11 +666,11 @@ Torrent * torrent = [fTorrents objectAtIndex: 0]; if (menuItem == fFilePriorityHigh) - priority = PRIORITY_HIGH; + priority = TR_PRI_HIGH; else if (menuItem == fFilePriorityLow) - priority = PRIORITY_LOW; + priority = TR_PRI_LOW; else - priority = PRIORITY_NORMAL; + priority = TR_PRI_NORMAL; NSIndexSet * fileIndexSet; for (i = [indexSet firstIndex]; i != NSNotFound && (!current || !other); i = [indexSet indexGreaterThanIndex: i]) @@ -952,9 +952,9 @@ if (![torrent canChangeDownloadCheckForFiles: indexSet]) return NSLocalizedString(@"Priority Not Available", "Inspector -> files tab -> tooltip"); - BOOL low = [torrent hasFilePriority: PRIORITY_LOW forIndexes: indexSet], - normal = [torrent hasFilePriority: PRIORITY_NORMAL forIndexes: indexSet], - high = [torrent hasFilePriority: PRIORITY_HIGH forIndexes: indexSet]; + BOOL low = [torrent hasFilePriority: TR_PRI_LOW forIndexes: indexSet], + normal = [torrent hasFilePriority: TR_PRI_NORMAL forIndexes: indexSet], + high = [torrent hasFilePriority: TR_PRI_HIGH forIndexes: indexSet]; if (low && !normal && !high) return NSLocalizedString(@"Low Priority", "Inspector -> files tab -> tooltip"); @@ -1086,11 +1086,11 @@ { int priority; if (sender == fFilePriorityHigh) - priority = PRIORITY_HIGH; + priority = TR_PRI_HIGH; else if (sender == fFilePriorityLow) - priority = PRIORITY_LOW; + priority = TR_PRI_LOW; else - priority = PRIORITY_NORMAL; + priority = TR_PRI_NORMAL; Torrent * torrent = [fTorrents objectAtIndex: 0]; NSIndexSet * indexSet = [fFileOutline selectedRowIndexes]; diff --git a/macosx/Torrent.h b/macosx/Torrent.h index f0a5bb162..5da4e9171 100644 --- a/macosx/Torrent.h +++ b/macosx/Torrent.h @@ -25,10 +25,6 @@ #import #import -#define PRIORITY_LOW -1 -#define PRIORITY_NORMAL 0 -#define PRIORITY_HIGH 1 - #define INVALID -99 @interface Torrent : NSObject diff --git a/macosx/Torrent.m b/macosx/Torrent.m index 90e8b5e0a..8b91a2ff4 100644 --- a/macosx/Torrent.m +++ b/macosx/Torrent.m @@ -45,17 +45,15 @@ static int static_lastid = 0; checkUpload: (NSNumber *) checkUpload uploadLimit: (NSNumber *) uploadLimit checkDownload: (NSNumber *) checkDownload downloadLimit: (NSNumber *) downloadLimit pex: (NSNumber *) pex - waitToStart: (NSNumber *) waitToStart orderValue: (NSNumber *) orderValue - filesShouldDownload: (NSArray *) filesShouldDownload filePriorities: (NSArray *) filePriorities; -- (void) historyFilePriorities: (NSMutableArray *) history forItems: (NSArray *) items; + waitToStart: (NSNumber *) waitToStart orderValue: (NSNumber *) orderValue; - (BOOL) shouldUseIncompleteFolderForName: (NSString *) name; - (void) updateDownloadFolder; -- (void) createFileListShouldDownload: (NSArray *) filesShouldDownload priorities: (NSArray *) filePriorities; +- (void) createFileList; - (void) insertPath: (NSMutableArray *) components forSiblings: (NSMutableArray *) siblings withParent: (NSMutableDictionary *) parent previousPath: (NSString *) previousPath - flatList: (NSMutableArray *) flatList fileSize: (uint64_t) size index: (int) index priority: (int) priority; + flatList: (NSMutableArray *) flatList fileSize: (uint64_t) size index: (int) index; - (NSImage *) advancedBar; - (void) trashFile: (NSString *) path; @@ -88,8 +86,7 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 checkUpload: nil uploadLimit: nil checkDownload: nil downloadLimit: nil pex: nil - waitToStart: nil orderValue: nil - filesShouldDownload: nil filePriorities: nil]; + waitToStart: nil orderValue: nil]; if (self) { @@ -119,9 +116,7 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 downloadLimit: [history objectForKey: @"DownloadLimit"] pex: [history objectForKey: @"Pex"] waitToStart: [history objectForKey: @"WaitToStart"] - orderValue: [history objectForKey: @"OrderValue"] - filesShouldDownload: [history objectForKey: @"FilesShouldDownload"] - filePriorities: [history objectForKey: @"FilePriorities"]]; + orderValue: [history objectForKey: @"OrderValue"]]; if (self) { @@ -157,22 +152,6 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 if (fIncompleteFolder) [history setObject: fIncompleteFolder forKey: @"IncompleteFolder"]; - - //set file should download - int fileCount = [self fileCount]; - NSMutableArray * filesShouldDownload = [NSMutableArray arrayWithCapacity: fileCount]; - - tr_priority_t * priorities = tr_torrentGetFilePriorities(fHandle); - int i; - for (i = 0; i < fileCount; i++) - [filesShouldDownload addObject: [NSNumber numberWithBool: priorities[i] != TR_PRI_DND]]; - free(priorities); - [history setObject: filesShouldDownload forKey: @"FilesShouldDownload"]; - - //set file priorities - NSMutableArray * filePriorities = [NSMutableArray arrayWithCapacity: fileCount]; - [self historyFilePriorities: filePriorities forItems: fFileList]; - [history setObject: filePriorities forKey: @"FilePriorities"]; if (fPublicTorrent) [history setObject: [self publicTorrentLocation] forKey: @"TorrentPath"]; @@ -1309,8 +1288,7 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 int index; for (index = [indexSet firstIndex]; index != NSNotFound; index = [indexSet indexGreaterThanIndex: index]) { - if (tr_torrentGetFilePriority(fHandle, index) != TR_PRI_DND - || ![self canChangeDownloadCheckForFiles: [NSIndexSet indexSetWithIndex: index]]) + if (tr_torrentGetFileDL(fHandle, index) || ![self canChangeDownloadCheckForFiles: [NSIndexSet indexSetWithIndex: index]]) onState = YES; else offState = YES; @@ -1337,23 +1315,7 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 { int index; for (index = [indexSet firstIndex]; index != NSNotFound; index = [indexSet indexGreaterThanIndex: index]) - { - tr_priority_t actualPriority; - if (state == NSOnState) - { - int priority = [[[fFlatFileList objectAtIndex: index] objectForKey: @"Priority"] intValue]; - if (priority == PRIORITY_HIGH) - actualPriority = TR_PRI_HIGH; - else if (priority == PRIORITY_LOW) - actualPriority = TR_PRI_LOW; - else - actualPriority = TR_PRI_NORMAL; - } - else - actualPriority = TR_PRI_DND; - - tr_torrentSetFilePriority(fHandle, index, actualPriority); - } + tr_torrentSetFileDL(fHandle, index, state != NSOffState); [self update]; if ([self isPaused]) @@ -1362,32 +1324,16 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 - (void) setFilePriority: (int) priority forIndexes: (NSIndexSet *) indexSet { - NSNumber * priorityValue = [NSNumber numberWithInt: priority]; - int index; for (index = [indexSet firstIndex]; index != NSNotFound; index = [indexSet indexGreaterThanIndex: index]) - { - [[fFlatFileList objectAtIndex: index] setObject: priorityValue forKey: @"Priority"]; - - if ([self checkForFiles: [NSIndexSet indexSetWithIndex: index]] == NSOnState) - { - tr_priority_t actualPriority; - if (priority == PRIORITY_HIGH) - actualPriority = TR_PRI_HIGH; - else if (priority == PRIORITY_LOW) - actualPriority = TR_PRI_LOW; - else - actualPriority = TR_PRI_NORMAL; - tr_torrentSetFilePriority(fHandle, index, actualPriority); - } - } + tr_torrentSetFilePriority(fHandle, index, priority); } - (BOOL) hasFilePriority: (int) priority forIndexes: (NSIndexSet *) indexSet { int index; for (index = [indexSet firstIndex]; index != NSNotFound; index = [indexSet indexGreaterThanIndex: index]) - if (priority == [[[fFlatFileList objectAtIndex: index] objectForKey: @"Priority"] intValue] + if (priority == tr_torrentGetFilePriority(fHandle, index) && [self canChangeDownloadCheckForFiles: [NSIndexSet indexSetWithIndex: index]]) return YES; return NO; @@ -1405,8 +1351,8 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 - (NSDate *) dateActivity { - uint64_t date = fStat->activityDate / 1000; - return date != 0 ? [NSDate dateWithTimeIntervalSince1970: date] : fDateActivity; + uint64_t date = fStat->activityDate; + return date != 0 ? [NSDate dateWithTimeIntervalSince1970: date / 1000] : fDateActivity; } - (int) stalledMinutes @@ -1483,8 +1429,7 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 checkUpload: (NSNumber *) checkUpload uploadLimit: (NSNumber *) uploadLimit checkDownload: (NSNumber *) checkDownload downloadLimit: (NSNumber *) downloadLimit pex: (NSNumber *) pex - waitToStart: (NSNumber *) waitToStart orderValue: (NSNumber *) orderValue - filesShouldDownload: (NSArray *) filesShouldDownload filePriorities: (NSArray *) filePriorities; + waitToStart: (NSNumber *) waitToStart orderValue: (NSNumber *) orderValue; { if (!(self = [super init])) return nil; @@ -1581,7 +1526,7 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 fShortStatusString = [[NSMutableString alloc] initWithCapacity: 30]; fRemainingTimeString = [[NSMutableString alloc] initWithCapacity: 30]; - [self createFileListShouldDownload: filesShouldDownload priorities: filePriorities]; + [self createFileList]; //set up advanced bar fBitmap = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes: nil @@ -1597,14 +1542,12 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 return self; } -- (void) createFileListShouldDownload: (NSArray *) filesShouldDownload priorities: (NSArray *) filePriorities +- (void) createFileList { int count = [self fileCount], i; tr_file_t * file; NSMutableArray * pathComponents; NSString * path; - int priority; - tr_priority_t actualPriority; NSMutableArray * fileList = [[NSMutableArray alloc] init], * flatFileList = [[NSMutableArray alloc] initWithCapacity: count]; @@ -1622,24 +1565,9 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 else path = @""; - priority = filePriorities ? [[filePriorities objectAtIndex: i] intValue] : PRIORITY_NORMAL; [self insertPath: pathComponents forSiblings: fileList withParent: nil previousPath: path - flatList: flatFileList fileSize: file->length index: i priority: priority]; + flatList: flatFileList fileSize: file->length index: i]; [pathComponents autorelease]; - - if (!filesShouldDownload || [[filesShouldDownload objectAtIndex: i] boolValue]) - { - if (priority == PRIORITY_HIGH) - actualPriority = TR_PRI_HIGH; - else if (priority == PRIORITY_LOW) - actualPriority = TR_PRI_LOW; - else - actualPriority = TR_PRI_NORMAL; - } - else - actualPriority = TR_PRI_DND; - - tr_torrentSetFilePriority(fHandle, i, actualPriority); } fFileList = [[NSArray alloc] initWithArray: fileList]; @@ -1650,7 +1578,7 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 - (void) insertPath: (NSMutableArray *) components forSiblings: (NSMutableArray *) siblings withParent: (NSMutableDictionary *) parent previousPath: (NSString *) previousPath - flatList: (NSMutableArray *) flatList fileSize: (uint64_t) size index: (int) index priority: (int) priority + flatList: (NSMutableArray *) flatList fileSize: (uint64_t) size index: (int) index { NSString * name = [components objectAtIndex: 0]; BOOL isFolder = [components count] > 1; @@ -1683,7 +1611,6 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 [dict setObject: [NSIndexSet indexSetWithIndex: index] forKey: @"Indexes"]; [dict setObject: [NSNumber numberWithUnsignedLongLong: size] forKey: @"Size"]; [dict setObject: [[NSWorkspace sharedWorkspace] iconForFileType: [name pathExtension]] forKey: @"Icon"]; - [dict setObject: [NSNumber numberWithInt: priority] forKey: @"Priority"]; [flatList addObject: dict]; } @@ -1698,20 +1625,7 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 { [components removeObjectAtIndex: 0]; [self insertPath: components forSiblings: [dict objectForKey: @"Children"] - withParent: dict previousPath: currentPath flatList: flatList fileSize: size index: index priority: priority]; - } -} - -- (void) historyFilePriorities: (NSMutableArray *) history forItems: (NSArray *) items -{ - NSEnumerator * enumerator = [items objectEnumerator]; - NSDictionary * item; - while ((item = [enumerator nextObject])) - { - if (![[item objectForKey: @"IsFolder"] boolValue]) - [history addObject: [item objectForKey: @"Priority"]]; - else - [self historyFilePriorities: history forItems: [item objectForKey: @"Children"]]; + withParent: dict previousPath: currentPath flatList: flatList fileSize: size index: index]; } }