Changeset 244
- Timestamp:
- Apr 25, 2006, 4:31:19 PM (16 years ago)
- Location:
- trunk/macosx
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/macosx/Controller.m
r234 r244 110 110 111 111 NSString * torrentPath, * downloadFolder, * paused; 112 NSDate * date; 112 113 NSDictionary * dic; 113 114 … … 123 124 continue; 124 125 125 torrent = [[Torrent alloc] initWithPath: torrentPath lib: fLib]; 126 if ((date = [dic objectForKey: @"Date"])) 127 torrent = [[Torrent alloc] initWithPath: torrentPath lib: fLib date: date]; 128 else 129 torrent = [[Torrent alloc] initWithPath: torrentPath lib: fLib]; 130 126 131 if( !torrent ) 127 132 continue; … … 405 410 { 406 411 [self resumeTorrentWithIndex: [NSIndexSet indexSetWithIndexesInRange: 407 412 NSMakeRange(0, [fTorrents count])]]; 408 413 } 409 414 410 415 - (void) resumeTorrentWithIndex: (NSIndexSet *) indexSet 411 416 { 412 417 Torrent * torrent; 413 418 unsigned int i; 414 419 415 420 for (i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i]) 416 417 418 419 420 421 { 422 torrent = [fTorrents objectAtIndex: i]; 423 [torrent start]; 424 } 425 421 426 [self updateUI: nil]; 422 427 [self updateTorrentHistory]; … … 431 436 { 432 437 [self stopTorrentWithIndex: [NSIndexSet indexSetWithIndexesInRange: 433 438 NSMakeRange(0, [fTorrents count])]]; 434 439 } 435 440 436 441 - (void) stopTorrentWithIndex: (NSIndexSet *) indexSet 437 442 { 438 443 Torrent * torrent; 439 444 unsigned int i; 440 445 441 446 for (i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i]) 442 443 444 445 446 447 { 448 torrent = [fTorrents objectAtIndex: i]; 449 [torrent stop]; 450 } 451 447 452 [self updateUI: nil]; 448 453 [self updateTorrentHistory]; … … 453 458 deleteData: (BOOL) deleteData 454 459 { 455 460 int active = 0; 456 461 unsigned int i; 457 462 for (i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i]) 458 459 463 if ([[fTorrents objectAtIndex: i] isActive]) 464 active++; 460 465 461 466 if( active > 0 && [fDefaults boolForKey: @"CheckRemove"] ) … … 468 473 [dict retain]; 469 474 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 475 NSString * title, * message; 476 477 int selected = [fTableView numberOfSelectedRows]; 478 if (selected == 1) 479 { 480 title = [NSString stringWithFormat: @"Comfirm Removal of %@", 481 [[fTorrents objectAtIndex: [fTableView selectedRow]] name]]; 482 message = @"This torrent is active. Do you really want to remove it?"; 483 } 484 else 485 { 486 title = [NSString stringWithFormat: @"Comfirm Removal of %d Torrents", active]; 487 if (selected == active) 488 message = [NSString stringWithFormat: 489 @"There are %d active torrents. Do you really want to remove them?", active]; 490 else 491 message = [NSString stringWithFormat: 492 @"There are %d torrents (%d active). Do you really want to remove them?", selected, active]; 493 } 489 494 490 495 NSBeginAlertSheet(title, 491 496 @"Remove", @"Cancel", nil, fWindow, self, 492 497 @selector(removeSheetDidEnd:returnCode:contextInfo:), 493 498 nil, dict, message); 494 499 } 495 500 else … … 521 526 { 522 527 Torrent * torrent; 523 524 528 unsigned int i; 529 525 530 for (i = [indexSet lastIndex]; i != NSNotFound; i = [indexSet indexLessThanIndex: i]) 526 527 528 529 530 531 532 533 534 535 536 537 538 539 531 { 532 torrent = [fTorrents objectAtIndex: i]; 533 534 [torrent stop]; 535 536 if( deleteData ) 537 [torrent trashData]; 538 539 if( deleteTorrent ) 540 [torrent trashTorrent]; 541 542 [fTorrents removeObject: torrent]; 543 [torrent release]; 544 } 540 545 541 546 [self updateUI: nil]; … … 577 582 - (void) updateInfoPanel 578 583 { 579 584 int numberSelected = [fTableView numberOfSelectedRows]; 580 585 if( numberSelected != 1 ) 581 586 { 582 587 [fInfoImageView setImage: fAppIcon]; 583 588 584 589 [fInfoName setStringValue: numberSelected == 0 585 586 587 588 590 ? @"No Torrent Selected" 591 : [[NSString stringWithInt: numberSelected] 592 stringByAppendingString: @" Torrents Selected"]]; 593 589 594 [fInfoSize setStringValue: @""]; 590 595 [fInfoTracker setStringValue: @""]; … … 600 605 return; 601 606 } 602 603 607 608 int row = [fTableView selectedRow]; 604 609 605 610 Torrent * torrent = [fTorrents objectAtIndex: row]; … … 680 685 [torrent getFolder], @"DownloadFolder", 681 686 [torrent isActive] ? @"NO" : @"YES", @"Paused", 687 [torrent date], @"Date", 682 688 nil]]; 683 689 } … … 703 709 704 710 if( OSX_VERSION >= 10.3 && [fWindow isKeyWindow] && 705 711 [fTableView isRowSelected: rowIndex] ) 706 712 [cell setTextColor: [NSColor whiteColor]]; 707 713 else … … 893 899 if (action == @selector(resumeAllTorrents:)) 894 900 { 895 901 Torrent * torrent; 896 902 NSEnumerator * enumerator = [fTorrents objectEnumerator]; 897 903 while( ( torrent = [enumerator nextObject] ) ) … … 923 929 || action == @selector(removeTorrentDeleteBoth:)) 924 930 { 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 931 BOOL active = NO; 932 Torrent * torrent; 933 NSIndexSet * indexSet = [fTableView selectedRowIndexes]; 934 unsigned int i; 935 936 for (i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i]) 937 { 938 torrent = [fTorrents objectAtIndex: i]; 939 if ([torrent isActive]) 940 { 941 active = YES; 942 break; 943 } 944 } 945 940 946 //append or remove ellipsis when needed 941 947 if( active && [fDefaults boolForKey: @"CheckRemove"] ) … … 955 961 if( action == @selector(stopTorrent:) ) 956 962 { 957 958 959 960 961 962 963 964 965 966 967 968 969 970 963 Torrent * torrent; 964 NSIndexSet * indexSet = [fTableView selectedRowIndexes]; 965 unsigned int i; 966 967 for (i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i]) 968 { 969 torrent = [fTorrents objectAtIndex: i]; 970 if ([torrent isActive]) 971 return YES; 972 } 973 return NO; 974 } 975 976 //enable resume item 971 977 if( action == @selector(resumeTorrent:) ) 972 978 { 973 974 975 976 977 978 979 980 981 982 983 979 Torrent * torrent; 980 NSIndexSet * indexSet = [fTableView selectedRowIndexes]; 981 unsigned int i; 982 983 for (i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i]) 984 { 985 torrent = [fTorrents objectAtIndex: i]; 986 if ([torrent isPaused]) 987 return YES; 988 } 989 return NO; 984 990 } 985 991 -
trunk/macosx/Torrent.h
r165 r244 30 30 tr_info_t * fInfo; 31 31 tr_stat_t * fStat; 32 BOOL fResumeOnWake; 32 BOOL fResumeOnWake; 33 NSDate * fDate; 33 34 34 35 NSImage * fIcon; … … 41 42 42 43 - (id) initWithPath: (NSString *) path lib: (tr_handle_t *) lib; 44 - (id) initWithPath: (NSString *) path lib: (tr_handle_t *) lib 45 date: (NSDate *) date; 43 46 - (void) setFolder: (NSString *) path; 44 47 - (NSString *) getFolder; … … 79 82 - (uint64_t) downloaded; 80 83 - (uint64_t) uploaded; 84 - (NSDate *) date; 81 85 82 86 @end -
trunk/macosx/Torrent.m
r235 r244 34 34 @implementation Torrent 35 35 36 - (id) initWithPath: (NSString *) path lib: (tr_handle_t *) lib 36 - (id) initWithPath: (NSString *) path lib: (tr_handle_t *) lib date: (NSDate *) date 37 37 { 38 38 fLib = lib; … … 46 46 } 47 47 48 fDate = [date retain]; 48 49 fInfo = tr_torrentInfo( fHandle ); 49 50 … … 65 66 } 66 67 68 - (id) initWithPath: (NSString *) path lib: (tr_handle_t *) lib 69 { 70 return [self initWithPath: path lib: lib date: [NSDate date]]; 71 } 72 67 73 - (void) dealloc 68 74 { … … 70 76 { 71 77 tr_torrentClose( fLib, fHandle ); 78 [fDate release]; 72 79 [fIcon release]; 80 [fIconNonFlipped release]; 73 81 [fStatusString release]; 74 82 [fInfoString release]; … … 352 360 } 353 361 362 - (NSDate *) date 363 { 364 return fDate; 365 } 366 354 367 @end 355 368
Note: See TracChangeset
for help on using the changeset viewer.