Changeset 1546

Show
Ignore:
Timestamp:
08/28/04 14:49:35 (4 years ago)
Author:
morris
Message:

more multiple selection

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • WiredClient/trunk/WCAccounts.m

    r1545 r1546  
    1 /* $Id: WCAccounts.m,v 1.20 2004/08/28 12:34:20 morris Exp $ */ 
     1/* $Id: WCAccounts.m,v 1.21 2004/08/28 12:49:34 morris Exp $ */ 
    22 
    33/* 
     
    400400                        ? NSLocalizedString(@"group", @"Group singular") 
    401401                        : NSLocalizedString(@"groups", @"Group plural") ]]; 
    402  
    403 //      [_statusTextField setNeedsDisplay:YES]; 
    404402} 
    405403 
     
    497495        int                     count; 
    498496         
     497        // --- get rows 
    499498        count = [_accountsTableView numberOfSelectedRows]; 
    500499         
     
    502501                return; 
    503502 
     503        // --- set title 
    504504        if(count == 1) { 
    505505                title = [NSString stringWithFormat: 
  • WiredClient/trunk/WCFiles.h

    r1484 r1546  
    1 /* $Id: WCFiles.h,v 1.12 2004/08/12 20:12:19 morris Exp $ */ 
     1/* $Id: WCFiles.h,v 1.13 2004/08/28 12:49:35 morris Exp $ */ 
    22 
    33/* 
     
    8484- (void)                                                        changeDirectory:(WCFile *)path; 
    8585- (void)                                                        updateButtons; 
     86- (WCFile *)                                            selectedFile; 
     87- (NSArray *)                                           selectedFiles; 
    8688 
    8789- (BOOL)                                                        canMoveBack; 
  • WiredClient/trunk/WCFiles.m

    r1541 r1546  
    1 /* $Id: WCFiles.m,v 1.48 2004/08/27 19:31:52 morris Exp $ */ 
     1/* $Id: WCFiles.m,v 1.49 2004/08/28 12:49:35 morris Exp $ */ 
    22 
    33/* 
     
    150150        // --- double-click 
    151151        [_filesTableView setDoubleAction:@selector(open:)]; 
     152        [_filesTableView setDeleteAction:@selector(delete:)]; 
    152153         
    153154        // --- window title 
     
    341342- (void)deleteSheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo { 
    342343        NSEnumerator    *enumerator; 
    343         NSMutableArray  *array; 
    344         NSNumber                *row; 
    345344        WCFile                  *file; 
    346         int                             i; 
    347345         
    348346        if(returnCode == NSAlertDefaultReturn) { 
    349347                // --- get rows 
    350                 array = [NSMutableArray array]; 
    351                 enumerator = [_filesTableView selectedRowEnumerator]; 
    352                  
    353                 while((row = [enumerator nextObject])) { 
    354                         // --- get file 
    355                         i = [_filesTableView sortDescending] 
    356                                 ? [_shownFiles count] - [row unsignedIntValue] - 1 
    357                                 : [row unsignedIntValue]; 
    358                         file = [_shownFiles objectAtIndex:i]; 
    359                          
    360                         // --- add to array 
    361                         [array addObject:file]; 
    362                 } 
    363                  
    364                 // --- get files 
    365                 enumerator = [array objectEnumerator]; 
     348                enumerator = [[self selectedFiles] objectEnumerator]; 
    366349                 
    367350                while((file = [enumerator nextObject])) { 
     
    369352                        [_connection sendCommand:WCDeleteCommand withArgument:[file path] withSender:self]; 
    370353                } 
    371  
     354                 
    372355                // --- reload 
    373356                [[NSNotificationCenter defaultCenter] 
     
    577560        NSString        *extension; 
    578561        WCFile          *file; 
    579         int                     i, row; 
    580562                 
    581563        // --- selected rows 
     
    590572                case 1: 
    591573                        // --- get file 
    592                         row = [_filesTableView selectedRow]; 
    593                         i = [_filesTableView sortDescending] 
    594                                 ? [_shownFiles count] - (unsigned int) row - 1 
    595                                 : (unsigned int) row; 
    596                         file = [_shownFiles objectAtIndex:i]; 
     574                        file = [self selectedFile]; 
    597575                        extension = [[[file path] pathExtension] lowercaseString]; 
    598576 
     
    623601 
    624602 
     603- (WCFile *)selectedFile { 
     604        int             i, row; 
     605         
     606        // --- get row 
     607        row = [_filesTableView selectedRow]; 
     608         
     609        if(row < 0) 
     610                return NULL; 
     611         
     612        // --- get account 
     613        i = [_filesTableView sortDescending] 
     614                ? [_shownFiles count] - (unsigned int) row - 1 
     615                : (unsigned int) row; 
     616         
     617        return [_shownFiles objectAtIndex:i]; 
     618} 
     619 
     620 
     621 
     622- (NSArray *)selectedFiles { 
     623        NSEnumerator            *enumerator; 
     624        NSMutableArray          *array; 
     625        NSNumber                        *row; 
     626        int                                     i; 
     627         
     628        // --- get rows 
     629        array = [NSMutableArray array]; 
     630        enumerator = [_filesTableView selectedRowEnumerator]; 
     631         
     632        while((row = [enumerator nextObject])) { 
     633                // --- get file 
     634                i = [_filesTableView sortDescending] 
     635                        ? [_shownFiles count] - [row unsignedIntValue] - 1 
     636                        : [row unsignedIntValue]; 
     637                 
     638                [array addObject:[_shownFiles objectAtIndex:i]]; 
     639        } 
     640         
     641        return array; 
     642} 
     643 
     644 
     645 
     646#pragma mark - 
     647 
    625648- (BOOL)validateMenuItem:(id <NSMenuItem>)item { 
    626649        if(item == _downloadMenuItem) 
     
    634657 
    635658 
    636 #pragma mark - 
    637  
    638659- (BOOL)canMoveBack { 
    639660        return (_currentPath > 0); 
     
    695716- (IBAction)open:(id)sender { 
    696717        NSEnumerator    *enumerator; 
    697         NSNumber                *row; 
    698718        WCFile                  *file; 
    699719        BOOL                    optionKey, newWindows; 
    700         int                             i, count; 
     720        int                             count; 
    701721         
    702722        // --- ignore header clicks 
     
    707727        optionKey = (([[NSApp currentEvent] modifierFlags] & NSAlternateKeyMask) != 0); 
    708728        newWindows = [WCSettings boolForKey:WCOpenFoldersInNewWindows]; 
     729        count = [_filesTableView numberOfSelectedRows]; 
    709730                                 
    710731        // --- get files 
    711         count = [_filesTableView numberOfSelectedRows]; 
    712         enumerator = [_filesTableView selectedRowEnumerator]; 
    713          
    714         while((row = [enumerator nextObject])) { 
    715                 // --- get file 
    716                 i = [_filesTableView sortDescending] 
    717                         ? [_shownFiles count] - [row unsignedIntValue] - 1 
    718                         : [row unsignedIntValue]; 
    719                 file = [_shownFiles objectAtIndex:i]; 
    720                  
     732        enumerator = [[self selectedFiles] objectEnumerator]; 
     733         
     734        while((file = [enumerator nextObject])) { 
    721735                switch([file type]) { 
    722736                        case WCFileTypeDirectory: 
     
    799813        NSEnumerator    *enumerator; 
    800814        WCFile                  *file; 
    801         NSNumber                *row; 
    802         int                             i; 
    803815         
    804816        // --- get rows 
    805         enumerator = [_filesTableView selectedRowEnumerator]; 
    806          
    807         while((row = [enumerator nextObject])) { 
    808                 // --- get file 
    809                 i = [_filesTableView sortDescending] 
    810                         ? [_shownFiles count] - [row unsignedIntValue] - 1 
    811                         : [row unsignedIntValue]; 
    812                 file = [_shownFiles objectAtIndex:i]; 
    813                  
     817        enumerator = [[self selectedFiles] objectEnumerator]; 
     818         
     819        while((file = [enumerator nextObject])) { 
    814820                // --- queue a transfer 
    815821                [[_connection transfers] download:file preview:NO]; 
     
    844850        NSEnumerator    *enumerator; 
    845851        WCFile                  *file; 
    846         NSNumber                *row; 
    847         int                             i; 
    848                  
     852 
    849853        // --- get rows 
    850         enumerator = [_filesTableView selectedRowEnumerator]; 
    851          
    852         while((row = [enumerator nextObject])) { 
    853                 // --- get file 
    854                 i = [_filesTableView sortDescending] 
    855                         ? [_shownFiles count] - [row unsignedIntValue] - 1 
    856                         : [row unsignedIntValue]; 
    857                 file = [_shownFiles objectAtIndex:i]; 
    858                  
     854        enumerator = [[self selectedFiles] objectEnumerator]; 
     855         
     856        while((file = [enumerator nextObject])) { 
    859857                // --- create an info window 
    860858                [[WCFileInfo alloc] initWithConnection:_connection file:file]; 
     
    866864- (IBAction)preview:(id)sender { 
    867865        WCFile          *file; 
    868         int                     i, row; 
    869                  
    870         // --- get row number 
    871         row     = [_filesTableView selectedRow]; 
    872  
    873         if(row < 0) 
    874                 return; 
    875          
     866 
    876867        // --- get file 
    877         i = [_filesTableView sortDescending] 
    878                 ? [_shownFiles count] - (unsigned int) row - 1 
    879                 : (unsigned int) row; 
    880         file = [_shownFiles objectAtIndex:i]; 
     868        file = [self selectedFile]; 
    881869         
    882870        // --- queue a transfer 
     
    897885 
    898886- (IBAction)reload:(id)sender { 
    899         int             i, row; 
    900          
    901         // --- get row number 
    902         row     = [_filesTableView selectedRow]; 
    903  
    904         // --- save selection 
    905         if(row >= 0) { 
    906                 i = [_filesTableView sortDescending] 
    907                         ? [_shownFiles count] - (unsigned int) row - 1 
    908                         : (unsigned int) row; 
    909                 _selectPath = [[[_shownFiles objectAtIndex:i] path] retain]; 
    910         } 
     887        // --- get selected file 
     888        _selectPath = [[[self selectedFile] path] retain]; 
    911889         
    912890        // --- drop cache 
     
    920898 
    921899- (IBAction)delete:(id)sender { 
    922         NSString        *title, *description; 
    923         WCFile          *file; 
    924         int                     i, row; 
    925                  
    926         // --- get row number 
    927         row     = [_filesTableView selectedRow]; 
    928  
    929         if(row < 0) 
     900        NSString        *title; 
     901        int                     count; 
     902                 
     903        // --- get rows 
     904        count = [_filesTableView numberOfSelectedRows]; 
     905         
     906        if(count == 0) 
    930907                return; 
    931908         
    932         // --- setup dialog texts 
    933         if([_filesTableView numberOfSelectedRows] == 1) { 
    934                 i = [_filesTableView sortDescending] 
    935                         ? [_shownFiles count] - (unsigned int) row - 1 
    936                         : (unsigned int) row; 
    937                 file = [_shownFiles objectAtIndex:i]; 
     909        // --- set title 
     910        if(count == 1) { 
    938911                title = [NSString stringWithFormat: 
    939912                        NSLocalizedString(@"Are you sure you want to delete \"%@\"?", @"Delete file dialog title (filename)"), 
    940                         [file name]]; 
     913                        [[self selectedFile] name]]; 
    941914        } else { 
    942915                title = [NSString stringWithFormat: 
    943916                        NSLocalizedString(@"Are you sure you want to delete %u items?", @"Delete file dialog title (count)"), 
    944                         [_filesTableView numberOfSelectedRows]]; 
    945         } 
    946          
    947         description = NSLocalizedString(@"This cannot be undone.", @"Delete file dialog description"); 
    948  
     917                        count]; 
     918        } 
     919         
    949920        // --- bring up an alert 
    950921        NSBeginAlertSheet(title, 
     
    957928                                          NULL, 
    958929                                          NULL, 
    959                                           description); 
     930                                          NSLocalizedString(@"This cannot be undone.", @"Delete file dialog description")); 
    960931} 
    961932