~ubuntu-branches/ubuntu/jaunty/transmission/jaunty-security

« back to all changes in this revision

Viewing changes to macosx/FileOutlineController.m

  • Committer: Bazaar Package Importer
  • Author(s): Chris Coulson
  • Date: 2008-11-28 15:33:48 UTC
  • mfrom: (1.1.19 upstream)
  • Revision ID: james.westby@ubuntu.com-20081128153348-it70trfnxiroblmc
Tags: 1.40-0ubuntu1
* New upstream release (LP: #302672)
  - Tracker communication uses fewer resources
  - More accurate bandwidth limits
  - Reduce disk fragmentation by preallocating files (LP: #287726)
  - Stability, security and performance improvements to the RPC /
    Web UI server (closes LP: #290423)
  - Support compression when serving Web UI and RPC responses
  - Simplify the RPC whitelist
  - Fix bug that prevented handshakes with encrypted BitComet peers
  - Fix 1.3x bug that could re-download some data unnecessarily
    (LP: #295040)
  - Option to automatically update the blocklist weekly
  - Added off-hour bandwidth scheduling
  - Simplify file/priority selection in the details dialog
  - Fix a couple of crashes
  - New / updated translations
  - Don't inhibit hibernation by default (LP: #292929)
  - Use "close" animation when sending to notification area (LP: #130811)
  - Fix resize problems (LP: #269872)
  - Support "--version" option when launching from command line
    (LP: #292011)
  - Correctly parse announce URLs that have leading or trailing
    spaces (LP: #262411)
  - Display an error when "Open Torrent" fails (LP: #281463)
* Dropped 10_fix_crasher_from_upstream.dpatch: Fix is in this
  upstream release.
* debian/control: Don't just build-depend on libcurl-dev, which is
  a virtual package.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/******************************************************************************
2
 
 * $Id: FileOutlineController.m 5904 2008-05-22 18:39:49Z livings124 $
 
2
 * $Id: FileOutlineController.m 7005 2008-11-01 14:26:51Z livings124 $
3
3
 *
4
4
 * Copyright (c) 2008 Transmission authors and contributors
5
5
 *
30
30
#import "QuickLookController.h"
31
31
#import "NSApplicationAdditions.h"
32
32
 
33
 
#define ROW_SMALL_HEIGHT 18.0
 
33
#define ROW_SMALL_HEIGHT 18.0f
34
34
 
35
35
typedef enum
36
36
{
97
97
    [fOutline reloadData];
98
98
}
99
99
 
100
 
- (int) outlineView: (NSOutlineView *) outlineView numberOfChildrenOfItem: (id) item
 
100
- (NSInteger) outlineView: (NSOutlineView *) outlineView numberOfChildrenOfItem: (id) item
101
101
{
102
102
    if (!item)
103
103
        return fTorrent ? [[fTorrent fileList] count] : 0;
113
113
    return [(FileListNode *)item isFolder];
114
114
}
115
115
 
116
 
- (id) outlineView: (NSOutlineView *) outlineView child: (int) index ofItem: (id) item
 
116
- (id) outlineView: (NSOutlineView *) outlineView child: (NSInteger) index ofItem: (id) item
117
117
{
118
118
    return [(item ? [(FileListNode *)item children] : [fTorrent fileList]) objectAtIndex: index];
119
119
}
136
136
    {
137
137
        [cell setRepresentedObject: item];
138
138
        
139
 
        int hoveredRow = [fOutline hoveredRow];
 
139
        NSInteger hoveredRow = [fOutline hoveredRow];
140
140
        [(FilePriorityCell *)cell setHovered: hoveredRow != -1 && hoveredRow == [fOutline rowForItem: item]];
141
141
    }
142
142
    else;
211
211
    return nil;
212
212
}
213
213
 
214
 
- (float) outlineView: (NSOutlineView *) outlineView heightOfRowByItem: (id) item
 
214
- (CGFloat) outlineView: (NSOutlineView *) outlineView heightOfRowByItem: (id) item
215
215
{
216
216
    if ([(FileListNode *)item isFolder])
217
217
        return ROW_SMALL_HEIGHT;
221
221
 
222
222
- (void) setCheck: (id) sender
223
223
{
224
 
    int state = [sender tag] == FILE_UNCHECK_TAG ? NSOffState : NSOnState;
 
224
    NSInteger state = [sender tag] == FILE_UNCHECK_TAG ? NSOffState : NSOnState;
225
225
    
226
226
    NSIndexSet * indexSet = [fOutline selectedRowIndexes];
227
227
    NSMutableIndexSet * itemIndexes = [NSMutableIndexSet indexSet];
228
 
    int i;
229
 
    for (i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i])
 
228
    for (NSInteger i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i])
230
229
        [itemIndexes addIndexes: [[fOutline itemAtRow: i] indexes]];
231
230
    
232
231
    [fTorrent setFileCheckState: state forIndexes: itemIndexes];
237
236
{
238
237
    NSIndexSet * indexSet = [fOutline selectedRowIndexes];
239
238
    NSMutableIndexSet * itemIndexes = [NSMutableIndexSet indexSet];
240
 
    int i;
241
 
    for (i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i])
 
239
    for (NSInteger i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i])
242
240
        [itemIndexes addIndexes: [[fOutline itemAtRow: i] indexes]];
243
241
    
244
242
    [fTorrent setFileCheckState: NSOnState forIndexes: itemIndexes];
252
250
 
253
251
- (void) setPriority: (id) sender
254
252
{
255
 
    int priority;
 
253
    NSInteger priority;
256
254
    switch ([sender tag])
257
255
    {
258
256
        case FILE_PRIORITY_HIGH_TAG:
267
265
    
268
266
    NSIndexSet * indexSet = [fOutline selectedRowIndexes];
269
267
    NSMutableIndexSet * itemIndexes = [NSMutableIndexSet indexSet];
270
 
    int i;
271
 
    for (i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i])
 
268
    for (NSInteger i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i])
272
269
        [itemIndexes addIndexes: [[fOutline itemAtRow: i] indexes]];
273
270
    
274
271
    [fTorrent setFilePriority: priority forIndexes: itemIndexes];
279
276
{
280
277
    NSString * folder = [fTorrent downloadFolder];
281
278
    NSIndexSet * indexes = [fOutline selectedRowIndexes];
282
 
    int i;
283
 
    for (i = [indexes firstIndex]; i != NSNotFound; i = [indexes indexGreaterThanIndex: i])
 
279
    for (NSInteger i = [indexes firstIndex]; i != NSNotFound; i = [indexes indexGreaterThanIndex: i])
284
280
        [[NSWorkspace sharedWorkspace] selectFile: [folder stringByAppendingPathComponent:
285
281
            [[fOutline itemAtRow: i] fullPath]] inFileViewerRootedAtPath: nil];
286
282
}
297
293
    {
298
294
        NSString * downloadFolder = [fTorrent downloadFolder];
299
295
        NSIndexSet * indexSet = [fOutline selectedRowIndexes];
300
 
        int i;
301
 
        for (i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i])
 
296
        for (NSInteger i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i])
302
297
            if ([[NSFileManager defaultManager] fileExistsAtPath:
303
298
                    [downloadFolder stringByAppendingPathComponent: [[[fTorrent fileList] objectAtIndex: i] fullPath]]])
304
299
                return YES;
312
307
        
313
308
        NSIndexSet * indexSet = [fOutline selectedRowIndexes];
314
309
        NSMutableIndexSet * itemIndexes = [NSMutableIndexSet indexSet];
315
 
        int i, state = ([menuItem tag] == FILE_CHECK_TAG) ? NSOnState : NSOffState;
316
 
        for (i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i])
 
310
        for (NSInteger i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i])
317
311
            [itemIndexes addIndexes: [[fOutline itemAtRow: i] indexes]];
318
312
        
 
313
        NSInteger state = ([menuItem tag] == FILE_CHECK_TAG) ? NSOnState : NSOffState;
319
314
        return [fTorrent checkForFiles: itemIndexes] != state && [fTorrent canChangeDownloadCheckForFiles: itemIndexes];
320
315
    }
321
316
    
326
321
        
327
322
        NSIndexSet * indexSet = [fOutline selectedRowIndexes];
328
323
        NSMutableIndexSet * itemIndexes = [NSMutableIndexSet indexSet];
329
 
        int i;
330
 
        for (i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i])
 
324
        for (NSInteger i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i])
331
325
            [itemIndexes addIndexes: [[fOutline itemAtRow: i] indexes]];
332
326
            
333
327
        return [fTorrent canChangeDownloadCheckForFiles: itemIndexes];
343
337
        
344
338
        //determine which priorities are checked
345
339
        NSIndexSet * indexSet = [fOutline selectedRowIndexes];
346
 
        BOOL current = NO, other = NO;
347
 
        int i, priority;
348
 
        
 
340
        NSInteger priority;
349
341
        switch ([menuItem tag])
350
342
        {
351
343
            case FILE_PRIORITY_HIGH_TAG:
358
350
                priority = TR_PRI_LOW;
359
351
        }
360
352
        
 
353
        BOOL current = NO, canChange = NO;
361
354
        NSIndexSet * fileIndexSet;
362
 
        for (i = [indexSet firstIndex]; i != NSNotFound && (!current || !other); i = [indexSet indexGreaterThanIndex: i])
 
355
        for (NSInteger i = [indexSet firstIndex]; i != NSNotFound; i = [indexSet indexGreaterThanIndex: i])
363
356
        {
364
357
            fileIndexSet = [[fOutline itemAtRow: i] indexes];
365
358
            if (![fTorrent canChangeDownloadCheckForFiles: fileIndexSet])
366
359
                continue;
367
 
            else if ([fTorrent hasFilePriority: priority forIndexes: fileIndexSet])
 
360
            
 
361
            canChange = YES;
 
362
            if ([fTorrent hasFilePriority: priority forIndexes: fileIndexSet])
 
363
            {
368
364
                current = YES;
369
 
            else
370
 
                other = YES;
 
365
                break;
 
366
            }
371
367
        }
372
368
        
373
369
        [menuItem setState: current ? NSOnState : NSOffState];
374
 
        return current || other;
 
370
        return canChange;
375
371
    }
376
372
    
377
373
    return YES;