mirror of
https://github.com/transmission/transmission.git
synced 2026-05-08 09:39:08 +01:00
remove Growl 1.1...
This commit is contained in:
@@ -17,8 +17,5 @@ gtk/transmission-gtk
|
|||||||
libtransmission/*.a
|
libtransmission/*.a
|
||||||
libtransmission/.depend
|
libtransmission/.depend
|
||||||
libtransmission/version.h
|
libtransmission/version.h
|
||||||
macosx/English.lproj/*~.nib
|
|
||||||
macosx/Info.plist
|
|
||||||
macosx/Transmission.app
|
|
||||||
mk/config.mk
|
mk/config.mk
|
||||||
mk/version.mk
|
mk/version.mk
|
||||||
|
|||||||
@@ -1,39 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
|
|
||||||
@interface AboutWindowController : NSWindowController
|
|
||||||
{
|
|
||||||
IBOutlet NSTextView * fTextView, * fLicenseView;
|
|
||||||
IBOutlet NSTextField * fVersionField, * fCopyrightField;
|
|
||||||
IBOutlet NSPanel * fLicenseSheet;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AboutWindowController *) aboutController;
|
|
||||||
|
|
||||||
- (IBAction) showLicense: (id) sender;
|
|
||||||
- (IBAction) hideLicense: (id) sender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "AboutWindowController.h"
|
|
||||||
|
|
||||||
@implementation AboutWindowController
|
|
||||||
|
|
||||||
AboutWindowController * fAboutBoxInstance = nil;
|
|
||||||
+ (AboutWindowController *) aboutController
|
|
||||||
{
|
|
||||||
if (!fAboutBoxInstance)
|
|
||||||
fAboutBoxInstance = [[self alloc] initWithWindowNibName: @"AboutWindow"];
|
|
||||||
return fAboutBoxInstance;
|
|
||||||
}
|
|
||||||
|
|
||||||
#warning make completely localized
|
|
||||||
- (void) windowDidLoad
|
|
||||||
{
|
|
||||||
NSDictionary * info = [[NSBundle mainBundle] infoDictionary];
|
|
||||||
[fVersionField setStringValue: [NSString stringWithFormat: @"%@ (%@)",
|
|
||||||
[info objectForKey: @"CFBundleShortVersionString"], [info objectForKey: (NSString *)kCFBundleVersionKey]]];
|
|
||||||
|
|
||||||
[fCopyrightField setStringValue: [[NSBundle mainBundle] localizedStringForKey: @"NSHumanReadableCopyright"
|
|
||||||
value: nil table: @"InfoPlist"]];
|
|
||||||
|
|
||||||
[[fTextView textStorage] setAttributedString: [[[NSAttributedString alloc] initWithPath:
|
|
||||||
[[NSBundle mainBundle] pathForResource: @"Credits" ofType: @"rtf"] documentAttributes: nil] autorelease]];
|
|
||||||
|
|
||||||
[[self window] center];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) windowWillClose: (id)sender
|
|
||||||
{
|
|
||||||
[fAboutBoxInstance release];
|
|
||||||
fAboutBoxInstance = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction) showLicense: (id) sender
|
|
||||||
{
|
|
||||||
[fLicenseView setString: [NSString stringWithContentsOfFile: [[NSBundle mainBundle] pathForResource: @"LICENSE" ofType: nil]]];
|
|
||||||
|
|
||||||
[NSApp beginSheet: fLicenseSheet modalForWindow: [self window] modalDelegate: nil didEndSelector: nil contextInfo: nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction) hideLicense: (id) sender
|
|
||||||
{
|
|
||||||
[fLicenseSheet orderOut: nil];
|
|
||||||
[NSApp endSheet: fLicenseSheet];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
@interface ActionMenuRatioToDisplayRatioTransformer : NSValueTransformer
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "ActionMenuRatioToDisplayRatioTransformer.h"
|
|
||||||
|
|
||||||
@implementation ActionMenuRatioToDisplayRatioTransformer
|
|
||||||
|
|
||||||
+ (Class) transformedValueClass
|
|
||||||
{
|
|
||||||
return [NSString class];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (BOOL) allowsReverseTransformation
|
|
||||||
{
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id) transformedValue: (id) value
|
|
||||||
{
|
|
||||||
return value == nil ? nil : [NSString stringWithFormat: NSLocalizedString(@"Stop at Ratio (%.2f)",
|
|
||||||
"Action context menu -> ratio stop"), [value floatValue]];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
@interface ActionMenuSpeedToDisplayLimitTransformer : NSValueTransformer
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "ActionMenuSpeedToDisplayLimitTransformer.h"
|
|
||||||
|
|
||||||
@implementation ActionMenuSpeedToDisplayLimitTransformer
|
|
||||||
|
|
||||||
+ (Class) transformedValueClass
|
|
||||||
{
|
|
||||||
return [NSString class];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (BOOL) allowsReverseTransformation
|
|
||||||
{
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id) transformedValue: (id) value
|
|
||||||
{
|
|
||||||
return value == nil ? nil : [NSString stringWithFormat: NSLocalizedString(@"Limit (%d KB/s)",
|
|
||||||
"Action context menu -> upload/download limit"), [value intValue]];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
|
|
||||||
@interface ActionPopUpButton : NSPopUpButton
|
|
||||||
{
|
|
||||||
NSImage * fImage, * fImagePressed;
|
|
||||||
}
|
|
||||||
@end
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "ActionPopUpButton.h"
|
|
||||||
|
|
||||||
@implementation ActionPopUpButton
|
|
||||||
|
|
||||||
- (id) initWithCoder: (NSCoder *) coder
|
|
||||||
{
|
|
||||||
if ((self = [super initWithCoder: coder]))
|
|
||||||
{
|
|
||||||
fImage = [NSImage imageNamed: @"ActionButton.png"];
|
|
||||||
[fImage setFlipped: YES];
|
|
||||||
fImagePressed = [NSImage imageNamed: @"ActionButtonPressed.png"];
|
|
||||||
[fImagePressed setFlipped: YES];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) drawRect: (NSRect) rect
|
|
||||||
{
|
|
||||||
NSImage * image = [[self cell] isHighlighted] ? fImagePressed : fImage;
|
|
||||||
[image drawInRect: [self bounds] fromRect: NSZeroRect operation: NSCompositeSourceOver fraction: 1.0];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
Binary file not shown.
@@ -1,50 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2006-2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef BADGER_H
|
|
||||||
#define BADGER_H
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import <transmission.h>
|
|
||||||
|
|
||||||
@interface Badger : NSObject
|
|
||||||
{
|
|
||||||
tr_handle_t * fLib;
|
|
||||||
|
|
||||||
NSImage * fDockIcon, * fBadge, * fUploadBadge, * fDownloadBadge;
|
|
||||||
NSDictionary * fAttributes;
|
|
||||||
int fCompleted, fCompletedBadged;
|
|
||||||
BOOL fSpeedBadge;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id) initWithLib: (tr_handle_t *) lib;
|
|
||||||
|
|
||||||
- (void) updateBadge;
|
|
||||||
- (void) incrementCompleted;
|
|
||||||
- (void) clearCompleted;
|
|
||||||
- (void) clearBadge;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
#endif
|
|
||||||
-239
@@ -1,239 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2006-2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "Badger.h"
|
|
||||||
#import "NSStringAdditions.h"
|
|
||||||
|
|
||||||
@interface Badger (Private)
|
|
||||||
|
|
||||||
- (void) badgeString: (NSString *) string forRect: (NSRect) rect;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation Badger
|
|
||||||
|
|
||||||
- (id) initWithLib: (tr_handle_t *) lib
|
|
||||||
{
|
|
||||||
if ((self = [super init]))
|
|
||||||
{
|
|
||||||
fLib = lib;
|
|
||||||
|
|
||||||
fCompleted = 0;
|
|
||||||
fCompletedBadged = 0;
|
|
||||||
fSpeedBadge = NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) dealloc
|
|
||||||
{
|
|
||||||
[fDockIcon release];
|
|
||||||
[fAttributes release];
|
|
||||||
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) updateBadge
|
|
||||||
{
|
|
||||||
//set completed badge to top right
|
|
||||||
BOOL baseChange;
|
|
||||||
if (baseChange = (fCompleted != fCompletedBadged))
|
|
||||||
{
|
|
||||||
fCompletedBadged = fCompleted;
|
|
||||||
|
|
||||||
//force image to reload - copy does not work
|
|
||||||
NSImage * icon = [[NSImage imageNamed: @"NSApplicationIcon"] copy];
|
|
||||||
NSSize iconSize = [icon size];
|
|
||||||
|
|
||||||
if (fDockIcon)
|
|
||||||
[fDockIcon release];
|
|
||||||
fDockIcon = [[NSImage alloc] initWithSize: iconSize];
|
|
||||||
[fDockIcon addRepresentation: [icon bestRepresentationForDevice: nil]];
|
|
||||||
[icon release];
|
|
||||||
|
|
||||||
if (fCompleted > 0)
|
|
||||||
{
|
|
||||||
if (!fBadge)
|
|
||||||
fBadge = [NSImage imageNamed: @"Badge"];
|
|
||||||
|
|
||||||
NSRect badgeRect;
|
|
||||||
badgeRect.size = [fBadge size];
|
|
||||||
badgeRect.origin.x = iconSize.width - badgeRect.size.width;
|
|
||||||
badgeRect.origin.y = iconSize.height - badgeRect.size.height;
|
|
||||||
|
|
||||||
[fDockIcon lockFocus];
|
|
||||||
|
|
||||||
//place badge
|
|
||||||
[fBadge compositeToPoint: badgeRect.origin operation: NSCompositeSourceOver];
|
|
||||||
|
|
||||||
//ignore shadow of badge when placing string
|
|
||||||
float badgeBottomExtra = 5.0;
|
|
||||||
badgeRect.size.height -= badgeBottomExtra;
|
|
||||||
badgeRect.origin.y += badgeBottomExtra;
|
|
||||||
|
|
||||||
//place badge text
|
|
||||||
[self badgeString: [NSString stringWithFormat: @"%d", fCompleted] forRect: badgeRect];
|
|
||||||
|
|
||||||
[fDockIcon unlockFocus];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//set upload and download rate badges
|
|
||||||
NSString * downloadRateString = nil, * uploadRateString = nil;
|
|
||||||
|
|
||||||
BOOL checkDownload = [[NSUserDefaults standardUserDefaults] boolForKey: @"BadgeDownloadRate"],
|
|
||||||
checkUpload = [[NSUserDefaults standardUserDefaults] boolForKey: @"BadgeUploadRate"];
|
|
||||||
if (checkDownload || checkUpload)
|
|
||||||
{
|
|
||||||
float downloadRate, uploadRate;
|
|
||||||
tr_torrentRates(fLib, &downloadRate, &uploadRate);
|
|
||||||
|
|
||||||
if (checkDownload && downloadRate >= 0.1)
|
|
||||||
downloadRateString = [NSString stringForSpeedAbbrev: downloadRate];
|
|
||||||
if (checkUpload && uploadRate >= 0.1)
|
|
||||||
uploadRateString = [NSString stringForSpeedAbbrev: uploadRate];
|
|
||||||
}
|
|
||||||
|
|
||||||
NSImage * dockIcon = nil;
|
|
||||||
BOOL speedChange;
|
|
||||||
if ((speedChange = (uploadRateString || downloadRateString)))
|
|
||||||
{
|
|
||||||
if (!fDockIcon)
|
|
||||||
fDockIcon = [[NSImage imageNamed: @"NSApplicationIcon"] copy];
|
|
||||||
dockIcon = [fDockIcon copy];
|
|
||||||
|
|
||||||
if (!fUploadBadge)
|
|
||||||
fUploadBadge = [NSImage imageNamed: @"UploadBadge"];
|
|
||||||
if (!fDownloadBadge)
|
|
||||||
fDownloadBadge = [NSImage imageNamed: @"DownloadBadge"];
|
|
||||||
|
|
||||||
NSRect badgeRect;
|
|
||||||
badgeRect.size = [fUploadBadge size];
|
|
||||||
badgeRect.origin = NSZeroPoint;
|
|
||||||
|
|
||||||
//ignore shadow of badge when placing string
|
|
||||||
NSRect stringRect = badgeRect;
|
|
||||||
float badgeBottomExtra = 2.0;
|
|
||||||
stringRect.size.height -= badgeBottomExtra;
|
|
||||||
stringRect.origin.y += badgeBottomExtra;
|
|
||||||
|
|
||||||
[dockIcon lockFocus];
|
|
||||||
|
|
||||||
if (uploadRateString)
|
|
||||||
{
|
|
||||||
//place badge
|
|
||||||
[fUploadBadge compositeToPoint: badgeRect.origin operation: NSCompositeSourceOver];
|
|
||||||
|
|
||||||
//place badge text
|
|
||||||
[self badgeString: uploadRateString forRect: stringRect];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (downloadRateString)
|
|
||||||
{
|
|
||||||
//download rate above upload rate
|
|
||||||
if (uploadRateString)
|
|
||||||
{
|
|
||||||
float spaceBetween = badgeRect.size.height + 2.0;
|
|
||||||
badgeRect.origin.y += spaceBetween;
|
|
||||||
stringRect.origin.y += spaceBetween;
|
|
||||||
}
|
|
||||||
|
|
||||||
//place badge
|
|
||||||
[fDownloadBadge compositeToPoint: badgeRect.origin operation: NSCompositeSourceOver];
|
|
||||||
|
|
||||||
//place badge text
|
|
||||||
[self badgeString: downloadRateString forRect: stringRect];
|
|
||||||
}
|
|
||||||
|
|
||||||
[dockIcon unlockFocus];
|
|
||||||
}
|
|
||||||
|
|
||||||
//update dock badge
|
|
||||||
if (baseChange || fSpeedBadge || speedChange)
|
|
||||||
{
|
|
||||||
[NSApp setApplicationIconImage: dockIcon ? dockIcon : fDockIcon];
|
|
||||||
if (dockIcon)
|
|
||||||
[dockIcon release];
|
|
||||||
|
|
||||||
fSpeedBadge = speedChange;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) incrementCompleted
|
|
||||||
{
|
|
||||||
fCompleted++;
|
|
||||||
[self updateBadge];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) clearCompleted
|
|
||||||
{
|
|
||||||
if (fCompleted != 0)
|
|
||||||
{
|
|
||||||
fCompleted = 0;
|
|
||||||
[self updateBadge];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) clearBadge
|
|
||||||
{
|
|
||||||
fCompleted = 0;
|
|
||||||
fCompletedBadged = 0;
|
|
||||||
fSpeedBadge = NO;
|
|
||||||
[NSApp setApplicationIconImage: [NSImage imageNamed: @"NSApplicationIcon"]];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation Badger (Private)
|
|
||||||
|
|
||||||
//dock icon must have locked focus
|
|
||||||
- (void) badgeString: (NSString *) string forRect: (NSRect) rect
|
|
||||||
{
|
|
||||||
if (!fAttributes)
|
|
||||||
{
|
|
||||||
NSShadow * stringShadow = [[NSShadow alloc] init];
|
|
||||||
[stringShadow setShadowOffset: NSMakeSize(2.0, -2.0)];
|
|
||||||
[stringShadow setShadowBlurRadius: 4.0];
|
|
||||||
|
|
||||||
NSFont * boldFont = [[NSFontManager sharedFontManager] convertFont:
|
|
||||||
[NSFont fontWithName: @"Helvetica" size: 28.0] toHaveTrait: NSBoldFontMask];
|
|
||||||
|
|
||||||
fAttributes = [[NSDictionary alloc] initWithObjectsAndKeys:
|
|
||||||
[NSColor whiteColor], NSForegroundColorAttributeName,
|
|
||||||
boldFont, NSFontAttributeName, stringShadow, NSShadowAttributeName, nil];
|
|
||||||
|
|
||||||
[stringShadow release];
|
|
||||||
}
|
|
||||||
|
|
||||||
NSSize stringSize = [string sizeWithAttributes: fAttributes];
|
|
||||||
|
|
||||||
//string is in center of image
|
|
||||||
rect.origin.x += (rect.size.width - stringSize.width) * 0.5;
|
|
||||||
rect.origin.y += (rect.size.height - stringSize.height) * 0.5;
|
|
||||||
|
|
||||||
[string drawAtPoint: rect.origin withAttributes: fAttributes];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
//
|
|
||||||
// CTGradient.h
|
|
||||||
//
|
|
||||||
// Created by Chad Weider on 2/14/07.
|
|
||||||
// Copyright (c) 2007 Chad Weider.
|
|
||||||
// Some rights reserved: <http://creativecommons.org/licenses/by/2.5/>
|
|
||||||
//
|
|
||||||
// Version: 1.6
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
|
|
||||||
typedef struct _CTGradientElement
|
|
||||||
{
|
|
||||||
float red, green, blue, alpha;
|
|
||||||
float position;
|
|
||||||
|
|
||||||
struct _CTGradientElement *nextElement;
|
|
||||||
} CTGradientElement;
|
|
||||||
|
|
||||||
typedef enum _CTBlendingMode
|
|
||||||
{
|
|
||||||
CTLinearBlendingMode,
|
|
||||||
CTChromaticBlendingMode,
|
|
||||||
CTInverseChromaticBlendingMode
|
|
||||||
} CTGradientBlendingMode;
|
|
||||||
|
|
||||||
|
|
||||||
@interface CTGradient : NSObject <NSCopying, NSCoding>
|
|
||||||
{
|
|
||||||
CTGradientElement* elementList;
|
|
||||||
CTGradientBlendingMode blendingMode;
|
|
||||||
|
|
||||||
CGFunctionRef gradientFunction;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (id)gradientWithBeginningColor:(NSColor *)begin endingColor:(NSColor *)end;
|
|
||||||
|
|
||||||
+ (id)aquaSelectedGradient;
|
|
||||||
+ (id)aquaNormalGradient;
|
|
||||||
+ (id)aquaPressedGradient;
|
|
||||||
|
|
||||||
+ (id)unifiedSelectedGradient;
|
|
||||||
+ (id)unifiedNormalGradient;
|
|
||||||
+ (id)unifiedPressedGradient;
|
|
||||||
+ (id)unifiedDarkGradient;
|
|
||||||
|
|
||||||
+ (id)sourceListSelectedGradient;
|
|
||||||
+ (id)sourceListUnselectedGradient;
|
|
||||||
|
|
||||||
+ (id)rainbowGradient;
|
|
||||||
+ (id)hydrogenSpectrumGradient;
|
|
||||||
|
|
||||||
- (CTGradient *)gradientWithAlphaComponent:(float)alpha;
|
|
||||||
|
|
||||||
- (void)addElement:(CTGradientElement*)newElement;
|
|
||||||
|
|
||||||
- (CTGradient *)addColorStop:(NSColor *)color atPosition:(float)position; //positions given relative to [0,1]
|
|
||||||
- (CTGradient *)removeColorStopAtIndex:(unsigned)index;
|
|
||||||
- (CTGradient *)removeColorStopAtPosition:(float)position;
|
|
||||||
|
|
||||||
- (CTGradientBlendingMode)blendingMode;
|
|
||||||
- (NSColor *)colorStopAtIndex:(unsigned)index;
|
|
||||||
- (NSColor *)colorAtPosition:(float)position;
|
|
||||||
|
|
||||||
|
|
||||||
- (void)drawSwatchInRect:(NSRect)rect;
|
|
||||||
- (void)fillRect:(NSRect)rect angle:(float)angle; //fills rect with axial gradient
|
|
||||||
// angle in degrees
|
|
||||||
- (void)radialFillRect:(NSRect)rect; //fills rect with radial gradient
|
|
||||||
// gradient from center outwards
|
|
||||||
- (void)fillBezierPath:(NSBezierPath *)path angle:(float)angle;
|
|
||||||
- (void)radialFillBezierPath:(NSBezierPath *)path;
|
|
||||||
|
|
||||||
@end
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,49 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "CTGradient.h"
|
|
||||||
|
|
||||||
@interface CTGradient (ActionBarView)
|
|
||||||
+ (CTGradient *)actionNormalGradient;
|
|
||||||
+ (CTGradient *)actionPressedGradient;
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface CTGradient (ProgressBar)
|
|
||||||
+ (CTGradient *)progressWhiteGradient;
|
|
||||||
+ (CTGradient *)progressGrayGradient;
|
|
||||||
+ (CTGradient *)progressLightGrayGradient;
|
|
||||||
+ (CTGradient *)progressBlueGradient;
|
|
||||||
+ (CTGradient *)progressDarkBlueGradient;
|
|
||||||
+ (CTGradient *)progressGreenGradient;
|
|
||||||
+ (CTGradient *)progressLightGreenGradient;
|
|
||||||
+ (CTGradient *)progressDarkGreenGradient;
|
|
||||||
+ (CTGradient *)progressYellowGradient;
|
|
||||||
+ (CTGradient *)progressTransparentGradient;
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface CTGradient (MiddleColour)
|
|
||||||
+ (CTGradient *)gradientWithBeginningColor:(NSColor *)begin middleColor:(NSColor *)middle endingColor:(NSColor *)end;
|
|
||||||
+ (CTGradient *)gradientWithBeginningColor:(NSColor *)begin middleColor1:(NSColor *)middle1
|
|
||||||
middleColor2:(NSColor *)middle2 endingColor:(NSColor *)end;
|
|
||||||
@end
|
|
||||||
@@ -1,540 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "CTGradientAdditions.h"
|
|
||||||
|
|
||||||
@implementation CTGradient (ActionBar)
|
|
||||||
|
|
||||||
+ (CTGradient *)actionNormalGradient
|
|
||||||
{
|
|
||||||
CTGradient *newInstance = [[[self class] alloc] init];
|
|
||||||
|
|
||||||
CTGradientElement color1;
|
|
||||||
color1.red = color1.green = color1.blue = 0.9;
|
|
||||||
color1.alpha = 1.00;
|
|
||||||
color1.position = 0;
|
|
||||||
|
|
||||||
CTGradientElement color2;
|
|
||||||
color2.red = color2.green = color2.blue = 0.9;
|
|
||||||
color2.alpha = 1.00;
|
|
||||||
color2.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color3;
|
|
||||||
color3.red = color3.green = color3.blue = 0.95;
|
|
||||||
color3.alpha = 1.00;
|
|
||||||
color3.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color4;
|
|
||||||
color4.red = color4.green = color4.blue = 1.0;
|
|
||||||
color4.alpha = 1.00;
|
|
||||||
color4.position = 1;
|
|
||||||
|
|
||||||
[newInstance addElement:&color1];
|
|
||||||
[newInstance addElement:&color2];
|
|
||||||
[newInstance addElement:&color3];
|
|
||||||
[newInstance addElement:&color4];
|
|
||||||
|
|
||||||
return [newInstance autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (CTGradient *)actionPressedGradient
|
|
||||||
{
|
|
||||||
CTGradient *newInstance = [[[self class] alloc] init];
|
|
||||||
|
|
||||||
CTGradientElement color1;
|
|
||||||
color1.red = color1.green = color1.blue = 0.80;
|
|
||||||
color1.alpha = 1.00;
|
|
||||||
color1.position = 0;
|
|
||||||
|
|
||||||
CTGradientElement color2;
|
|
||||||
color2.red = color2.green = color2.blue = 0.64;
|
|
||||||
color2.alpha = 1.00;
|
|
||||||
color2.position = 11.5/23;
|
|
||||||
|
|
||||||
CTGradientElement color3;
|
|
||||||
color3.red = color3.green = color3.blue = 0.80;
|
|
||||||
color3.alpha = 1.00;
|
|
||||||
color3.position = 11.5/23;
|
|
||||||
|
|
||||||
CTGradientElement color4;
|
|
||||||
color4.red = color4.green = color4.blue = 0.77;
|
|
||||||
color4.alpha = 1.00;
|
|
||||||
color4.position = 1;
|
|
||||||
|
|
||||||
[newInstance addElement:&color1];
|
|
||||||
[newInstance addElement:&color2];
|
|
||||||
[newInstance addElement:&color3];
|
|
||||||
[newInstance addElement:&color4];
|
|
||||||
|
|
||||||
return [newInstance autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation CTGradient (ProgressBar)
|
|
||||||
|
|
||||||
+ (CTGradient *)progressWhiteGradient
|
|
||||||
{
|
|
||||||
CTGradient *newInstance = [[[self class] alloc] init];
|
|
||||||
|
|
||||||
CTGradientElement color1;
|
|
||||||
color1.red = color1.green = color1.blue = 0.95;
|
|
||||||
color1.alpha = 1.00;
|
|
||||||
color1.position = 0;
|
|
||||||
|
|
||||||
CTGradientElement color2;
|
|
||||||
color2.red = color2.green = color2.blue = 0.83;
|
|
||||||
color2.alpha = 1.00;
|
|
||||||
color2.position = 11.5/23;
|
|
||||||
|
|
||||||
CTGradientElement color3;
|
|
||||||
color3.red = color3.green = color3.blue = 0.95;
|
|
||||||
color3.alpha = 1.00;
|
|
||||||
color3.position = 11.5/23;
|
|
||||||
|
|
||||||
CTGradientElement color4;
|
|
||||||
color4.red = color4.green = color4.blue = 0.92;
|
|
||||||
color4.alpha = 1.00;
|
|
||||||
color4.position = 1;
|
|
||||||
|
|
||||||
[newInstance addElement:&color1];
|
|
||||||
[newInstance addElement:&color2];
|
|
||||||
[newInstance addElement:&color3];
|
|
||||||
[newInstance addElement:&color4];
|
|
||||||
|
|
||||||
return [newInstance autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (CTGradient *)progressGrayGradient
|
|
||||||
{
|
|
||||||
CTGradient *newInstance = [[[self class] alloc] init];
|
|
||||||
|
|
||||||
CTGradientElement color1;
|
|
||||||
color1.red = color1.green = color1.blue = 0.7;
|
|
||||||
color1.alpha = 1.00;
|
|
||||||
color1.position = 0;
|
|
||||||
|
|
||||||
CTGradientElement color2;
|
|
||||||
color2.red = color2.green = color2.blue = 0.6;
|
|
||||||
color2.alpha = 1.00;
|
|
||||||
color2.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color3;
|
|
||||||
color3.red = color3.green = color3.blue = 0.7;
|
|
||||||
color3.alpha = 1.00;
|
|
||||||
color3.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color4;
|
|
||||||
color4.red = color4.green = color4.blue = 0.7;
|
|
||||||
color4.alpha = 1.00;
|
|
||||||
color4.position = 1;
|
|
||||||
|
|
||||||
[newInstance addElement:&color1];
|
|
||||||
[newInstance addElement:&color2];
|
|
||||||
[newInstance addElement:&color3];
|
|
||||||
[newInstance addElement:&color4];
|
|
||||||
|
|
||||||
return [newInstance autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (CTGradient *)progressLightGrayGradient
|
|
||||||
{
|
|
||||||
CTGradient *newInstance = [[[self class] alloc] init];
|
|
||||||
|
|
||||||
CTGradientElement color1;
|
|
||||||
color1.red = color1.green = color1.blue = 0.87;
|
|
||||||
color1.alpha = 1.00;
|
|
||||||
color1.position = 0;
|
|
||||||
|
|
||||||
CTGradientElement color2;
|
|
||||||
color2.red = color2.green = color2.blue = 0.754;
|
|
||||||
color2.alpha = 1.00;
|
|
||||||
color2.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color3;
|
|
||||||
color3.red = color3.green = color3.blue = 0.87;
|
|
||||||
color3.alpha = 1.00;
|
|
||||||
color3.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color4;
|
|
||||||
color4.red = color4.green = color4.blue = 0.87;
|
|
||||||
color4.alpha = 1.00;
|
|
||||||
color4.position = 1;
|
|
||||||
|
|
||||||
[newInstance addElement:&color1];
|
|
||||||
[newInstance addElement:&color2];
|
|
||||||
[newInstance addElement:&color3];
|
|
||||||
[newInstance addElement:&color4];
|
|
||||||
|
|
||||||
return [newInstance autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (CTGradient *)progressBlueGradient
|
|
||||||
{
|
|
||||||
CTGradient *newInstance = [[[self class] alloc] init];
|
|
||||||
|
|
||||||
CTGradientElement color1;
|
|
||||||
color1.red = 0.416;
|
|
||||||
color1.green = 0.788;
|
|
||||||
color1.blue = 0.97;
|
|
||||||
color1.alpha = 1.00;
|
|
||||||
color1.position = 0;
|
|
||||||
|
|
||||||
CTGradientElement color2;
|
|
||||||
color2.red = 0.274;
|
|
||||||
color2.green = 0.52;
|
|
||||||
color2.blue = 0.94;
|
|
||||||
color2.alpha = 1.00;
|
|
||||||
color2.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color3;
|
|
||||||
color3.red = 0.372;
|
|
||||||
color3.green = 0.635;
|
|
||||||
color3.blue = 0.98;
|
|
||||||
color3.alpha = 1.00;
|
|
||||||
color3.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color4;
|
|
||||||
color4.red = 0.396;
|
|
||||||
color4.green = 0.66;
|
|
||||||
color4.blue = 1.00;
|
|
||||||
color4.alpha = 1.00;
|
|
||||||
color4.position = 1;
|
|
||||||
|
|
||||||
[newInstance addElement:&color1];
|
|
||||||
[newInstance addElement:&color2];
|
|
||||||
[newInstance addElement:&color3];
|
|
||||||
[newInstance addElement:&color4];
|
|
||||||
|
|
||||||
return [newInstance autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (CTGradient *)progressDarkBlueGradient
|
|
||||||
{
|
|
||||||
CTGradient *newInstance = [[[self class] alloc] init];
|
|
||||||
|
|
||||||
CTGradientElement color1;
|
|
||||||
color1.red = 0.616;
|
|
||||||
color1.green = 0.722;
|
|
||||||
color1.blue = 0.776;
|
|
||||||
color1.alpha = 1.00;
|
|
||||||
color1.position = 0;
|
|
||||||
|
|
||||||
CTGradientElement color2;
|
|
||||||
color2.red = 0.525;
|
|
||||||
color2.green = 0.631;
|
|
||||||
color2.blue = 0.737;
|
|
||||||
color2.alpha = 1.00;
|
|
||||||
color2.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color3;
|
|
||||||
color3.red = 0.651;
|
|
||||||
color3.green = 0.725;
|
|
||||||
color3.blue = 0.804;
|
|
||||||
color3.alpha = 1.00;
|
|
||||||
color3.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color4;
|
|
||||||
color4.red = 0.659;
|
|
||||||
color4.green = 0.733;
|
|
||||||
color4.blue = 0.800;
|
|
||||||
color4.alpha = 1.00;
|
|
||||||
color4.position = 1;
|
|
||||||
|
|
||||||
[newInstance addElement:&color1];
|
|
||||||
[newInstance addElement:&color2];
|
|
||||||
[newInstance addElement:&color3];
|
|
||||||
[newInstance addElement:&color4];
|
|
||||||
|
|
||||||
return [newInstance autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (CTGradient *)progressGreenGradient
|
|
||||||
{
|
|
||||||
CTGradient *newInstance = [[[self class] alloc] init];
|
|
||||||
|
|
||||||
CTGradientElement color1;
|
|
||||||
color1.red = 0.270;
|
|
||||||
color1.green = 0.89;
|
|
||||||
color1.blue = 0.35;
|
|
||||||
color1.alpha = 1.00;
|
|
||||||
color1.position = 0;
|
|
||||||
|
|
||||||
CTGradientElement color2;
|
|
||||||
color2.red = 0.180;
|
|
||||||
color2.green = 0.71;
|
|
||||||
color2.blue = 0.23;
|
|
||||||
color2.alpha = 1.00;
|
|
||||||
color2.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color3;
|
|
||||||
color3.red = 0.420;
|
|
||||||
color3.green = 0.86;
|
|
||||||
color3.blue = 0.32;
|
|
||||||
color3.alpha = 1.00;
|
|
||||||
color3.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color4;
|
|
||||||
color4.red = 0.466;
|
|
||||||
color4.green = 0.89;
|
|
||||||
color4.blue = 0.34;
|
|
||||||
color4.alpha = 1.00;
|
|
||||||
color4.position = 1;
|
|
||||||
|
|
||||||
[newInstance addElement:&color1];
|
|
||||||
[newInstance addElement:&color2];
|
|
||||||
[newInstance addElement:&color3];
|
|
||||||
[newInstance addElement:&color4];
|
|
||||||
|
|
||||||
return [newInstance autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (CTGradient *)progressLightGreenGradient
|
|
||||||
{
|
|
||||||
CTGradient *newInstance = [[[self class] alloc] init];
|
|
||||||
|
|
||||||
CTGradientElement color1;
|
|
||||||
color1.red = 0.522;
|
|
||||||
color1.green = 0.894;
|
|
||||||
color1.blue = 0.565;
|
|
||||||
color1.alpha = 1.00;
|
|
||||||
color1.position = 0;
|
|
||||||
|
|
||||||
CTGradientElement color2;
|
|
||||||
color2.red = 0.373;
|
|
||||||
color2.green = 0.780;
|
|
||||||
color2.blue = 0.408;
|
|
||||||
color2.alpha = 1.00;
|
|
||||||
color2.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color3;
|
|
||||||
color3.red = 0.659;
|
|
||||||
color3.green = 0.918;
|
|
||||||
color3.blue = 0.604;
|
|
||||||
color3.alpha = 1.00;
|
|
||||||
color3.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color4;
|
|
||||||
color4.red = 0.678;
|
|
||||||
color4.green = 0.929;
|
|
||||||
color4.blue = 0.608;
|
|
||||||
color4.alpha = 1.00;
|
|
||||||
color4.position = 1;
|
|
||||||
|
|
||||||
[newInstance addElement:&color1];
|
|
||||||
[newInstance addElement:&color2];
|
|
||||||
[newInstance addElement:&color3];
|
|
||||||
[newInstance addElement:&color4];
|
|
||||||
|
|
||||||
return [newInstance autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (CTGradient *)progressDarkGreenGradient
|
|
||||||
{
|
|
||||||
CTGradient *newInstance = [[[self class] alloc] init];
|
|
||||||
|
|
||||||
CTGradientElement color1;
|
|
||||||
color1.red = 0.627;
|
|
||||||
color1.green = 0.714;
|
|
||||||
color1.blue = 0.639;
|
|
||||||
color1.alpha = 1.00;
|
|
||||||
color1.position = 0;
|
|
||||||
|
|
||||||
CTGradientElement color2;
|
|
||||||
color2.red = 0.545;
|
|
||||||
color2.green = 0.635;
|
|
||||||
color2.blue = 0.561;
|
|
||||||
color2.alpha = 1.00;
|
|
||||||
color2.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color3;
|
|
||||||
color3.red = 0.690;
|
|
||||||
color3.green = 0.745;
|
|
||||||
color3.blue = 0.675;
|
|
||||||
color3.alpha = 1.00;
|
|
||||||
color3.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color4;
|
|
||||||
color4.red = 0.694;
|
|
||||||
color4.green = 0.741;
|
|
||||||
color4.blue = 0.678;
|
|
||||||
color4.alpha = 1.00;
|
|
||||||
color4.position = 1;
|
|
||||||
|
|
||||||
[newInstance addElement:&color1];
|
|
||||||
[newInstance addElement:&color2];
|
|
||||||
[newInstance addElement:&color3];
|
|
||||||
[newInstance addElement:&color4];
|
|
||||||
|
|
||||||
return [newInstance autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (CTGradient *)progressYellowGradient
|
|
||||||
{
|
|
||||||
CTGradient *newInstance = [[[self class] alloc] init];
|
|
||||||
|
|
||||||
CTGradientElement color1;
|
|
||||||
color1.red = 0.933;
|
|
||||||
color1.green = 0.831;
|
|
||||||
color1.blue = 0.227;
|
|
||||||
color1.alpha = 1.00;
|
|
||||||
color1.position = 1;
|
|
||||||
|
|
||||||
CTGradientElement color2;
|
|
||||||
color2.red = 0.965;
|
|
||||||
color2.green = 0.737;
|
|
||||||
color2.blue = 0.086;
|
|
||||||
color2.alpha = 1.00;
|
|
||||||
color2.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color3;
|
|
||||||
color3.red = 0.965;
|
|
||||||
color3.green = 0.831;
|
|
||||||
color3.blue = 0.169;
|
|
||||||
color3.alpha = 1.00;
|
|
||||||
color3.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color4;
|
|
||||||
color4.red = 0.965;
|
|
||||||
color4.green = 0.831;
|
|
||||||
color4.blue = 0.169;
|
|
||||||
color4.alpha = 1.00;
|
|
||||||
color4.position = 0;
|
|
||||||
|
|
||||||
[newInstance addElement:&color1];
|
|
||||||
[newInstance addElement:&color2];
|
|
||||||
[newInstance addElement:&color3];
|
|
||||||
[newInstance addElement:&color4];
|
|
||||||
|
|
||||||
return [newInstance autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (CTGradient *)progressTransparentGradient
|
|
||||||
{
|
|
||||||
CTGradient *newInstance = [[[self class] alloc] init];
|
|
||||||
|
|
||||||
CTGradientElement color1;
|
|
||||||
color1.red = color1.green = color1.blue = 1.0;
|
|
||||||
color1.alpha = 0.65;
|
|
||||||
color1.position = 0;
|
|
||||||
|
|
||||||
CTGradientElement color2;
|
|
||||||
color2.red = color2.green = color2.blue = 1.0;
|
|
||||||
color2.alpha = 0.05;
|
|
||||||
color2.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color3;
|
|
||||||
color3.red = color3.green = color3.blue = 1.0;
|
|
||||||
color3.alpha = 0.4;
|
|
||||||
color3.position = 0.5;
|
|
||||||
|
|
||||||
CTGradientElement color4;
|
|
||||||
color4.red = color4.green = color4.blue = 1.0;
|
|
||||||
color4.alpha = 0.4;
|
|
||||||
color4.position = 1;
|
|
||||||
|
|
||||||
[newInstance addElement:&color1];
|
|
||||||
[newInstance addElement:&color2];
|
|
||||||
[newInstance addElement:&color3];
|
|
||||||
[newInstance addElement:&color4];
|
|
||||||
|
|
||||||
return [newInstance autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
@implementation CTGradient (MiddleColour)
|
|
||||||
|
|
||||||
+ (CTGradient *)gradientWithBeginningColor:(NSColor *)begin middleColor:(NSColor *)middle endingColor:(NSColor *)end
|
|
||||||
{
|
|
||||||
CTGradient *newInstance = [[[self class] alloc] init];
|
|
||||||
|
|
||||||
CTGradientElement color1;
|
|
||||||
CTGradientElement color2;
|
|
||||||
CTGradientElement color3;
|
|
||||||
|
|
||||||
[[begin colorUsingColorSpaceName:NSCalibratedRGBColorSpace] getRed:&color1.red
|
|
||||||
green:&color1.green
|
|
||||||
blue:&color1.blue
|
|
||||||
alpha:&color1.alpha];
|
|
||||||
[[middle colorUsingColorSpaceName:NSCalibratedRGBColorSpace] getRed:&color2.red
|
|
||||||
green:&color2.green
|
|
||||||
blue:&color2.blue
|
|
||||||
alpha:&color2.alpha];
|
|
||||||
[[end colorUsingColorSpaceName:NSCalibratedRGBColorSpace] getRed:&color3.red
|
|
||||||
green:&color3.green
|
|
||||||
blue:&color3.blue
|
|
||||||
alpha:&color3.alpha];
|
|
||||||
color1.position = 0;
|
|
||||||
color2.position = 0.5;
|
|
||||||
color3.position = 1;
|
|
||||||
|
|
||||||
[newInstance addElement:&color1];
|
|
||||||
[newInstance addElement:&color2];
|
|
||||||
[newInstance addElement:&color3];
|
|
||||||
|
|
||||||
return [newInstance autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (CTGradient *)gradientWithBeginningColor:(NSColor *)begin middleColor1:(NSColor *)middle1
|
|
||||||
middleColor2:(NSColor *)middle2 endingColor:(NSColor *)end
|
|
||||||
{
|
|
||||||
CTGradient *newInstance = [[[self class] alloc] init];
|
|
||||||
|
|
||||||
CTGradientElement color1;
|
|
||||||
CTGradientElement color2;
|
|
||||||
CTGradientElement color3;
|
|
||||||
CTGradientElement color4;
|
|
||||||
|
|
||||||
[[begin colorUsingColorSpaceName:NSCalibratedRGBColorSpace] getRed:&color1.red
|
|
||||||
green:&color1.green
|
|
||||||
blue:&color1.blue
|
|
||||||
alpha:&color1.alpha];
|
|
||||||
[[middle1 colorUsingColorSpaceName:NSCalibratedRGBColorSpace] getRed:&color2.red
|
|
||||||
green:&color2.green
|
|
||||||
blue:&color2.blue
|
|
||||||
alpha:&color2.alpha];
|
|
||||||
[[middle2 colorUsingColorSpaceName:NSCalibratedRGBColorSpace] getRed:&color3.red
|
|
||||||
green:&color3.green
|
|
||||||
blue:&color3.blue
|
|
||||||
alpha:&color3.alpha];
|
|
||||||
[[end colorUsingColorSpaceName:NSCalibratedRGBColorSpace] getRed:&color4.red
|
|
||||||
green:&color4.green
|
|
||||||
blue:&color4.blue
|
|
||||||
alpha:&color4.alpha];
|
|
||||||
color1.position = 0;
|
|
||||||
color2.position = 0.5;
|
|
||||||
color3.position = 0.5;
|
|
||||||
color4.position = 1;
|
|
||||||
|
|
||||||
[newInstance addElement:&color1];
|
|
||||||
[newInstance addElement:&color2];
|
|
||||||
[newInstance addElement:&color3];
|
|
||||||
[newInstance addElement:&color4];
|
|
||||||
|
|
||||||
return [newInstance autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,241 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2005-2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef CONTROLLER_H
|
|
||||||
#define CONTROLLER_H
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import <transmission.h>
|
|
||||||
#import "PrefsController.h"
|
|
||||||
#import "InfoWindowController.h"
|
|
||||||
#import "MessageWindowController.h"
|
|
||||||
#import "DragOverlayWindow.h"
|
|
||||||
#import "Badger.h"
|
|
||||||
#import "ImageBackgroundView.h"
|
|
||||||
#import "FilterBarView.h"
|
|
||||||
#import "IPCController.h"
|
|
||||||
|
|
||||||
#import <Growl/Growl.h>
|
|
||||||
|
|
||||||
@class TorrentTableView;
|
|
||||||
|
|
||||||
@interface Controller : NSObject <GrowlApplicationBridgeDelegate>
|
|
||||||
{
|
|
||||||
tr_handle_t * fLib;
|
|
||||||
|
|
||||||
NSMutableArray * fTorrents, * fDisplayedTorrents;
|
|
||||||
|
|
||||||
PrefsController * fPrefsController;
|
|
||||||
NSUserDefaults * fDefaults;
|
|
||||||
InfoWindowController * fInfoController;
|
|
||||||
MessageWindowController * fMessageController;
|
|
||||||
IPCController * fIPCController;
|
|
||||||
|
|
||||||
IBOutlet NSWindow * fWindow;
|
|
||||||
DragOverlayWindow * fOverlayWindow;
|
|
||||||
IBOutlet NSScrollView * fScrollView;
|
|
||||||
IBOutlet TorrentTableView * fTableView;
|
|
||||||
|
|
||||||
IBOutlet NSMenuItem * fOpenIgnoreDownloadFolder;
|
|
||||||
|
|
||||||
IBOutlet ImageBackgroundView * fBottomBar;
|
|
||||||
IBOutlet NSButton * fActionButton, * fSpeedLimitButton;
|
|
||||||
NSTimer * fSpeedLimitTimer;
|
|
||||||
|
|
||||||
IBOutlet ImageBackgroundView * fStatusBar;
|
|
||||||
IBOutlet NSTextField * fTotalDLField, * fTotalULField, * fTotalTorrentsField;
|
|
||||||
|
|
||||||
IBOutlet NSMenuItem * fNameSortItem, * fStateSortItem, * fProgressSortItem,
|
|
||||||
* fTrackerSortItem, * fDateSortItem, * fOrderSortItem,
|
|
||||||
* fNameSortActionItem, * fStateSortActionItem, * fProgressSortActionItem,
|
|
||||||
* fTrackerSortActionItem, * fDateSortActionItem, * fOrderSortActionItem;
|
|
||||||
|
|
||||||
IBOutlet FilterBarView * fFilterBar;
|
|
||||||
IBOutlet FilterBarButton * fNoFilterButton, * fDownloadFilterButton,
|
|
||||||
* fSeedFilterButton, * fPauseFilterButton;
|
|
||||||
IBOutlet NSSearchField * fSearchFilterField;
|
|
||||||
IBOutlet NSMenuItem * fNextFilterItem, * fPrevFilterItem;
|
|
||||||
|
|
||||||
IBOutlet NSMenuItem * fNextInfoTabItem, * fPrevInfoTabItem;
|
|
||||||
|
|
||||||
IBOutlet NSMenu * fUploadMenu, * fDownloadMenu;
|
|
||||||
IBOutlet NSMenuItem * fUploadLimitItem, * fUploadNoLimitItem,
|
|
||||||
* fDownloadLimitItem, * fDownloadNoLimitItem;
|
|
||||||
|
|
||||||
IBOutlet NSWindow * fURLSheetWindow;
|
|
||||||
IBOutlet NSTextField * fURLSheetTextField;
|
|
||||||
|
|
||||||
io_connect_t fRootPort;
|
|
||||||
NSTimer * fTimer;
|
|
||||||
|
|
||||||
IBOutlet SUUpdater * fUpdater;
|
|
||||||
BOOL fUpdateInProgress;
|
|
||||||
|
|
||||||
Badger * fBadger;
|
|
||||||
IBOutlet NSMenu * fDockMenu;
|
|
||||||
|
|
||||||
NSMutableArray * fAutoImportedNames;
|
|
||||||
NSTimer * fAutoImportTimer;
|
|
||||||
|
|
||||||
NSMutableDictionary * fPendingTorrentDownloads;
|
|
||||||
NSMutableArray * fTempTorrentFiles;
|
|
||||||
|
|
||||||
BOOL fRemoteQuit;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) openFiles: (NSArray *) filenames;
|
|
||||||
- (void) openFiles: (NSArray *) filenames forcePath: (NSString *) path ignoreDownloadFolder: (BOOL) ignore
|
|
||||||
deleteTorrentFile: (torrentFileState) deleteTorrent;
|
|
||||||
- (void) openCreatedFile: (NSNotification *) notification;
|
|
||||||
- (void) openFilesWithDict: (NSDictionary *) dictionary;
|
|
||||||
- (void) openFilesAsk: (NSMutableArray *) files deleteTorrentFile: (torrentFileState) deleteTorrent;
|
|
||||||
- (void) openFilesAskWithDict: (NSDictionary *) dictionary;
|
|
||||||
- (void) openShowSheet: (id) sender;
|
|
||||||
|
|
||||||
- (void) duplicateOpenAlert: (NSString *) name;
|
|
||||||
|
|
||||||
- (void) openURL: (NSURL *) torrentURL;
|
|
||||||
- (void) openURLEndSheet: (id) sender;
|
|
||||||
- (void) openURLCancelEndSheet: (id) sender;
|
|
||||||
- (void) openURLShowSheet: (id) sender;
|
|
||||||
|
|
||||||
- (void) quitSheetDidEnd: (NSWindow *) sheet returnCode: (int) returnCode contextInfo: (void *) contextInfo;
|
|
||||||
|
|
||||||
- (void) createFile: (id) sender;
|
|
||||||
|
|
||||||
- (void) resumeSelectedTorrents: (id) sender;
|
|
||||||
- (void) resumeAllTorrents: (id) sender;
|
|
||||||
- (void) resumeTorrents: (NSArray *) torrents;
|
|
||||||
|
|
||||||
- (void) resumeSelectedTorrentsNoWait: (id) sender;
|
|
||||||
- (void) resumeWaitingTorrents: (id) sender;
|
|
||||||
- (void) resumeTorrentsNoWait: (NSArray *) torrents;
|
|
||||||
|
|
||||||
- (void) stopSelectedTorrents: (id) sender;
|
|
||||||
- (void) stopAllTorrents: (id) sender;
|
|
||||||
- (void) stopTorrents: (NSArray *) torrents;
|
|
||||||
|
|
||||||
- (void) removeTorrents: (NSArray *) torrents
|
|
||||||
deleteData: (BOOL) deleteData deleteTorrent: (BOOL) deleteData;
|
|
||||||
- (void) removeSheetDidEnd: (NSWindow *) sheet returnCode: (int) returnCode
|
|
||||||
contextInfo: (NSDictionary *) dict;
|
|
||||||
- (void) confirmRemoveTorrents: (NSArray *) torrents
|
|
||||||
deleteData: (BOOL) deleteData deleteTorrent: (BOOL) deleteTorrent;
|
|
||||||
- (void) removeNoDelete: (id) sender;
|
|
||||||
- (void) removeDeleteData: (id) sender;
|
|
||||||
- (void) removeDeleteTorrent: (id) sender;
|
|
||||||
- (void) removeDeleteDataAndTorrent: (id) sender;
|
|
||||||
|
|
||||||
- (void) moveDataFiles: (id) sender;
|
|
||||||
- (void) moveDataFileChoiceClosed: (NSOpenPanel *) panel returnCode: (int) code contextInfo: (NSArray *) torrents;
|
|
||||||
|
|
||||||
- (void) copyTorrentFiles: (id) sender;
|
|
||||||
- (void) copyTorrentFileForTorrents: (NSMutableArray *) torrents;
|
|
||||||
|
|
||||||
- (void) revealFile: (id) sender;
|
|
||||||
|
|
||||||
- (void) announceSelectedTorrents: (id) sender;
|
|
||||||
|
|
||||||
- (void) resetCacheForSelectedTorrents: (id) sender;
|
|
||||||
|
|
||||||
- (void) showPreferenceWindow: (id) sender;
|
|
||||||
|
|
||||||
- (void) showAboutWindow: (id) sender;
|
|
||||||
|
|
||||||
- (void) showInfo: (id) sender;
|
|
||||||
- (void) setInfoTab: (id) sender;
|
|
||||||
|
|
||||||
- (void) showMessageWindow: (id) sender;
|
|
||||||
|
|
||||||
- (void) updateControlTint: (NSNotification *) notification;
|
|
||||||
|
|
||||||
- (void) updateUI;
|
|
||||||
|
|
||||||
- (void) updateTorrentsInQueue;
|
|
||||||
- (int) numToStartFromQueue: (BOOL) downloadQueue;
|
|
||||||
|
|
||||||
- (void) torrentFinishedDownloading: (NSNotification *) notification;
|
|
||||||
- (void) torrentRestartedDownloading: (NSNotification *) notification;
|
|
||||||
|
|
||||||
- (void) updateTorrentHistory;
|
|
||||||
|
|
||||||
- (void) sortTorrents;
|
|
||||||
- (void) sortTorrentsIgnoreSelected;
|
|
||||||
- (void) setSort: (id) sender;
|
|
||||||
- (void) setSortReverse: (id) sender;
|
|
||||||
- (void) applyFilter: (id) sender;
|
|
||||||
- (void) setFilter: (id) sender;
|
|
||||||
- (void) setFilterSearchType: (id) sender;
|
|
||||||
- (void) switchFilter: (id) sender;
|
|
||||||
|
|
||||||
- (void) applySpeedLimit: (id) sender;
|
|
||||||
- (void) toggleSpeedLimit: (id) sender;
|
|
||||||
- (void) autoSpeedLimitChange: (NSNotification *) notification;
|
|
||||||
- (void) autoSpeedLimit;
|
|
||||||
|
|
||||||
- (void) setLimitGlobalEnabled: (id) sender;
|
|
||||||
- (void) setQuickLimitGlobal: (id) sender;
|
|
||||||
|
|
||||||
- (void) setQuickRatioGlobal: (id) sender;
|
|
||||||
|
|
||||||
- (void) torrentStoppedForRatio: (NSNotification *) notification;
|
|
||||||
|
|
||||||
- (void) changeAutoImport;
|
|
||||||
- (void) checkAutoImportDirectory;
|
|
||||||
|
|
||||||
- (void) beginCreateFile: (NSNotification *) notification;
|
|
||||||
|
|
||||||
- (void) sleepCallBack: (natural_t) messageType argument: (void *) messageArgument;
|
|
||||||
|
|
||||||
- (void) torrentTableViewSelectionDidChange: (NSNotification *) notification;
|
|
||||||
|
|
||||||
- (void) toggleSmallView: (id) sender;
|
|
||||||
|
|
||||||
- (void) toggleStatusBar: (id) sender;
|
|
||||||
- (void) showStatusBar: (BOOL) show animate: (BOOL) animate;
|
|
||||||
- (void) toggleFilterBar: (id) sender;
|
|
||||||
- (void) showFilterBar: (BOOL) show animate: (BOOL) animate;
|
|
||||||
|
|
||||||
- (void) toggleAdvancedBar: (id) sender;
|
|
||||||
|
|
||||||
- (void) doNothing: (id) sender; //needed for menu items that use bindings with no associated action
|
|
||||||
|
|
||||||
- (void) updateDockBadge: (NSNotification *) notification;
|
|
||||||
|
|
||||||
- (void) setWindowSizeToFit;
|
|
||||||
- (NSRect) sizedWindowFrame;
|
|
||||||
|
|
||||||
- (void) showMainWindow: (id) sender;
|
|
||||||
|
|
||||||
- (void) linkHomepage: (id) sender;
|
|
||||||
- (void) linkForums: (id) sender;
|
|
||||||
- (void) linkDonate: (id) sender;
|
|
||||||
|
|
||||||
- (void) prepareForUpdate: (NSNotification *) notification;
|
|
||||||
|
|
||||||
- (NSString *) applicationSupportFolder;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
#endif
|
|
||||||
-3440
File diff suppressed because it is too large
Load Diff
@@ -1,59 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "transmission.h"
|
|
||||||
#import "makemeta.h"
|
|
||||||
|
|
||||||
@interface CreatorWindowController : NSWindowController
|
|
||||||
{
|
|
||||||
IBOutlet NSImageView * fIconView;
|
|
||||||
IBOutlet NSTextField * fNameField, * fStatusField, * fPiecesField, * fTrackerField, * fLocationField;
|
|
||||||
IBOutlet NSTextView * fCommentView;
|
|
||||||
IBOutlet NSButton * fPrivateCheck, * fOpenCheck;
|
|
||||||
|
|
||||||
IBOutlet NSView * fProgressView;
|
|
||||||
IBOutlet NSProgressIndicator * fProgressIndicator;
|
|
||||||
|
|
||||||
tr_metainfo_builder_t * fInfo;
|
|
||||||
NSString * fPath, * fLocation;
|
|
||||||
BOOL fOpenTorrent;
|
|
||||||
|
|
||||||
NSTimer * fTimer;
|
|
||||||
BOOL fStarted;
|
|
||||||
|
|
||||||
NSUserDefaults * fDefaults;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void) createTorrentFile: (tr_handle_t *) handle;
|
|
||||||
+ (void) createTorrentFile: (tr_handle_t *) handle forFile: (NSString *) file;
|
|
||||||
|
|
||||||
- (id) initWithWindowNibName: (NSString *) name handle: (tr_handle_t *) handle path: (NSString *) path;
|
|
||||||
|
|
||||||
- (void) setLocation: (id) sender;
|
|
||||||
- (void) create: (id) sender;
|
|
||||||
- (void) cancelCreateWindow: (id) sender;
|
|
||||||
- (void) cancelCreateProgress: (id) sender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,378 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "CreatorWindowController.h"
|
|
||||||
#import "NSStringAdditions.h"
|
|
||||||
|
|
||||||
@interface CreatorWindowController (Private)
|
|
||||||
|
|
||||||
+ (NSString *) chooseFile;
|
|
||||||
- (void) locationSheetClosed: (NSSavePanel *) openPanel returnCode: (int) code contextInfo: (void *) info;
|
|
||||||
- (void) checkProgress;
|
|
||||||
- (void) failureSheetClosed: (NSAlert *) alert returnCode: (int) code contextInfo: (void *) info;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation CreatorWindowController
|
|
||||||
|
|
||||||
+ (void) createTorrentFile: (tr_handle_t *) handle
|
|
||||||
{
|
|
||||||
//get file/folder for torrent
|
|
||||||
NSString * path;
|
|
||||||
if (!(path = [CreatorWindowController chooseFile]))
|
|
||||||
return;
|
|
||||||
|
|
||||||
CreatorWindowController * creator = [[self alloc] initWithWindowNibName: @"Creator" handle: handle path: path];
|
|
||||||
[creator showWindow: nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void) createTorrentFile: (tr_handle_t *) handle forFile: (NSString *) file
|
|
||||||
{
|
|
||||||
CreatorWindowController * creator = [[self alloc] initWithWindowNibName: @"Creator" handle: handle path: file];
|
|
||||||
[creator showWindow: nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id) initWithWindowNibName: (NSString *) name handle: (tr_handle_t *) handle path: (NSString *) path
|
|
||||||
{
|
|
||||||
if ((self = [super initWithWindowNibName: name]))
|
|
||||||
{
|
|
||||||
fStarted = NO;
|
|
||||||
|
|
||||||
fPath = [path retain];
|
|
||||||
fInfo = tr_metaInfoBuilderCreate(handle, [fPath UTF8String]);
|
|
||||||
|
|
||||||
if (fInfo->fileCount == 0)
|
|
||||||
{
|
|
||||||
NSAlert * alert = [[NSAlert alloc] init];
|
|
||||||
[alert addButtonWithTitle: NSLocalizedString(@"OK", "Create torrent -> no files -> button")];
|
|
||||||
[alert setMessageText: NSLocalizedString(@"This folder contains no files.",
|
|
||||||
"Create torrent -> no files -> title")];
|
|
||||||
[alert setInformativeText: NSLocalizedString(@"There must be at least one file in a folder to create a torrent file.",
|
|
||||||
"Create torrent -> no files -> warning")];
|
|
||||||
[alert setAlertStyle: NSWarningAlertStyle];
|
|
||||||
|
|
||||||
[alert runModal];
|
|
||||||
[alert release];
|
|
||||||
|
|
||||||
[self release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
if (fInfo->totalSize == 0)
|
|
||||||
{
|
|
||||||
NSAlert * alert = [[NSAlert alloc] init];
|
|
||||||
[alert addButtonWithTitle: NSLocalizedString(@"OK", "Create torrent -> zero size -> button")];
|
|
||||||
[alert setMessageText: NSLocalizedString(@"The total file size is zero bytes.",
|
|
||||||
"Create torrent -> zero size -> title")];
|
|
||||||
[alert setInformativeText: NSLocalizedString(@"A torrent file cannot be created for files with no size.",
|
|
||||||
"Create torrent -> zero size -> warning")];
|
|
||||||
[alert setAlertStyle: NSWarningAlertStyle];
|
|
||||||
|
|
||||||
[alert runModal];
|
|
||||||
[alert release];
|
|
||||||
|
|
||||||
[self release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
fDefaults = [NSUserDefaults standardUserDefaults];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) awakeFromNib
|
|
||||||
{
|
|
||||||
NSString * name = [fPath lastPathComponent];
|
|
||||||
|
|
||||||
[[self window] setTitle: name];
|
|
||||||
|
|
||||||
[fNameField setStringValue: name];
|
|
||||||
[fNameField setToolTip: fPath];
|
|
||||||
|
|
||||||
BOOL multifile = !fInfo->isSingleFile;
|
|
||||||
|
|
||||||
NSImage * icon = [[NSWorkspace sharedWorkspace] iconForFileType: multifile
|
|
||||||
? NSFileTypeForHFSTypeCode('fldr') : [fPath pathExtension]];
|
|
||||||
[icon setSize: [fIconView frame].size];
|
|
||||||
[fIconView setImage: icon];
|
|
||||||
|
|
||||||
NSString * statusString = [NSString stringForFileSize: fInfo->totalSize];
|
|
||||||
if (multifile)
|
|
||||||
{
|
|
||||||
NSString * fileString;
|
|
||||||
int count = fInfo->fileCount;
|
|
||||||
if (count != 1)
|
|
||||||
fileString = [NSString stringWithFormat: NSLocalizedString(@"%d Files, ", "Create torrent -> info"), count];
|
|
||||||
else
|
|
||||||
fileString = NSLocalizedString(@"1 File, ", "Create torrent -> info");
|
|
||||||
statusString = [fileString stringByAppendingString: statusString];
|
|
||||||
}
|
|
||||||
[fStatusField setStringValue: statusString];
|
|
||||||
|
|
||||||
NSString * piecesCountString;
|
|
||||||
int piecesCount = fInfo->pieceCount;
|
|
||||||
if (piecesCount == 1)
|
|
||||||
piecesCountString = NSLocalizedString(@"1 piece", "Create torrent -> info");
|
|
||||||
else
|
|
||||||
piecesCountString = [NSString stringWithFormat: NSLocalizedString(@"%d pieces", "Create torrent -> info"),
|
|
||||||
piecesCount];
|
|
||||||
[fPiecesField setStringValue: [NSString stringWithFormat: NSLocalizedString(@"%@, %@ each", "Create torrent -> info"),
|
|
||||||
piecesCountString, [NSString stringForFileSize: fInfo->pieceSize]]];
|
|
||||||
|
|
||||||
fLocation = [[[[fDefaults stringForKey: @"CreatorLocation"] stringByExpandingTildeInPath] stringByAppendingPathComponent:
|
|
||||||
[name stringByAppendingPathExtension: @"torrent"]] retain];
|
|
||||||
[fLocationField setStringValue: [fLocation stringByAbbreviatingWithTildeInPath]];
|
|
||||||
[fLocationField setToolTip: fLocation];
|
|
||||||
|
|
||||||
//set previously saved values
|
|
||||||
NSString * tracker;
|
|
||||||
if ((tracker = [fDefaults stringForKey: @"CreatorTracker"]))
|
|
||||||
[fTrackerField setStringValue: tracker];
|
|
||||||
|
|
||||||
if ([fDefaults objectForKey: @"CreatorPrivate"])
|
|
||||||
[fPrivateCheck setState: [fDefaults boolForKey: @"CreatorPrivate"] ? NSOnState : NSOffState];
|
|
||||||
|
|
||||||
if ([fDefaults objectForKey: @"CreatorOpen"])
|
|
||||||
[fOpenCheck setState: [fDefaults boolForKey: @"CreatorOpen"] ? NSOnState : NSOffState];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) dealloc
|
|
||||||
{
|
|
||||||
[fPath release];
|
|
||||||
[fLocation release];
|
|
||||||
|
|
||||||
if (fInfo)
|
|
||||||
tr_metaInfoBuilderFree(fInfo);
|
|
||||||
|
|
||||||
if (fTimer)
|
|
||||||
[fTimer invalidate];
|
|
||||||
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setLocation: (id) sender
|
|
||||||
{
|
|
||||||
NSSavePanel * panel = [NSSavePanel savePanel];
|
|
||||||
|
|
||||||
[panel setPrompt: @"Select"];
|
|
||||||
[panel setRequiredFileType: @"torrent"];
|
|
||||||
[panel setCanSelectHiddenExtension: YES];
|
|
||||||
|
|
||||||
[panel beginSheetForDirectory: nil file: [fLocation lastPathComponent] modalForWindow: [self window] modalDelegate: self
|
|
||||||
didEndSelector: @selector(locationSheetClosed:returnCode:contextInfo:) contextInfo: nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) create: (id) sender
|
|
||||||
{
|
|
||||||
//parse tracker string
|
|
||||||
NSString * trackerString = [fTrackerField stringValue];
|
|
||||||
if ([trackerString rangeOfString: @"://"].location != NSNotFound)
|
|
||||||
{
|
|
||||||
if (![trackerString hasPrefix: @"http://"])
|
|
||||||
{
|
|
||||||
NSAlert * alert = [[[NSAlert alloc] init] autorelease];
|
|
||||||
[alert addButtonWithTitle: NSLocalizedString(@"OK", "Create torrent -> http warning -> button")];
|
|
||||||
[alert setMessageText: NSLocalizedString(@"The tracker address must begin with \"http://\".",
|
|
||||||
"Create torrent -> http warning -> title")];
|
|
||||||
[alert setInformativeText: NSLocalizedString(@"Change the tracker address to create the torrent.",
|
|
||||||
"Create torrent -> http warning -> warning")];
|
|
||||||
[alert setAlertStyle: NSWarningAlertStyle];
|
|
||||||
|
|
||||||
[alert beginSheetModalForWindow: [self window] modalDelegate: self didEndSelector: nil contextInfo: nil];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
trackerString = [@"http://" stringByAppendingString: trackerString];
|
|
||||||
|
|
||||||
//don't allow blank addresses
|
|
||||||
if ([trackerString length] <= 7)
|
|
||||||
{
|
|
||||||
NSAlert * alert = [[[NSAlert alloc] init] autorelease];
|
|
||||||
[alert addButtonWithTitle: NSLocalizedString(@"OK", "Create torrent -> no url warning -> button")];
|
|
||||||
[alert setMessageText: NSLocalizedString(@"The tracker address cannot be blank.",
|
|
||||||
"Create torrent -> no url warning -> title")];
|
|
||||||
[alert setInformativeText: NSLocalizedString(@"Change the tracker address to create the torrent.",
|
|
||||||
"Create torrent -> no url warning -> warning")];
|
|
||||||
[alert setAlertStyle: NSWarningAlertStyle];
|
|
||||||
|
|
||||||
[alert beginSheetModalForWindow: [self window] modalDelegate: self didEndSelector: nil contextInfo: nil];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//check if a file with the same name and location already exists
|
|
||||||
if ([[NSFileManager defaultManager] fileExistsAtPath: fLocation])
|
|
||||||
{
|
|
||||||
NSArray * pathComponents = [fLocation pathComponents];
|
|
||||||
int count = [pathComponents count];
|
|
||||||
|
|
||||||
NSAlert * alert = [[[NSAlert alloc] init] autorelease];
|
|
||||||
[alert addButtonWithTitle: NSLocalizedString(@"OK", "Create torrent -> file already exists warning -> button")];
|
|
||||||
[alert setMessageText: NSLocalizedString(@"A torrent file with this name and directory cannot be created.",
|
|
||||||
"Create torrent -> file already exists warning -> title")];
|
|
||||||
[alert setInformativeText: [NSString stringWithFormat:
|
|
||||||
NSLocalizedString(@"A file with the name \"%@\" already exists in the directory \"%@\". "
|
|
||||||
"Choose a new name or directory to create the torrent.",
|
|
||||||
"Create torrent -> file already exists warning -> warning"),
|
|
||||||
[pathComponents objectAtIndex: count-1], [pathComponents objectAtIndex: count-2]]];
|
|
||||||
[alert setAlertStyle: NSWarningAlertStyle];
|
|
||||||
|
|
||||||
[alert beginSheetModalForWindow: [self window] modalDelegate: self didEndSelector: nil contextInfo: nil];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fOpenTorrent = [fOpenCheck state] == NSOnState;
|
|
||||||
|
|
||||||
//store values
|
|
||||||
[fDefaults setObject: trackerString forKey: @"CreatorTracker"];
|
|
||||||
[fDefaults setBool: [fPrivateCheck state] == NSOnState forKey: @"CreatorPrivate"];
|
|
||||||
[fDefaults setBool: fOpenTorrent forKey: @"CreatorOpen"];
|
|
||||||
[fDefaults setObject: [fLocation stringByDeletingLastPathComponent] forKey: @"CreatorLocation"];
|
|
||||||
|
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName: @"BeginCreateTorrentFile" object: fLocation userInfo: nil];
|
|
||||||
tr_makeMetaInfo(fInfo, [fLocation UTF8String], [trackerString UTF8String], [[fCommentView string] UTF8String],
|
|
||||||
[fPrivateCheck state] == NSOnState);
|
|
||||||
|
|
||||||
fTimer = [NSTimer scheduledTimerWithTimeInterval: 0.1 target: self selector: @selector(checkProgress)
|
|
||||||
userInfo: nil repeats: YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) cancelCreateWindow: (id) sender
|
|
||||||
{
|
|
||||||
[[self window] close];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) windowWillClose: (NSNotification *) notification
|
|
||||||
{
|
|
||||||
[self release];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) cancelCreateProgress: (id) sender
|
|
||||||
{
|
|
||||||
fInfo->abortFlag = 1;
|
|
||||||
[fTimer fire];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation CreatorWindowController (Private)
|
|
||||||
|
|
||||||
+ (NSString *) chooseFile
|
|
||||||
{
|
|
||||||
NSOpenPanel * panel = [NSOpenPanel openPanel];
|
|
||||||
|
|
||||||
[panel setTitle: NSLocalizedString(@"Create Torrent File", "Create torrent -> select file")];
|
|
||||||
[panel setPrompt: NSLocalizedString(@"Select", "Create torrent -> select file")];
|
|
||||||
[panel setAllowsMultipleSelection: NO];
|
|
||||||
[panel setCanChooseFiles: YES];
|
|
||||||
[panel setCanChooseDirectories: YES];
|
|
||||||
[panel setCanCreateDirectories: NO];
|
|
||||||
|
|
||||||
[panel setMessage: NSLocalizedString(@"Select a file or folder for the torrent file.", "Create torrent -> select file")];
|
|
||||||
|
|
||||||
BOOL success = [panel runModal] == NSOKButton;
|
|
||||||
return success ? [[panel filenames] objectAtIndex: 0] : nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) locationSheetClosed: (NSSavePanel *) panel returnCode: (int) code contextInfo: (void *) info
|
|
||||||
{
|
|
||||||
if (code == NSOKButton)
|
|
||||||
{
|
|
||||||
[fLocation release];
|
|
||||||
fLocation = [[panel filename] retain];
|
|
||||||
|
|
||||||
[fLocationField setStringValue: [fLocation stringByAbbreviatingWithTildeInPath]];
|
|
||||||
[fLocationField setToolTip: fLocation];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) checkProgress
|
|
||||||
{
|
|
||||||
if (fInfo->isDone)
|
|
||||||
{
|
|
||||||
[fTimer invalidate];
|
|
||||||
fTimer = nil;
|
|
||||||
|
|
||||||
if (fInfo->failed)
|
|
||||||
{
|
|
||||||
if (!fInfo->abortFlag)
|
|
||||||
{
|
|
||||||
NSAlert * alert = [[[NSAlert alloc] init] autorelease];
|
|
||||||
[alert addButtonWithTitle: NSLocalizedString(@"OK", "Create torrent -> failed -> button")];
|
|
||||||
[alert setMessageText: [NSString stringWithFormat: NSLocalizedString(@"Creation of \"%@\" failed.",
|
|
||||||
"Create torrent -> failed -> title"), [fLocation lastPathComponent]]];
|
|
||||||
[alert setInformativeText: NSLocalizedString(@"There was an error parsing the data file. "
|
|
||||||
"The torrent file was not created.", "Create torrent -> failed -> warning")];
|
|
||||||
[alert setAlertStyle: NSWarningAlertStyle];
|
|
||||||
|
|
||||||
[alert beginSheetModalForWindow: [self window] modalDelegate: self
|
|
||||||
didEndSelector: @selector(failureSheetClosed:returnCode:contextInfo:) contextInfo: nil];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (fOpenTorrent)
|
|
||||||
{
|
|
||||||
NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys: fLocation, @"File",
|
|
||||||
[fPath stringByDeletingLastPathComponent], @"Path", nil];
|
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName: @"OpenCreatedTorrentFile" object: self userInfo: dict];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[[self window] close];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
[fProgressIndicator setDoubleValue: (double)fInfo->pieceIndex / fInfo->pieceCount];
|
|
||||||
|
|
||||||
if (!fStarted)
|
|
||||||
{
|
|
||||||
NSWindow * window = [self window];
|
|
||||||
|
|
||||||
NSRect windowRect = [window frame];
|
|
||||||
float difference = [fProgressView frame].size.height - [[window contentView] frame].size.height;
|
|
||||||
windowRect.origin.y -= difference;
|
|
||||||
windowRect.size.height += difference;
|
|
||||||
|
|
||||||
//don't allow vertical resizing
|
|
||||||
float height = windowRect.size.height;
|
|
||||||
[window setMinSize: NSMakeSize([window minSize].width, height)];
|
|
||||||
[window setMaxSize: NSMakeSize([window maxSize].width, height)];
|
|
||||||
|
|
||||||
[window setContentView: fProgressView];
|
|
||||||
[window setFrame: windowRect display: YES animate: YES];
|
|
||||||
[fProgressView setHidden: NO];
|
|
||||||
|
|
||||||
fStarted = YES;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) failureSheetClosed: (NSAlert *) alert returnCode: (int) code contextInfo: (void *) info
|
|
||||||
{
|
|
||||||
[[alert window] orderOut: nil];
|
|
||||||
[[self window] close];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,144 +0,0 @@
|
|||||||
{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf440
|
|
||||||
{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;}
|
|
||||||
{\colortbl;\red255\green255\blue255;\red127\green127\blue127;}
|
|
||||||
\vieww9000\viewh8400\viewkind0
|
|
||||||
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\qc
|
|
||||||
|
|
||||||
\f0\b\fs28 \cf0 The Transmission Project
|
|
||||||
\fs24 \
|
|
||||||
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\qc
|
|
||||||
|
|
||||||
\f1\b0 \cf0 http://transmission.m0k.org/
|
|
||||||
\f0\b \
|
|
||||||
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\ql\qnatural
|
|
||||||
\cf0 \
|
|
||||||
Lead Developers
|
|
||||||
\f1\b0 <transmission-dev@m0k.org>\
|
|
||||||
Eric Petit <titer@m0k.org>
|
|
||||||
\fs20 \cf2 (Creator)\
|
|
||||||
|
|
||||||
\fs24 \cf0 Josh Elsasser <josh@elsasser.org>
|
|
||||||
\fs20 \cf2 (Back-end, GTK+ interface, Daemon interface)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
Mitchell Livingston <livings124@gmail.com>
|
|
||||||
\fs20 \cf2 (Mac OS X interface, Back-end)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
Charles Kerr <charles@rebelbase.com>
|
|
||||||
\fs20 \cf2 (Back-end, GTK+ interface)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
Bryan Varner <bryan@varnernet.com>
|
|
||||||
\fs20 \cf2 (BeOS interface)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
|
|
||||||
\cf0 \
|
|
||||||
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\ql\qnatural
|
|
||||||
|
|
||||||
\f0\b \cf0 Project Contributors
|
|
||||||
\f1\b0 \
|
|
||||||
Nick Pucius
|
|
||||||
\fs20 \cf2 (Mac OS X Help documentation)\
|
|
||||||
|
|
||||||
\fs24 \cf0 Hugo van Heuven, madebysofa
|
|
||||||
\fs20 \cf2 (Icon design, Mac toolbar icons)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
|
|
||||||
\cf0 \
|
|
||||||
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\ql\qnatural
|
|
||||||
|
|
||||||
\f0\b \cf0 Translators
|
|
||||||
\f1\b0 \cf2 \
|
|
||||||
\cf0 Mac OS X, current release:\
|
|
||||||
Jorge Carrasco Perez \cf2
|
|
||||||
\fs20 (Spanish)\
|
|
||||||
|
|
||||||
\fs24 \cf0 Etienne Samson
|
|
||||||
\fs20 \cf2 (French)\
|
|
||||||
|
|
||||||
\fs24 \cf0 Marco Cavazzuti
|
|
||||||
\fs20 \cf2 (Italian)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
Thermaikos
|
|
||||||
\fs20 \cf2 (Greek)\
|
|
||||||
|
|
||||||
\fs24 \cf0 Jaewoo Chung
|
|
||||||
\fs20 \cf2 (Korean)\
|
|
||||||
|
|
||||||
\fs24 \cf0 Anton Sotkov
|
|
||||||
\fs20 \cf2 (Russian)\
|
|
||||||
|
|
||||||
\fs24 \cf0 Alexander Bykov
|
|
||||||
\fs20 \cf2 (Russian)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
|
|
||||||
\cf0 \
|
|
||||||
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\qc
|
|
||||||
|
|
||||||
\f0\b\fs28 \cf0 Special Thanks\
|
|
||||||
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\ql\qnatural
|
|
||||||
|
|
||||||
\fs24 \cf0 \
|
|
||||||
Image Contributors\
|
|
||||||
|
|
||||||
\f1\b0 FOOOD
|
|
||||||
\f0\b \
|
|
||||||
|
|
||||||
\f1\b0 Martin Stadtmueller
|
|
||||||
\fs20 \cf2 (Icon tweaking)
|
|
||||||
\f0\b\fs24 \cf0 \
|
|
||||||
|
|
||||||
\f1\b0 Mike Matas <http://www.mikematas.com/>
|
|
||||||
\fs20 \cf2 (Previous toolbar icons)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
Jonas Rask
|
|
||||||
\fs20 \cf2 (Globe icon)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
George Tsotsos\
|
|
||||||
Rashid Eissing
|
|
||||||
\fs20 \cf2 (Transfers preferences icon)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
\
|
|
||||||
|
|
||||||
\f0\b Other Contributors
|
|
||||||
\f1\b0 \
|
|
||||||
Omar and Adrien
|
|
||||||
\fs20 \cf2 (Beta testing)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
BitTorrent Protocol Specification <http://wiki.theory.org/BitTorrentSpecification>\
|
|
||||||
vi@nwr.jp
|
|
||||||
\fs20 \cf2 (Free SHA1 implementation)\
|
|
||||||
|
|
||||||
\fs24 \cf0 Ahmad M. Afuni
|
|
||||||
\fs20 \cf2 (NetBSD patch)\
|
|
||||||
|
|
||||||
\fs24 \cf0 Jeremy Messenger
|
|
||||||
\fs20 \cf2 (FreeBSD patch)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
John Blitch
|
|
||||||
\fs20 \cf2 (Mac OS X patch)\
|
|
||||||
|
|
||||||
\fs24 \cf0 Michael Demars <keul@m0k.org>
|
|
||||||
\fs20 \cf2 (Mac OS X patches)\
|
|
||||||
|
|
||||||
\fs24 \cf0 Fredrik Mod\'8een
|
|
||||||
\fs20 \cf2 (BeOS patches)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
Deanna Phillips
|
|
||||||
\fs20 \cf2 (transmissioncli manpage)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
Nicholas Shanks
|
|
||||||
\fs20 \cf2 (Mac OS X patches)\
|
|
||||||
|
|
||||||
\fs24 \cf0 TooMuchTime
|
|
||||||
\fs20 \cf2 (Technical Advice)
|
|
||||||
\fs24 \cf0 \
|
|
||||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
|
|
||||||
\cf0 \
|
|
||||||
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\ql\qnatural
|
|
||||||
|
|
||||||
\f0\b \cf0 Third-Party Resources\
|
|
||||||
|
|
||||||
\f1\b0 Thanks to:\
|
|
||||||
Niels Provos for libevent. <http://monkey.org/~provos/libevent/>\
|
|
||||||
The Growl Development Team for use of Growl. <http://growl.info/>\
|
|
||||||
Andy Matuschak for use of Sparkle. <http://sparkle.andymatuschak.org/>\
|
|
||||||
M. Uli Kusterer for use of UKKQueue.}
|
|
||||||
@@ -1,128 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>AutoImport</key>
|
|
||||||
<false/>
|
|
||||||
<key>AutoSize</key>
|
|
||||||
<false/>
|
|
||||||
<key>AutoStartDownload</key>
|
|
||||||
<true/>
|
|
||||||
<key>BadgeDownloadRate</key>
|
|
||||||
<true/>
|
|
||||||
<key>BadgeUploadRate</key>
|
|
||||||
<true/>
|
|
||||||
<key>BindPort</key>
|
|
||||||
<integer>9090</integer>
|
|
||||||
<key>CheckDownload</key>
|
|
||||||
<false/>
|
|
||||||
<key>CheckForUpdates</key>
|
|
||||||
<true/>
|
|
||||||
<key>CheckQuit</key>
|
|
||||||
<true/>
|
|
||||||
<key>CheckQuitDownloading</key>
|
|
||||||
<false/>
|
|
||||||
<key>CheckRemove</key>
|
|
||||||
<true/>
|
|
||||||
<key>CheckRemoveDownloading</key>
|
|
||||||
<false/>
|
|
||||||
<key>CheckStalled</key>
|
|
||||||
<false/>
|
|
||||||
<key>CheckUpload</key>
|
|
||||||
<true/>
|
|
||||||
<key>CreatorLocation</key>
|
|
||||||
<string>~/Desktop</string>
|
|
||||||
<key>DeleteOriginalTorrent</key>
|
|
||||||
<false/>
|
|
||||||
<key>DownloadChoice</key>
|
|
||||||
<string>Constant</string>
|
|
||||||
<key>DownloadFolder</key>
|
|
||||||
<string>~/Desktop</string>
|
|
||||||
<key>DownloadLimit</key>
|
|
||||||
<integer>100</integer>
|
|
||||||
<key>DownloadSound</key>
|
|
||||||
<string>Glass</string>
|
|
||||||
<key>EncryptionRequire</key>
|
|
||||||
<false/>
|
|
||||||
<key>Filter</key>
|
|
||||||
<string>None</string>
|
|
||||||
<key>FilterBar</key>
|
|
||||||
<false/>
|
|
||||||
<key>FilterSearchType</key>
|
|
||||||
<string>Name</string>
|
|
||||||
<key>IncompleteDownloadFolder</key>
|
|
||||||
<string>~/Desktop</string>
|
|
||||||
<key>InfoVisible</key>
|
|
||||||
<false/>
|
|
||||||
<key>InspectorSelected</key>
|
|
||||||
<string>Info</string>
|
|
||||||
<key>MessageLevel</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>MoveChoice</key>
|
|
||||||
<string>Constant</string>
|
|
||||||
<key>MoveFolder</key>
|
|
||||||
<string>~/Desktop</string>
|
|
||||||
<key>NatTraversal</key>
|
|
||||||
<true/>
|
|
||||||
<key>PiecesViewShowAvailability</key>
|
|
||||||
<false/>
|
|
||||||
<key>PlayDownloadSound</key>
|
|
||||||
<true/>
|
|
||||||
<key>PlaySeedingSound</key>
|
|
||||||
<false/>
|
|
||||||
<key>Queue</key>
|
|
||||||
<false/>
|
|
||||||
<key>QueueDownloadNumber</key>
|
|
||||||
<integer>3</integer>
|
|
||||||
<key>QueueSeed</key>
|
|
||||||
<false/>
|
|
||||||
<key>QueueSeedNumber</key>
|
|
||||||
<integer>3</integer>
|
|
||||||
<key>RatioCheck</key>
|
|
||||||
<false/>
|
|
||||||
<key>RatioLimit</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>SeedingSound</key>
|
|
||||||
<string>Submarine</string>
|
|
||||||
<key>ShowInspector</key>
|
|
||||||
<false/>
|
|
||||||
<key>SleepPrevent</key>
|
|
||||||
<true/>
|
|
||||||
<key>SmallStatusRegular</key>
|
|
||||||
<true/>
|
|
||||||
<key>SmallView</key>
|
|
||||||
<false/>
|
|
||||||
<key>Sort</key>
|
|
||||||
<string>Order</string>
|
|
||||||
<key>SortReverse</key>
|
|
||||||
<false/>
|
|
||||||
<key>SpeedLimit</key>
|
|
||||||
<false/>
|
|
||||||
<key>SpeedLimitAuto</key>
|
|
||||||
<false/>
|
|
||||||
<key>SpeedLimitAutoOffDate</key>
|
|
||||||
<date>2000-01-01T13:00:00Z</date>
|
|
||||||
<key>SpeedLimitAutoOnDate</key>
|
|
||||||
<date>2000-01-01T03:00:00Z</date>
|
|
||||||
<key>SpeedLimitDownloadLimit</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
<key>SpeedLimitUploadLimit</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
<key>StalledMinutes</key>
|
|
||||||
<integer>30</integer>
|
|
||||||
<key>StatusBar</key>
|
|
||||||
<true/>
|
|
||||||
<key>UploadLimit</key>
|
|
||||||
<integer>20</integer>
|
|
||||||
<key>UseAdvancedBar</key>
|
|
||||||
<false/>
|
|
||||||
<key>UseIncompleteDownloadFolder</key>
|
|
||||||
<false/>
|
|
||||||
<key>WarningDebug</key>
|
|
||||||
<true/>
|
|
||||||
<key>WarningDuplicate</key>
|
|
||||||
<true/>
|
|
||||||
<key>WarningRemainingSpace</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
|
|
||||||
@interface DragOverlayView : NSView
|
|
||||||
{
|
|
||||||
NSImage * fBadge, * fBackBadge, * fAppIcon;
|
|
||||||
|
|
||||||
NSDictionary * fMainLineAttributes, * fSubLineAttributes;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setOverlay: (NSImage *) icon mainLine: (NSString *) mainLine subLine: (NSString *) subLine;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,151 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "DragOverlayView.h"
|
|
||||||
#import "NSBezierPathAdditions.h"
|
|
||||||
|
|
||||||
@implementation DragOverlayView
|
|
||||||
|
|
||||||
- (id) initWithFrame: (NSRect) frame
|
|
||||||
{
|
|
||||||
if ((self = [super initWithFrame: frame]))
|
|
||||||
{
|
|
||||||
//create badge
|
|
||||||
NSRect badgeRect = NSMakeRect(0, 0, 325.0, 84.0);
|
|
||||||
NSBezierPath * bp = [NSBezierPath bezierPathWithRoundedRect: badgeRect radius: 15.0];
|
|
||||||
|
|
||||||
fBackBadge = [[NSImage alloc] initWithSize: badgeRect.size];
|
|
||||||
[fBackBadge lockFocus];
|
|
||||||
|
|
||||||
[[NSColor colorWithCalibratedWhite: 0.0 alpha: 0.75] set];
|
|
||||||
[bp fill];
|
|
||||||
|
|
||||||
[fBackBadge unlockFocus];
|
|
||||||
|
|
||||||
//create attributes
|
|
||||||
NSShadow * stringShadow = [[NSShadow alloc] init];
|
|
||||||
[stringShadow setShadowOffset: NSMakeSize(2.0, -2.0)];
|
|
||||||
[stringShadow setShadowBlurRadius: 4.0];
|
|
||||||
|
|
||||||
NSFont * bigFont = [[NSFontManager sharedFontManager] convertFont:
|
|
||||||
[NSFont fontWithName: @"Lucida Grande" size: 18.0] toHaveTrait: NSBoldFontMask],
|
|
||||||
* smallFont = [NSFont fontWithName: @"Lucida Grande" size: 14.0];
|
|
||||||
|
|
||||||
NSMutableParagraphStyle * paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
|
|
||||||
[paragraphStyle setLineBreakMode: NSLineBreakByTruncatingTail];
|
|
||||||
|
|
||||||
fMainLineAttributes = [[NSDictionary alloc] initWithObjectsAndKeys:
|
|
||||||
[NSColor whiteColor], NSForegroundColorAttributeName,
|
|
||||||
bigFont, NSFontAttributeName, stringShadow, NSShadowAttributeName,
|
|
||||||
paragraphStyle, NSParagraphStyleAttributeName, nil];
|
|
||||||
|
|
||||||
fSubLineAttributes = [[NSDictionary alloc] initWithObjectsAndKeys:
|
|
||||||
[NSColor whiteColor], NSForegroundColorAttributeName,
|
|
||||||
smallFont, NSFontAttributeName, stringShadow, NSShadowAttributeName,
|
|
||||||
paragraphStyle, NSParagraphStyleAttributeName, nil];
|
|
||||||
|
|
||||||
[stringShadow release];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) dealloc
|
|
||||||
{
|
|
||||||
[fBackBadge release];
|
|
||||||
|
|
||||||
[fBadge release];
|
|
||||||
[fAppIcon release];
|
|
||||||
|
|
||||||
[fMainLineAttributes release];
|
|
||||||
[fSubLineAttributes release];
|
|
||||||
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setOverlay: (NSImage *) icon mainLine: (NSString *) mainLine subLine: (NSString *) subLine
|
|
||||||
{
|
|
||||||
if (fBadge)
|
|
||||||
[fBadge release];
|
|
||||||
fBadge = [fBackBadge copy];
|
|
||||||
NSSize badgeSize = [fBadge size];
|
|
||||||
|
|
||||||
//get icon
|
|
||||||
NSSize iconSize = NSMakeSize(64.0, 64.0);
|
|
||||||
if (!icon)
|
|
||||||
{
|
|
||||||
if (!fAppIcon)
|
|
||||||
{
|
|
||||||
fAppIcon = [[NSImage imageNamed: @"TransmissionDocument.icns"] copy];
|
|
||||||
[fAppIcon setScalesWhenResized: YES];
|
|
||||||
[fAppIcon setSize: iconSize];
|
|
||||||
}
|
|
||||||
icon = [fAppIcon retain];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
icon = [icon copy];
|
|
||||||
[icon setScalesWhenResized: YES];
|
|
||||||
[icon setSize: iconSize];
|
|
||||||
}
|
|
||||||
|
|
||||||
float padding = 10.0;
|
|
||||||
|
|
||||||
[fBadge lockFocus];
|
|
||||||
|
|
||||||
//place icon
|
|
||||||
[icon compositeToPoint: NSMakePoint(padding, (badgeSize.height - iconSize.height) * 0.5)
|
|
||||||
operation: NSCompositeSourceOver];
|
|
||||||
[icon release];
|
|
||||||
|
|
||||||
//place main text
|
|
||||||
NSSize mainLineSize = [mainLine sizeWithAttributes: fMainLineAttributes];
|
|
||||||
NSSize subLineSize = [subLine sizeWithAttributes: fSubLineAttributes];
|
|
||||||
|
|
||||||
NSRect lineRect = NSMakeRect(padding + iconSize.width + 5.0,
|
|
||||||
(badgeSize.height + (subLineSize.height + 2.0 - mainLineSize.height)) * 0.5,
|
|
||||||
badgeSize.width - (padding + iconSize.width + 2.0) - padding, mainLineSize.height);
|
|
||||||
[mainLine drawInRect: lineRect withAttributes: fMainLineAttributes];
|
|
||||||
|
|
||||||
//place sub text
|
|
||||||
lineRect.origin.y -= subLineSize.height + 2.0;
|
|
||||||
lineRect.size.height = subLineSize.height;
|
|
||||||
[subLine drawInRect: lineRect withAttributes: fSubLineAttributes];
|
|
||||||
|
|
||||||
[fBadge unlockFocus];
|
|
||||||
|
|
||||||
[self setNeedsDisplay: YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
-(void) drawRect: (NSRect) rect
|
|
||||||
{
|
|
||||||
if (fBadge)
|
|
||||||
{
|
|
||||||
NSRect frame = [self frame];
|
|
||||||
NSSize imageSize = [fBadge size];
|
|
||||||
[fBadge compositeToPoint: NSMakePoint((frame.size.width - imageSize.width) * 0.5,
|
|
||||||
(frame.size.height - imageSize.height) * 0.5) operation: NSCompositeSourceOver];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import <transmission.h>
|
|
||||||
|
|
||||||
@interface DragOverlayWindow : NSWindow
|
|
||||||
{
|
|
||||||
tr_handle_t * fLib;
|
|
||||||
|
|
||||||
NSViewAnimation * fFadeInAnimation, * fFadeOutAnimation;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id) initWithLib: (tr_handle_t *) lib forWindow: (NSWindow *) window;
|
|
||||||
|
|
||||||
- (void) setTorrents: (NSArray *) files;
|
|
||||||
- (void) setFile: (NSString *) file;
|
|
||||||
- (void) setURL: (NSString *) url;
|
|
||||||
|
|
||||||
- (void) fadeIn;
|
|
||||||
- (void) fadeOut;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,170 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "DragOverlayWindow.h"
|
|
||||||
#import "DragOverlayView.h"
|
|
||||||
#import "NSStringAdditions.h"
|
|
||||||
|
|
||||||
@implementation DragOverlayWindow
|
|
||||||
|
|
||||||
- (id) initWithLib: (tr_handle_t *) lib forWindow: (NSWindow *) window
|
|
||||||
{
|
|
||||||
if (self = ([super initWithContentRect: NSMakeRect(0, 0, 1.0, 1.0) styleMask: NSBorderlessWindowMask
|
|
||||||
backing: NSBackingStoreBuffered defer: NO]))
|
|
||||||
{
|
|
||||||
fLib = lib;
|
|
||||||
|
|
||||||
[self setBackgroundColor: [NSColor colorWithCalibratedWhite: 0.0 alpha: 0.5]];
|
|
||||||
[self setAlphaValue: 0.0];
|
|
||||||
[self setOpaque: NO];
|
|
||||||
[self setHasShadow: NO];
|
|
||||||
|
|
||||||
DragOverlayView * view = [[DragOverlayView alloc] initWithFrame: [self frame]];
|
|
||||||
[self setContentView: view];
|
|
||||||
[view release];
|
|
||||||
|
|
||||||
[self setReleasedWhenClosed: NO];
|
|
||||||
[self setIgnoresMouseEvents: YES];
|
|
||||||
|
|
||||||
fFadeInAnimation = [[NSViewAnimation alloc] initWithViewAnimations: [NSArray arrayWithObject:
|
|
||||||
[NSDictionary dictionaryWithObjectsAndKeys: self, NSViewAnimationTargetKey,
|
|
||||||
NSViewAnimationFadeInEffect, NSViewAnimationEffectKey, nil]]];
|
|
||||||
[fFadeInAnimation setDuration: 0.15];
|
|
||||||
|
|
||||||
fFadeOutAnimation = [[NSViewAnimation alloc] initWithViewAnimations: [NSArray arrayWithObject:
|
|
||||||
[NSDictionary dictionaryWithObjectsAndKeys: self, NSViewAnimationTargetKey,
|
|
||||||
NSViewAnimationFadeOutEffect, NSViewAnimationEffectKey, nil]]];
|
|
||||||
[fFadeOutAnimation setDuration: 0.5];
|
|
||||||
[fFadeOutAnimation setAnimationBlockingMode: NSAnimationNonblockingThreaded];
|
|
||||||
|
|
||||||
[window addChildWindow: self ordered: NSWindowAbove];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) dealloc
|
|
||||||
{
|
|
||||||
[fFadeInAnimation release];
|
|
||||||
[fFadeOutAnimation release];
|
|
||||||
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setTorrents: (NSArray *) files
|
|
||||||
{
|
|
||||||
uint64_t size = 0;
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
NSString * name;
|
|
||||||
BOOL folder;
|
|
||||||
int fileCount = 0;
|
|
||||||
|
|
||||||
NSString * file;
|
|
||||||
NSEnumerator * enumerator = [files objectEnumerator];
|
|
||||||
tr_info_t info;
|
|
||||||
while ((file = [enumerator nextObject]))
|
|
||||||
{
|
|
||||||
if (tr_torrentParse(fLib, [file UTF8String], NULL, &info) == TR_OK)
|
|
||||||
{
|
|
||||||
count++;
|
|
||||||
size += info.totalSize;
|
|
||||||
fileCount += info.fileCount;
|
|
||||||
|
|
||||||
//only useful when one torrent
|
|
||||||
if (count == 1)
|
|
||||||
{
|
|
||||||
name = [NSString stringWithUTF8String: info.name];
|
|
||||||
folder = info.multifile;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tr_metainfoFree(&info);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (count <= 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
//set strings and icon
|
|
||||||
NSImage * icon = nil;
|
|
||||||
NSString * secondString = [NSString stringForFileSize: size];
|
|
||||||
if (count > 1 || folder)
|
|
||||||
{
|
|
||||||
NSString * fileString;
|
|
||||||
if (fileCount == 1)
|
|
||||||
fileString = NSLocalizedString(@"1 File, ", "Drag overlay -> torrents");
|
|
||||||
else
|
|
||||||
fileString= [NSString stringWithFormat: NSLocalizedString(@"%d Files, ", "Drag overlay -> torrents"), fileCount];
|
|
||||||
secondString = [fileString stringByAppendingString: secondString];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (count == 1)
|
|
||||||
icon = [[NSWorkspace sharedWorkspace] iconForFileType: folder ? NSFileTypeForHFSTypeCode('fldr') : [name pathExtension]];
|
|
||||||
else
|
|
||||||
{
|
|
||||||
name = [NSString stringWithFormat: NSLocalizedString(@"%d Torrent Files", "Drag overlay -> torrents"), count];
|
|
||||||
secondString = [secondString stringByAppendingString: @" Total"];
|
|
||||||
}
|
|
||||||
|
|
||||||
[[self contentView] setOverlay: icon mainLine: name subLine: secondString];
|
|
||||||
[self fadeIn];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setFile: (NSString *) file
|
|
||||||
{
|
|
||||||
[[self contentView] setOverlay: [NSImage imageNamed: @"CreateLarge.png"]
|
|
||||||
mainLine: NSLocalizedString(@"Create a Torrent File", "Drag overlay -> file") subLine: file];
|
|
||||||
[self fadeIn];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (void) setURL: (NSString *) url
|
|
||||||
{
|
|
||||||
[[self contentView] setOverlay: [NSImage imageNamed: @"Globe.png"]
|
|
||||||
mainLine: NSLocalizedString(@"Web Address", "Drag overlay -> url") subLine: url];
|
|
||||||
[self fadeIn];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) fadeIn
|
|
||||||
{
|
|
||||||
//stop other animation and set to same progress
|
|
||||||
if ([fFadeOutAnimation isAnimating])
|
|
||||||
{
|
|
||||||
[fFadeOutAnimation stopAnimation];
|
|
||||||
[fFadeInAnimation setCurrentProgress: 1.0 - [fFadeOutAnimation currentProgress]];
|
|
||||||
}
|
|
||||||
[self setFrame: [[self parentWindow] frame] display: YES];
|
|
||||||
[fFadeInAnimation startAnimation];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) fadeOut
|
|
||||||
{
|
|
||||||
//stop other animation and set to same progress
|
|
||||||
if ([fFadeInAnimation isAnimating])
|
|
||||||
{
|
|
||||||
[fFadeInAnimation stopAnimation];
|
|
||||||
[fFadeOutAnimation setCurrentProgress: 1.0 - [fFadeInAnimation currentProgress]];
|
|
||||||
}
|
|
||||||
[fFadeOutAnimation startAnimation];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
-19
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{
|
|
||||||
ACTIONS = {hideLicense = id; showLicense = id; };
|
|
||||||
CLASS = AboutWindowController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fCopyrightField = NSTextField;
|
|
||||||
fLicenseSheet = NSPanel;
|
|
||||||
fLicenseView = NSTextView;
|
|
||||||
fTextView = NSTextView;
|
|
||||||
fVersionField = NSTextField;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
},
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-16
@@ -1,16 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>17 91 356 240 0 0 1152 842 </string>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBOpenObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>5</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R218</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
-30
@@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
cancelCreateProgress = id;
|
|
||||||
cancelCreateWindow = id;
|
|
||||||
create = id;
|
|
||||||
setLocation = id;
|
|
||||||
};
|
|
||||||
CLASS = CreatorWindowController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fCommentView = NSTextView;
|
|
||||||
fIconView = NSImageView;
|
|
||||||
fLocationField = NSTextField;
|
|
||||||
fNameField = NSTextField;
|
|
||||||
fOpenCheck = NSButton;
|
|
||||||
fPiecesField = NSTextField;
|
|
||||||
fPrivateCheck = NSButton;
|
|
||||||
fProgressIndicator = NSProgressIndicator;
|
|
||||||
fProgressView = NSView;
|
|
||||||
fStatusField = NSTextField;
|
|
||||||
fTrackerField = NSTextField;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
},
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-21
@@ -1,21 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>52 61 356 240 0 0 1152 842 </string>
|
|
||||||
<key>IBEditorPositions</key>
|
|
||||||
<dict>
|
|
||||||
<key>56</key>
|
|
||||||
<string>392 515 368 126 0 0 1152 842 </string>
|
|
||||||
</dict>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBOpenObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>5</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R218</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
BIN
Binary file not shown.
@@ -1,4 +0,0 @@
|
|||||||
/* Localized versions of Info.plist keys */
|
|
||||||
|
|
||||||
CFBundleName = "Transmission";
|
|
||||||
NSHumanReadableCopyright = "Copyright 2005-2007 The Transmission Project";
|
|
||||||
-87
@@ -1,87 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{CLASS = FileOutlineView; LANGUAGE = ObjC; SUPERCLASS = NSOutlineView; },
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
revealDataFile = id;
|
|
||||||
revealFile = id;
|
|
||||||
revealTorrentFile = id;
|
|
||||||
setCheck = id;
|
|
||||||
setOnlySelectedCheck = id;
|
|
||||||
setPex = id;
|
|
||||||
setPiecesView = id;
|
|
||||||
setPriority = id;
|
|
||||||
setRatioLimit = id;
|
|
||||||
setRatioSetting = id;
|
|
||||||
setSpeedLimit = id;
|
|
||||||
setSpeedMode = id;
|
|
||||||
};
|
|
||||||
CLASS = InfoWindowController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fCommentView = NSTextView;
|
|
||||||
fCompletedFromTrackerField = NSTextField;
|
|
||||||
fConnectedPeersField = NSTextField;
|
|
||||||
fCreatorField = NSTextField;
|
|
||||||
fDataLocationField = NSTextField;
|
|
||||||
fDateActivityField = NSTextField;
|
|
||||||
fDateAddedField = NSTextField;
|
|
||||||
fDateCompletedField = NSTextField;
|
|
||||||
fDateCreatedField = NSTextField;
|
|
||||||
fDownloadLimitField = NSTextField;
|
|
||||||
fDownloadLimitLabel = NSTextField;
|
|
||||||
fDownloadLimitPopUp = NSPopUpButton;
|
|
||||||
fDownloadedTotalField = NSTextField;
|
|
||||||
fDownloadedValidField = NSTextField;
|
|
||||||
fDownloadingFromField = NSTextField;
|
|
||||||
fErrorMessageView = NSTextView;
|
|
||||||
fFileCheckItem = NSMenuItem;
|
|
||||||
fFileOutline = FileOutlineView;
|
|
||||||
fFilePriorityHigh = NSMenuItem;
|
|
||||||
fFilePriorityLow = NSMenuItem;
|
|
||||||
fFilePriorityNormal = NSMenuItem;
|
|
||||||
fFileTableStatusField = NSTextField;
|
|
||||||
fFileUncheckItem = NSMenuItem;
|
|
||||||
fHashField = NSTextField;
|
|
||||||
fImageView = NSImageView;
|
|
||||||
fLeechersField = NSTextField;
|
|
||||||
fNameField = NSTextField;
|
|
||||||
fPeerTable = NSTableView;
|
|
||||||
fPexCheck = NSButton;
|
|
||||||
fPiecesControl = NSSegmentedControl;
|
|
||||||
fPiecesField = NSTextField;
|
|
||||||
fPiecesView = PiecesView;
|
|
||||||
fProgressField = NSTextField;
|
|
||||||
fRatioField = NSTextField;
|
|
||||||
fRatioLimitField = NSTextField;
|
|
||||||
fRatioPopUp = NSPopUpButton;
|
|
||||||
fRevealDataButton = NSButton;
|
|
||||||
fRevealTorrentButton = NSButton;
|
|
||||||
fSecureField = NSTextField;
|
|
||||||
fSeedersField = NSTextField;
|
|
||||||
fSizeField = NSTextField;
|
|
||||||
fStateField = NSTextField;
|
|
||||||
fSwarmSpeedField = NSTextField;
|
|
||||||
fTabView = NSTabView;
|
|
||||||
fTorrentLocationField = NSTextField;
|
|
||||||
fTrackerField = NSTextField;
|
|
||||||
fUploadLimitField = NSTextField;
|
|
||||||
fUploadLimitLabel = NSTextField;
|
|
||||||
fUploadLimitPopUp = NSPopUpButton;
|
|
||||||
fUploadedTotalField = NSTextField;
|
|
||||||
fUploadingToField = NSTextField;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
},
|
|
||||||
{CLASS = NSLevelIndicatorCell; LANGUAGE = ObjC; SUPERCLASS = NSActionCell; },
|
|
||||||
{CLASS = NSSegmentedControl; LANGUAGE = ObjC; SUPERCLASS = NSControl; },
|
|
||||||
{
|
|
||||||
CLASS = PeerProgressIndicatorCell;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
SUPERCLASS = NSLevelIndicatorCell;
|
|
||||||
},
|
|
||||||
{CLASS = PiecesView; LANGUAGE = ObjC; SUPERCLASS = NSImageView; }
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-29
@@ -1,29 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>58 88 356 240 0 0 1680 1028 </string>
|
|
||||||
<key>IBEditorPositions</key>
|
|
||||||
<dict>
|
|
||||||
<key>549</key>
|
|
||||||
<string>565 283 174 149 0 0 1152 842 </string>
|
|
||||||
</dict>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBLockedObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>5</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBLockedTabItems</key>
|
|
||||||
<array>
|
|
||||||
<integer>332</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBOpenObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>5</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R4031</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
@@ -1,619 +0,0 @@
|
|||||||
/* Torrent -> progress string */
|
|
||||||
" - %@ remaining" = " - %@ remaining";
|
|
||||||
|
|
||||||
/* Torrent -> progress string */
|
|
||||||
" - remaining time unknown" = " - remaining time unknown";
|
|
||||||
|
|
||||||
/* File size (beware of leading space) */
|
|
||||||
" GB" = " GB";
|
|
||||||
|
|
||||||
/* File size (beware of leading space) */
|
|
||||||
" KB" = " KB";
|
|
||||||
|
|
||||||
/* File size (beware of leading space) */
|
|
||||||
" MB" = " MB";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> message part 2 */
|
|
||||||
" Once removed, continuing the transfers will require the torrent files. Do you really want to remove them?" = " Once removed, continuing the transfers will require the torrent files. Do you really want to remove them?";
|
|
||||||
|
|
||||||
/* Inspector -> Activity tab -> progress */
|
|
||||||
"%.2f%% (%.2f%% selected)" = "%1$.2f%% (%2$.2f%% selected)";
|
|
||||||
|
|
||||||
/* Inspector -> Files tab -> file status string */
|
|
||||||
"%.2f%% of %@" = "%1$.2f%% of %2$@";
|
|
||||||
|
|
||||||
/* Torrent -> progress string */
|
|
||||||
"%@ of %@ (%.2f%%)" = "%1$@ of %2$@ (%3$.2f%%)";
|
|
||||||
|
|
||||||
/* Torrent -> progress string */
|
|
||||||
"%@ of %@ (%.2f%%), uploaded %@ (Ratio: %@)" = "%1$@ of %2$@ (%3$.2f%%), uploaded %4$@ (Ratio: %5$@)";
|
|
||||||
|
|
||||||
/* Inspector -> above tabs -> total size (several torrents selected) */
|
|
||||||
"%@ Total" = "%@ Total";
|
|
||||||
|
|
||||||
/* Create torrent -> info */
|
|
||||||
"%@, %@ each" = "%1$@, %2$@ each";
|
|
||||||
|
|
||||||
/* Torrent -> progress string */
|
|
||||||
"%@, uploaded %@ (Ratio: %@)" = "%1$@, uploaded %2$@ (Ratio: %3$@)";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> peers */
|
|
||||||
"%d cache" = "%d cache";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> peers */
|
|
||||||
"%d Connected" = "%d Connected";
|
|
||||||
|
|
||||||
/* Torrent -> remaining time */
|
|
||||||
"%d days %d hr" = "%1$d days %2$d hr";
|
|
||||||
|
|
||||||
/* Dock item - Downloading */
|
|
||||||
"%d Downloading" = "%d Downloading";
|
|
||||||
|
|
||||||
/* Inspector -> Files tab -> bottom text (number of files) */
|
|
||||||
"%d files total" = "%d files total";
|
|
||||||
|
|
||||||
/* Drag overlay -> torrents
|
|
||||||
Create torrent -> info */
|
|
||||||
"%d Files, " = "%d Files, ";
|
|
||||||
|
|
||||||
/* Torrent -> remaining time */
|
|
||||||
"%d hr %d min" = "%1$d hr %2$d min";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> peers */
|
|
||||||
"%d incoming" = "%d incoming";
|
|
||||||
|
|
||||||
/* Torrent -> remaining time */
|
|
||||||
"%d min %d sec" = "%1$d min %2$d sec";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> peers */
|
|
||||||
"%d PEX" = "%d PEX";
|
|
||||||
|
|
||||||
/* Create torrent -> info */
|
|
||||||
"%d pieces" = "%d pieces";
|
|
||||||
|
|
||||||
/* Torrent -> remaining time */
|
|
||||||
"%d sec" = "%d sec";
|
|
||||||
|
|
||||||
/* Dock item - Seeding */
|
|
||||||
"%d Seeding" = "%d Seeding";
|
|
||||||
|
|
||||||
/* Drag overlay -> torrents */
|
|
||||||
"%d Torrent Files" = "%d Torrent Files";
|
|
||||||
|
|
||||||
/* Inspector -> above tabs -> selected torrents */
|
|
||||||
"%d Torrents Selected" = "%d Torrents Selected";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> peers */
|
|
||||||
"%d tracker" = "%d tracker";
|
|
||||||
|
|
||||||
/* Filter Bar Button -> tool tip
|
|
||||||
Status bar transfer count */
|
|
||||||
"%d Transfers" = "%d Transfers";
|
|
||||||
|
|
||||||
/* File size */
|
|
||||||
"%lld bytes" = "%lld bytes";
|
|
||||||
|
|
||||||
/* Torrent -> error string unreadable */
|
|
||||||
"(unreadable error)" = "(unreadable error)";
|
|
||||||
|
|
||||||
/* Torrent -> remaining time */
|
|
||||||
"1 day %d hr" = "1 day %d hr";
|
|
||||||
|
|
||||||
/* Inspector -> Files tab -> bottom text (number of files) */
|
|
||||||
"1 file total" = "1 file total";
|
|
||||||
|
|
||||||
/* Drag overlay -> torrents
|
|
||||||
Create torrent -> info */
|
|
||||||
"1 File, " = "1 File, ";
|
|
||||||
|
|
||||||
/* Create torrent -> info */
|
|
||||||
"1 piece" = "1 piece";
|
|
||||||
|
|
||||||
/* Filter Bar Button -> tool tip
|
|
||||||
Status bar transfer count */
|
|
||||||
"1 Transfer" = "1 Transfer";
|
|
||||||
|
|
||||||
/* Move folder cannot be found alert -> message */
|
|
||||||
"\"%@\" cannot be found. The file will remain in its current location." = "\"%@\" cannot be found. The file will remain in its current location.";
|
|
||||||
|
|
||||||
/* Folder cannot be found alert -> message */
|
|
||||||
"\"%@\" cannot be found. The transfer will be paused." = "\"%@\" cannot be found. The transfer will be paused.";
|
|
||||||
|
|
||||||
/* Create torrent -> file already exists warning -> warning */
|
|
||||||
"A file with the name \"%@\" already exists in the directory \"%@\". Choose a new name or directory to create the torrent." = "A file with the name \"%1$@\" already exists in the directory \"%2$@\". Choose a new name or directory to create the torrent.";
|
|
||||||
|
|
||||||
/* Move inside itself alert -> title */
|
|
||||||
"A folder cannot be moved to inside itself." = "A folder cannot be moved to inside itself.";
|
|
||||||
|
|
||||||
/* Create torrent -> zero size -> warning */
|
|
||||||
"A torrent file cannot be created for files with no size." = "A torrent file cannot be created for files with no size.";
|
|
||||||
|
|
||||||
/* Create torrent -> file already exists warning -> title */
|
|
||||||
"A torrent file with this name and directory cannot be created." = "A torrent file with this name and directory cannot be created.";
|
|
||||||
|
|
||||||
/* Open duplicate alert -> title */
|
|
||||||
"A transfer of \"%@\" is already running." = "A transfer of \"%@\" is already running.";
|
|
||||||
|
|
||||||
/* Torrent file disk space alert -> button */
|
|
||||||
"Always Download" = "Always Download";
|
|
||||||
|
|
||||||
/* Transfer speed (Bytes per second) */
|
|
||||||
"B/s" = "B/s";
|
|
||||||
|
|
||||||
/* Preferences -> Bandwidth toolbar item title */
|
|
||||||
"Bandwidth" = "Bandwidth";
|
|
||||||
|
|
||||||
/* Growl notification description */
|
|
||||||
"Bandwidth settings changed" = "Bandwidth settings changed";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> button
|
|
||||||
Confirm Quit panel -> button */
|
|
||||||
"Cancel" = "Cancel";
|
|
||||||
|
|
||||||
/* Create torrent -> no url warning -> warning
|
|
||||||
Create torrent -> http warning -> warning */
|
|
||||||
"Change the tracker address to create the torrent." = "Change the tracker address to create the torrent.";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Checking existing data (%.2f%%)" = "Checking existing data (%.2f%%)";
|
|
||||||
|
|
||||||
/* Preferences -> Network -> port status */
|
|
||||||
"Checking port status" = "Checking port status";
|
|
||||||
|
|
||||||
/* Folder cannot be found alert -> location button */
|
|
||||||
"Choose New Location" = "Choose New Location";
|
|
||||||
|
|
||||||
/* Confirm Quit panel -> title */
|
|
||||||
"Confirm Quit" = "Confirm Quit";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> title */
|
|
||||||
"Confirm Removal of %d Transfers" = "Confirm Removal of %d Transfers";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> title */
|
|
||||||
"Confirm Removal of \"%@\"" = "Confirm Removal of \"%@\"";
|
|
||||||
|
|
||||||
/* Debug log alert -> informative message */
|
|
||||||
"Continuous use at this level might increase memory usage. This setting can be changed in the Message Log window (accessible from the Window menu)." = "Continuous use at this level might increase memory usage. This setting can be changed in the Message Log window (accessible from the Window menu).";
|
|
||||||
|
|
||||||
/* Torrent file copy alert -> title */
|
|
||||||
"Copy of \"%@\" Cannot Be Created" = "Copy of \"%@\" Cannot Be Created";
|
|
||||||
|
|
||||||
/* Create toolbar item -> label */
|
|
||||||
"Create" = "Create";
|
|
||||||
|
|
||||||
/* Drag overlay -> file */
|
|
||||||
"Create a Torrent File" = "Create a Torrent File";
|
|
||||||
|
|
||||||
/* Create toolbar item -> tooltip */
|
|
||||||
"Create torrent file" = "Create torrent file";
|
|
||||||
|
|
||||||
/* Create toolbar item -> palette label */
|
|
||||||
"Create Torrent File" = "Create Torrent File";
|
|
||||||
|
|
||||||
/* Create torrent -> failed -> title */
|
|
||||||
"Creation of \"%@\" failed." = "Creation of \"%@\" failed.";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"DL: %@, " = "DL: %@, ";
|
|
||||||
|
|
||||||
/* Debug log alert -> button
|
|
||||||
Open duplicate alert -> button */
|
|
||||||
"Don't Alert Again" = "Don't Alert Again";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"Don't Download" = "Don't Download";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"Download" = "Download";
|
|
||||||
|
|
||||||
/* Torrent file disk space alert -> button */
|
|
||||||
"Download Anyway" = "Download Anyway";
|
|
||||||
|
|
||||||
/* Growl notification title */
|
|
||||||
"Download Complete" = "Download Complete";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"Download Some" = "Download Some";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Downloading" = "Downloading";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Downloading from %d of %d peers" = "Downloading from %1$d of %2$d peers";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Downloading from %d of 1 peer" = "Downloading from %d of 1 peer";
|
|
||||||
|
|
||||||
/* Transfer speed invalid
|
|
||||||
Ratio invalid */
|
|
||||||
"error" = "error";
|
|
||||||
|
|
||||||
/* Preferences -> Network -> port map status */
|
|
||||||
"Error mapping port" = "Error mapping port";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Error: " = "Error: ";
|
|
||||||
|
|
||||||
/* Filter toolbar item -> label */
|
|
||||||
"Filter" = "Filter";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> table row tooltip */
|
|
||||||
"From: cache" = "From: cache";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> table row tooltip */
|
|
||||||
"From: incoming connection" = "From: incoming connection";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> table row tooltip */
|
|
||||||
"From: peer exchange" = "From: peer exchange";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> table row tooltip */
|
|
||||||
"From: tracker" = "From: tracker";
|
|
||||||
|
|
||||||
/* Preferences -> General toolbar item title */
|
|
||||||
"General" = "General";
|
|
||||||
|
|
||||||
/* View menu -> Filter Bar */
|
|
||||||
"Hide Filter Bar" = "Hide Filter Bar";
|
|
||||||
|
|
||||||
/* View menu -> Inspector */
|
|
||||||
"Hide Inspector" = "Hide Inspector";
|
|
||||||
|
|
||||||
/* View menu -> Status Bar */
|
|
||||||
"Hide Status Bar" = "Hide Status Bar";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"High Priority" = "High Priority";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> peers
|
|
||||||
Inspector -> Files tab -> bottom text (number of files) */
|
|
||||||
"info not available" = "info not available";
|
|
||||||
|
|
||||||
/* Inspector toolbar item -> label */
|
|
||||||
"Inspector" = "Inspector";
|
|
||||||
|
|
||||||
/* Download not a torrent -> message */
|
|
||||||
"It appears that the file \"%@\" from %@ is not a torrent file." = "It appears that the file \"%1$@\" from %2$@ is not a torrent file.";
|
|
||||||
|
|
||||||
/* Action context menu -> upload/download limit */
|
|
||||||
"Limit (%d KB/s)" = "Limit (%d KB/s)";
|
|
||||||
|
|
||||||
/* Save log alert panel -> title */
|
|
||||||
"Log Could Not Be Saved" = "Log Could Not Be Saved";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"Low Priority" = "Low Priority";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"Multiple Priorities" = "Multiple Priorities";
|
|
||||||
|
|
||||||
/* No Ratio
|
|
||||||
Torrent -> status string */
|
|
||||||
"N/A" = "N/A";
|
|
||||||
|
|
||||||
/* Preferences -> Network toolbar item title */
|
|
||||||
"Network" = "Network";
|
|
||||||
|
|
||||||
/* Inspector -> above tabs -> selected torrents */
|
|
||||||
"No Torrents Selected" = "No Torrents Selected";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"Normal Priority" = "Normal Priority";
|
|
||||||
|
|
||||||
/* Torrent file disk space alert -> title */
|
|
||||||
"Not enough remaining disk space to download \"%@\" completely." = "Not enough remaining disk space to download \"%@\" completely.";
|
|
||||||
|
|
||||||
/* Open duplicate alert -> button
|
|
||||||
Create torrent -> no files -> button
|
|
||||||
Create torrent -> file already exists warning -> button
|
|
||||||
Torrent file copy alert -> button
|
|
||||||
Move folder cannot be found alert -> button
|
|
||||||
Folder cannot be found alert -> button
|
|
||||||
Torrent file disk space alert -> button
|
|
||||||
Create torrent -> no url warning -> button
|
|
||||||
Torrent download failed -> button
|
|
||||||
Create torrent -> failed -> button
|
|
||||||
Move error alert -> button
|
|
||||||
Debug log alert -> button
|
|
||||||
Download not a torrent -> button
|
|
||||||
Create torrent -> zero size -> button
|
|
||||||
Move inside itself alert -> button
|
|
||||||
Save log alert panel -> button
|
|
||||||
Create torrent -> http warning -> button */
|
|
||||||
"OK" = "OK";
|
|
||||||
|
|
||||||
/* Open toolbar item -> label */
|
|
||||||
"Open" = "Open";
|
|
||||||
|
|
||||||
/* Open toolbar item -> palette label */
|
|
||||||
"Open Torrent Files" = "Open Torrent Files";
|
|
||||||
|
|
||||||
/* Open toolbar item -> tooltip */
|
|
||||||
"Open torrent files" = "Open torrent files";
|
|
||||||
|
|
||||||
/* Pause toolbar item -> label */
|
|
||||||
"Pause" = "Pause";
|
|
||||||
|
|
||||||
/* Pause All toolbar item -> label */
|
|
||||||
"Pause All" = "Pause All";
|
|
||||||
|
|
||||||
/* Pause All toolbar item -> tooltip */
|
|
||||||
"Pause all transfers" = "Pause all transfers";
|
|
||||||
|
|
||||||
/* Pause toolbar item -> palette label */
|
|
||||||
"Pause Selected" = "Pause Selected";
|
|
||||||
|
|
||||||
/* Pause toolbar item -> tooltip */
|
|
||||||
"Pause selected transfers" = "Pause selected transfers";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Paused" = "Paused";
|
|
||||||
|
|
||||||
/* Preferences -> Network -> port status */
|
|
||||||
"Port is closed" = "Port is closed";
|
|
||||||
|
|
||||||
/* Preferences -> Network -> port status */
|
|
||||||
"Port is open" = "Port is open";
|
|
||||||
|
|
||||||
/* Preferences -> Network -> port status */
|
|
||||||
"Port is stealth" = "Port is stealth";
|
|
||||||
|
|
||||||
/* Preferences -> Network -> port map status */
|
|
||||||
"Port successfully mapped" = "Port successfully mapped";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> table row tooltip */
|
|
||||||
"Port: %d" = "Port: %d";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> table row tooltip */
|
|
||||||
"Port: N/A" = "Port: N/A";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"Priority Not Available" = "Priority Not Available";
|
|
||||||
|
|
||||||
/* Inspector -> is private torrent */
|
|
||||||
"Private Torrent, PEX disabled" = "Private Torrent, PEX disabled";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> table row tooltip */
|
|
||||||
"Progress: %.1f%%" = "Progress: %.1f%%";
|
|
||||||
|
|
||||||
/* Inspector -> is not private torrent */
|
|
||||||
"Public Torrent" = "Public Torrent";
|
|
||||||
|
|
||||||
/* Transmission already running alert -> button
|
|
||||||
OS update needed -> button
|
|
||||||
Confirm Quit panel -> button */
|
|
||||||
"Quit" = "Quit";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Ratio: " = "Ratio: ";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Ratio: %@, " = "Ratio: %@, ";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> button
|
|
||||||
Remove toolbar item -> label */
|
|
||||||
"Remove" = "Remove";
|
|
||||||
|
|
||||||
/* Remove toolbar item -> palette label */
|
|
||||||
"Remove Selected" = "Remove Selected";
|
|
||||||
|
|
||||||
/* Remove toolbar item -> tooltip */
|
|
||||||
"Remove selected transfers" = "Remove selected transfers";
|
|
||||||
|
|
||||||
/* Resume toolbar item -> label */
|
|
||||||
"Resume" = "Resume";
|
|
||||||
|
|
||||||
/* Resume All toolbar item -> label */
|
|
||||||
"Resume All" = "Resume All";
|
|
||||||
|
|
||||||
/* Resume All toolbar item -> tooltip */
|
|
||||||
"Resume all transfers" = "Resume all transfers";
|
|
||||||
|
|
||||||
/* Resume toolbar item -> palette label */
|
|
||||||
"Resume Selected" = "Resume Selected";
|
|
||||||
|
|
||||||
/* Resume toolbar item -> tooltip */
|
|
||||||
"Resume selected transfers" = "Resume selected transfers";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Seeding" = "Seeding";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Seeding complete" = "Seeding complete";
|
|
||||||
|
|
||||||
/* Growl notification title */
|
|
||||||
"Seeding Complete" = "Seeding Complete";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Seeding to %d of %d peers" = "Seeding to %1$d of %2$d peers";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Seeding to %d of 1 peer" = "Seeding to %d of 1 peer";
|
|
||||||
|
|
||||||
/* Folder cannot be found alert -> prompt
|
|
||||||
Default folder cannot be found alert -> prompt
|
|
||||||
Open torrent -> prompt
|
|
||||||
Move torrent -> prompt
|
|
||||||
Default incomplete folder cannot be found alert -> prompt
|
|
||||||
Create torrent -> select file */
|
|
||||||
"Select" = "Select";
|
|
||||||
|
|
||||||
/* Create torrent -> select file */
|
|
||||||
"Select a file or folder for the torrent file." = "Select a file or folder for the torrent file.";
|
|
||||||
|
|
||||||
/* Folder cannot be found alert -> select destination folder
|
|
||||||
Open torrent -> select destination folder */
|
|
||||||
"Select the download folder for \"%@\"" = "Select the download folder for \"%@\"";
|
|
||||||
|
|
||||||
/* Move torrent -> select destination folder */
|
|
||||||
"Select the new folder for %d data files." = "Select the new folder for %d data files.";
|
|
||||||
|
|
||||||
/* Move torrent -> select destination folder */
|
|
||||||
"Select the new folder for \"%@\"." = "Select the new folder for \"%@\".";
|
|
||||||
|
|
||||||
/* Main window -> 1st bottom left button (action) tooltip */
|
|
||||||
"Shortcuts for changing global settings." = "Shortcuts for changing global settings.";
|
|
||||||
|
|
||||||
/* View menu -> Filter Bar */
|
|
||||||
"Show Filter Bar" = "Show Filter Bar";
|
|
||||||
|
|
||||||
/* View menu -> Inspector */
|
|
||||||
"Show Inspector" = "Show Inspector";
|
|
||||||
|
|
||||||
/* View menu -> Status Bar */
|
|
||||||
"Show Status Bar" = "Show Status Bar";
|
|
||||||
|
|
||||||
/* Growl notification title */
|
|
||||||
"Speed Limit Auto Disabled" = "Speed Limit Auto Disabled";
|
|
||||||
|
|
||||||
/* Growl notification title */
|
|
||||||
"Speed Limit Auto Enabled" = "Speed Limit Auto Enabled";
|
|
||||||
|
|
||||||
/* Main window -> 2nd bottom left button (turtle) tooltip */
|
|
||||||
"Speed Limit overrides the total bandwidth limits with its own limits." = "Speed Limit overrides the total bandwidth limits with its own limits.";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Stalled, " = "Stalled, ";
|
|
||||||
|
|
||||||
/* Action context menu -> ratio stop */
|
|
||||||
"Stop at Ratio (%.2f)" = "Stop at Ratio (%.2f)";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Stopping" = "Stopping";
|
|
||||||
|
|
||||||
/* Default folder cannot be found alert -> message */
|
|
||||||
"The download folder cannot be found. Choose a new location." = "The download folder cannot be found. Choose a new location.";
|
|
||||||
|
|
||||||
/* Folder cannot be found alert -> title */
|
|
||||||
"The folder for downloading \"%@\" cannot be found." = "The folder for downloading \"%@\" cannot be found.";
|
|
||||||
|
|
||||||
/* Move folder cannot be found alert -> title */
|
|
||||||
"The folder for moving the completed \"%@\" cannot be found." = "The folder for moving the completed \"%@\" cannot be found.";
|
|
||||||
|
|
||||||
/* Default incomplete folder cannot be found alert -> message */
|
|
||||||
"The incomplete folder cannot be found. Choose a new location or cancel for none." = "The incomplete folder cannot be found. Choose a new location or cancel for none.";
|
|
||||||
|
|
||||||
/* Debug log alert -> message */
|
|
||||||
"The Message Log is set to \"Debug\"" = "The Message Log is set to \"Debug\"";
|
|
||||||
|
|
||||||
/* Move inside itself alert -> message
|
|
||||||
Move error alert -> message */
|
|
||||||
"The move operation of \"%@\" cannot be done." = "The move operation of \"%@\" cannot be done.";
|
|
||||||
|
|
||||||
/* Torrent download failed -> message */
|
|
||||||
"The torrent could not be downloaded from %@ because an error occurred (%@)." = "The torrent could not be downloaded from %1$@ because an error occurred (%2$@).";
|
|
||||||
|
|
||||||
/* Torrent file copy alert -> message */
|
|
||||||
"The torrent file (%@) cannot be found." = "The torrent file (%@) cannot be found.";
|
|
||||||
|
|
||||||
/* Open duplicate alert -> message */
|
|
||||||
"The torrent file cannot be opened because it is a duplicate of an already running transfer." = "The torrent file cannot be opened because it is a duplicate of an already running transfer.";
|
|
||||||
|
|
||||||
/* Create torrent -> zero size -> title */
|
|
||||||
"The total file size is zero bytes." = "The total file size is zero bytes.";
|
|
||||||
|
|
||||||
/* Create torrent -> no url warning -> title */
|
|
||||||
"The tracker address cannot be blank." = "The tracker address cannot be blank.";
|
|
||||||
|
|
||||||
/* Create torrent -> http warning -> title */
|
|
||||||
"The tracker address must begin with \"http://\"." = "The tracker address must begin with \"http://\".";
|
|
||||||
|
|
||||||
/* Torrent file disk space alert -> message */
|
|
||||||
"The transfer will be paused. Clear up space on %@ or deselect files in the torrent inspector to continue." = "The transfer will be paused. Clear up space on %@ or deselect files in the torrent inspector to continue.";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> message part 1 */
|
|
||||||
"There are %d active transfers." = "There are %d active transfers.";
|
|
||||||
|
|
||||||
/* Confirm Quit panel -> message */
|
|
||||||
"There are %d active transfers. Do you really want to quit?" = "There are %d active transfers. Do you really want to quit?";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> message part 1 */
|
|
||||||
"There are %d transfers (%d active)." = "There are %1$d transfers (%2$d active).";
|
|
||||||
|
|
||||||
/* Transmission already running alert -> message */
|
|
||||||
"There is already a copy of Transmission running. This copy cannot be opened until that instance is quit." = "There is already a copy of Transmission running. This copy cannot be opened until that instance is quit.";
|
|
||||||
|
|
||||||
/* Confirm Quit panel -> message */
|
|
||||||
"There is an active transfer. Do you really want to quit?" = "There is an active transfer. Do you really want to quit?";
|
|
||||||
|
|
||||||
/* Create torrent -> no files -> warning */
|
|
||||||
"There must be at least one file in a folder to create a torrent file." = "There must be at least one file in a folder to create a torrent file.";
|
|
||||||
|
|
||||||
/* Save log alert panel -> message */
|
|
||||||
"There was a problem creating the file \"%@\"." = "There was a problem creating the file \"%@\".";
|
|
||||||
|
|
||||||
/* Move error alert -> title */
|
|
||||||
"There was an error moving the data file." = "There was an error moving the data file.";
|
|
||||||
|
|
||||||
/* Create torrent -> failed -> warning */
|
|
||||||
"There was an error parsing the data file. The torrent file was not created." = "There was an error parsing the data file. The torrent file was not created.";
|
|
||||||
|
|
||||||
/* Create torrent -> no files -> title */
|
|
||||||
"This folder contains no files." = "This folder contains no files.";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> message */
|
|
||||||
"This transfer is active. Once removed, continuing the transfer will require the torrent file. Do you really want to remove it?" = "This transfer is active. Once removed, continuing the transfer will require the torrent file. Do you really want to remove it?";
|
|
||||||
|
|
||||||
/* Filter toolbar item -> palette label */
|
|
||||||
"Toggle Filter" = "Toggle Filter";
|
|
||||||
|
|
||||||
/* Inspector toolbar item -> palette label */
|
|
||||||
"Toggle Inspector" = "Toggle Inspector";
|
|
||||||
|
|
||||||
/* Filter toolbar item -> tooltip */
|
|
||||||
"Toggle the filter bar" = "Toggle the filter bar";
|
|
||||||
|
|
||||||
/* Inspector toolbar item -> tooltip */
|
|
||||||
"Toggle the torrent inspector" = "Toggle the torrent inspector";
|
|
||||||
|
|
||||||
/* Torrent download error -> title
|
|
||||||
Download not a torrent -> title */
|
|
||||||
"Torrent download failed" = "Torrent download failed";
|
|
||||||
|
|
||||||
/* Growl notification title */
|
|
||||||
"Torrent File Auto Added" = "Torrent File Auto Added";
|
|
||||||
|
|
||||||
/* Status bar -> total download */
|
|
||||||
"Total DL: " = "Total DL: ";
|
|
||||||
|
|
||||||
/* Status bar -> total upload */
|
|
||||||
"Total UL: " = "Total UL: ";
|
|
||||||
|
|
||||||
/* Preferences -> Transfers toolbar item title */
|
|
||||||
"Transfers" = "Transfers";
|
|
||||||
|
|
||||||
/* OS update needed -> message */
|
|
||||||
"Transmission has features that require a more up-to-date operating system. The operating system must be updated before this version can run." = "Transmission has features that require a more up-to-date operating system. The operating system must be updated before this version can run.";
|
|
||||||
|
|
||||||
/* Transmission already running alert -> title */
|
|
||||||
"Transmission is already running." = "Transmission is already running.";
|
|
||||||
|
|
||||||
/* OS update needed -> title */
|
|
||||||
"Transmission requires Mac OS X 10.4 or greater." = "Transmission requires Mac OS X 10.4 or greater.";
|
|
||||||
|
|
||||||
/* Torrent -> location when deleting original */
|
|
||||||
"Transmission Support Folder" = "Transmission Support Folder";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"UL: " = "UL: ";
|
|
||||||
|
|
||||||
/* Preferences -> Network -> port status */
|
|
||||||
"Unable to check port status" = "Unable to check port status";
|
|
||||||
|
|
||||||
/* Torrent -> remaining time */
|
|
||||||
"Unknown" = "Unknown";
|
|
||||||
|
|
||||||
/* Save log panel -> default file name */
|
|
||||||
"untitled" = "untitled";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Waiting to check existing data" = "Waiting to check existing data";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Waiting to download" = "Waiting to download";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Waiting to seed" = "Waiting to seed";
|
|
||||||
|
|
||||||
/* Drag overlay -> url */
|
|
||||||
"Web Address" = "Web Address";
|
|
||||||
|
|
||||||
-205
@@ -1,205 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{CLASS = ActionPopUpButton; LANGUAGE = ObjC; SUPERCLASS = NSPopUpButton; },
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
announceSelectedTorrents = id;
|
|
||||||
applyFilter = id;
|
|
||||||
applySpeedLimit = id;
|
|
||||||
copyTorrentFiles = id;
|
|
||||||
createFile = id;
|
|
||||||
doNothing = id;
|
|
||||||
linkDonate = id;
|
|
||||||
linkForums = id;
|
|
||||||
linkHomepage = id;
|
|
||||||
moveDataFiles = id;
|
|
||||||
openShowSheet = id;
|
|
||||||
openURLCancelEndSheet = id;
|
|
||||||
openURLEndSheet = id;
|
|
||||||
openURLShowSheet = id;
|
|
||||||
removeDeleteData = id;
|
|
||||||
removeDeleteDataAndTorrent = id;
|
|
||||||
removeDeleteTorrent = id;
|
|
||||||
removeNoDelete = id;
|
|
||||||
resetCacheForSelectedTorrents = id;
|
|
||||||
resumeAllTorrents = id;
|
|
||||||
resumeSelectedTorrents = id;
|
|
||||||
resumeSelectedTorrentsNoWait = id;
|
|
||||||
resumeWaitingTorrents = id;
|
|
||||||
revealFile = id;
|
|
||||||
setFilter = id;
|
|
||||||
setFilterSearchType = id;
|
|
||||||
setInfoTab = id;
|
|
||||||
setLimitGlobalEnabled = id;
|
|
||||||
setQuickLimitGlobal = id;
|
|
||||||
setQuickRatioGlobal = id;
|
|
||||||
setSort = id;
|
|
||||||
setSortReverse = id;
|
|
||||||
showAboutWindow = id;
|
|
||||||
showInfo = id;
|
|
||||||
showMainWindow = id;
|
|
||||||
showMessageWindow = id;
|
|
||||||
showPreferenceWindow = id;
|
|
||||||
stopAllTorrents = id;
|
|
||||||
stopSelectedTorrents = id;
|
|
||||||
switchFilter = id;
|
|
||||||
toggleAdvancedBar = id;
|
|
||||||
toggleFilterBar = id;
|
|
||||||
toggleSmallView = id;
|
|
||||||
toggleSpeedLimit = id;
|
|
||||||
toggleStatusBar = id;
|
|
||||||
};
|
|
||||||
CLASS = Controller;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fActionButton = NSButton;
|
|
||||||
fBottomBar = ImageBackgroundView;
|
|
||||||
fDateSortActionItem = NSMenuItem;
|
|
||||||
fDateSortItem = NSMenuItem;
|
|
||||||
fDockMenu = NSMenu;
|
|
||||||
fDownloadFilterButton = FilterBarButton;
|
|
||||||
fDownloadLimitItem = NSMenuItem;
|
|
||||||
fDownloadMenu = NSMenu;
|
|
||||||
fDownloadNoLimitItem = NSMenuItem;
|
|
||||||
fFilterBar = FilterBarView;
|
|
||||||
fNameSortActionItem = NSMenuItem;
|
|
||||||
fNameSortItem = NSMenuItem;
|
|
||||||
fNextFilterItem = NSMenuItem;
|
|
||||||
fNextInfoTabItem = NSMenuItem;
|
|
||||||
fNoFilterButton = FilterBarButton;
|
|
||||||
fOpenIgnoreDownloadFolder = NSMenuItem;
|
|
||||||
fOrderSortActionItem = NSMenuItem;
|
|
||||||
fOrderSortItem = NSMenuItem;
|
|
||||||
fPauseFilterButton = FilterBarButton;
|
|
||||||
fPrevFilterItem = NSMenuItem;
|
|
||||||
fPrevInfoTabItem = NSMenuItem;
|
|
||||||
fProgressSortActionItem = NSMenuItem;
|
|
||||||
fProgressSortItem = NSMenuItem;
|
|
||||||
fScrollView = NSScrollView;
|
|
||||||
fSearchFilterField = NSSearchField;
|
|
||||||
fSeedFilterButton = FilterBarButton;
|
|
||||||
fSpeedLimitButton = NSButton;
|
|
||||||
fStateSortActionItem = NSMenuItem;
|
|
||||||
fStateSortItem = NSMenuItem;
|
|
||||||
fStatusBar = ImageBackgroundView;
|
|
||||||
fTableView = TorrentTableView;
|
|
||||||
fTotalDLField = NSTextField;
|
|
||||||
fTotalTorrentsField = NSTextField;
|
|
||||||
fTotalULField = NSTextField;
|
|
||||||
fTrackerSortActionItem = NSMenuItem;
|
|
||||||
fTrackerSortItem = NSMenuItem;
|
|
||||||
fURLSheetTextField = NSTextField;
|
|
||||||
fURLSheetWindow = NSWindow;
|
|
||||||
fUpdater = SUUpdater;
|
|
||||||
fUploadLimitItem = NSMenuItem;
|
|
||||||
fUploadMenu = NSMenu;
|
|
||||||
fUploadNoLimitItem = NSMenuItem;
|
|
||||||
fWindow = NSWindow;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{CLASS = FilterBarButton; LANGUAGE = ObjC; SUPERCLASS = NSButton; },
|
|
||||||
{
|
|
||||||
CLASS = FilterBarView;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fDownloadFilterButton = FilterBarButton;
|
|
||||||
fNoFilterButton = FilterBarButton;
|
|
||||||
fPauseFilterButton = FilterBarButton;
|
|
||||||
fSeedFilterButton = FilterBarButton;
|
|
||||||
};
|
|
||||||
SUPERCLASS = ImageBackgroundView;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ACTIONS = {deselectAll = id; revealFile = id; setNextTab = id; setPreviousTab = id; };
|
|
||||||
CLASS = FirstResponder;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{CLASS = ImageBackgroundView; LANGUAGE = ObjC; SUPERCLASS = NSView; },
|
|
||||||
{CLASS = NSSegmentedControl; LANGUAGE = ObjC; SUPERCLASS = NSControl; },
|
|
||||||
{CLASS = NameCell; LANGUAGE = ObjC; SUPERCLASS = NSCell; },
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
folderSheetShow = id;
|
|
||||||
setAutoStart = id;
|
|
||||||
setBadge = id;
|
|
||||||
setDownloadLocation = id;
|
|
||||||
setLimit = id;
|
|
||||||
setLimitCheck = id;
|
|
||||||
setLimitMenu = id;
|
|
||||||
setPort = id;
|
|
||||||
setQuickRatio = id;
|
|
||||||
setQuickSpeed = id;
|
|
||||||
setRatio = id;
|
|
||||||
setRatioCheck = id;
|
|
||||||
setRatioMenu = id;
|
|
||||||
setShowMessage = id;
|
|
||||||
setUpdate = id;
|
|
||||||
};
|
|
||||||
CLASS = PrefsController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fAutoStartCheck = NSButton;
|
|
||||||
fBadgeDownloadRateCheck = NSButton;
|
|
||||||
fBadgeUploadRateCheck = NSButton;
|
|
||||||
fBlankView = NSView;
|
|
||||||
fDownloadCheck = NSButton;
|
|
||||||
fDownloadField = NSTextField;
|
|
||||||
fDownloadLimitItem = NSMenuItem;
|
|
||||||
fDownloadMenu = NSMenu;
|
|
||||||
fDownloadNoLimitItem = NSMenuItem;
|
|
||||||
fFolderPopUp = NSPopUpButton;
|
|
||||||
fGeneralView = NSView;
|
|
||||||
fNetworkView = NSView;
|
|
||||||
fPortField = NSTextField;
|
|
||||||
fPrefsWindow = NSPanel;
|
|
||||||
fQuitCheck = NSButton;
|
|
||||||
fRatioCheck = NSButton;
|
|
||||||
fRatioField = NSTextField;
|
|
||||||
fRatioNotSetItem = NSMenuItem;
|
|
||||||
fRatioSetItem = NSMenuItem;
|
|
||||||
fRemoveCheck = NSButton;
|
|
||||||
fTransfersView = NSView;
|
|
||||||
fUpdatePopUp = NSPopUpButton;
|
|
||||||
fUpdater = SUUpdater;
|
|
||||||
fUploadCheck = NSButton;
|
|
||||||
fUploadField = NSTextField;
|
|
||||||
fUploadLimitItem = NSMenuItem;
|
|
||||||
fUploadMenu = NSMenu;
|
|
||||||
fUploadNoLimitItem = NSMenuItem;
|
|
||||||
fWindow = NSWindow;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{CLASS = ProgressCell; LANGUAGE = ObjC; SUPERCLASS = NSCell; },
|
|
||||||
{
|
|
||||||
ACTIONS = {checkForUpdates = id; };
|
|
||||||
CLASS = SUUpdater;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
checkFile = id;
|
|
||||||
setQuickLimit = id;
|
|
||||||
setQuickLimitMode = id;
|
|
||||||
setQuickRatio = id;
|
|
||||||
setQuickRatioMode = id;
|
|
||||||
};
|
|
||||||
CLASS = TorrentTableView;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fActionMenu = NSMenu;
|
|
||||||
fContextNoRow = NSMenu;
|
|
||||||
fContextRow = NSMenu;
|
|
||||||
fController = Controller;
|
|
||||||
fDownloadMenu = NSMenu;
|
|
||||||
fRatioMenu = NSMenu;
|
|
||||||
fUploadMenu = NSMenu;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSTableView;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-46
@@ -1,46 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>19 80 422 283 0 0 1152 842 </string>
|
|
||||||
<key>IBEditorPositions</key>
|
|
||||||
<dict>
|
|
||||||
<key>1041</key>
|
|
||||||
<string>480 344 208 149 0 0 1680 1028 </string>
|
|
||||||
<key>1480</key>
|
|
||||||
<string>366 546 420 63 0 0 1152 842 </string>
|
|
||||||
<key>1603</key>
|
|
||||||
<string>601 669 477 67 0 0 1680 1028 </string>
|
|
||||||
<key>1936</key>
|
|
||||||
<string>792 514 208 111 0 0 1680 1028 </string>
|
|
||||||
<key>2043</key>
|
|
||||||
<string>63 491 87 68 0 0 1680 1028 </string>
|
|
||||||
<key>29</key>
|
|
||||||
<string>261 932 451 44 0 0 1680 1028 </string>
|
|
||||||
<key>456</key>
|
|
||||||
<string>396 374 240 225 0 0 1152 842 </string>
|
|
||||||
<key>581</key>
|
|
||||||
<string>862 580 115 99 0 0 1680 1028 </string>
|
|
||||||
<key>589</key>
|
|
||||||
<string>323 390 201 87 0 0 1024 746 </string>
|
|
||||||
</dict>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBLockedObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>21</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBOldestOS</key>
|
|
||||||
<integer>3</integer>
|
|
||||||
<key>IBOpenObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>1603</integer>
|
|
||||||
<integer>2043</integer>
|
|
||||||
<integer>21</integer>
|
|
||||||
<integer>29</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R4031</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
BIN
Binary file not shown.
-18
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
|
||||||
{
|
|
||||||
ACTIONS = {changeLevel = id; clearLog = id; writeToFile = id; };
|
|
||||||
CLASS = MessageWindowController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fDebugWarningField = NSTextField;
|
|
||||||
fDebugWarningIcon = NSImageView;
|
|
||||||
fLevelButton = NSPopUpButton;
|
|
||||||
fMessageTable = NSTableView;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-16
@@ -1,16 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>42 94 356 240 0 0 1680 1028 </string>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBOpenObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>5</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R4031</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
-77
@@ -1,77 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
|
||||||
{CLASS = MenuButton; LANGUAGE = ObjC; SUPERCLASS = NSButton; },
|
|
||||||
{CLASS = NSDatePicker; LANGUAGE = ObjC; SUPERCLASS = NSControl; },
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
applyRatioSetting = id;
|
|
||||||
applySpeedSettings = id;
|
|
||||||
folderSheetShow = id;
|
|
||||||
helpForNetwork = id;
|
|
||||||
importFolderSheetShow = id;
|
|
||||||
incompleteFolderSheetShow = id;
|
|
||||||
resetWarnings = id;
|
|
||||||
setAutoImport = id;
|
|
||||||
setAutoSize = id;
|
|
||||||
setAutoSpeedLimit = id;
|
|
||||||
setBadge = id;
|
|
||||||
setCheckForUpdate = id;
|
|
||||||
setDownloadLocation = id;
|
|
||||||
setGlobalLimit = id;
|
|
||||||
setNat = id;
|
|
||||||
setPort = id;
|
|
||||||
setQueue = id;
|
|
||||||
setQueueNumber = id;
|
|
||||||
setRatioStop = id;
|
|
||||||
setSound = id;
|
|
||||||
setSpeedLimit = id;
|
|
||||||
setStalled = id;
|
|
||||||
setStalledMinutes = id;
|
|
||||||
};
|
|
||||||
CLASS = PrefsController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fAdvancedView = NSView;
|
|
||||||
fBandwidthView = NSView;
|
|
||||||
fDownloadField = NSTextField;
|
|
||||||
fDownloadSoundPopUp = NSPopUpButton;
|
|
||||||
fFolderPopUp = NSPopUpButton;
|
|
||||||
fGeneralView = NSView;
|
|
||||||
fImportFolderPopUp = NSPopUpButton;
|
|
||||||
fIncompleteFolderPopUp = NSPopUpButton;
|
|
||||||
fNatCheck = NSButton;
|
|
||||||
fNatStatusField = NSTextField;
|
|
||||||
fNatStatusImage = NSImageView;
|
|
||||||
fPortField = NSTextField;
|
|
||||||
fPortStatusField = NSTextField;
|
|
||||||
fPortStatusImage = NSImageView;
|
|
||||||
fPortStatusProgress = NSProgressIndicator;
|
|
||||||
fQueueDownloadField = NSTextField;
|
|
||||||
fQueueSeedField = NSTextField;
|
|
||||||
fRatioStopField = NSTextField;
|
|
||||||
fSeedingSoundPopUp = NSPopUpButton;
|
|
||||||
fSpeedLimitDownloadField = NSTextField;
|
|
||||||
fSpeedLimitUploadField = NSTextField;
|
|
||||||
fStalledField = NSTextField;
|
|
||||||
fTransfersView = NSView;
|
|
||||||
fUploadField = NSTextField;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
},
|
|
||||||
{CLASS = PrefsWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow; },
|
|
||||||
{
|
|
||||||
ACTIONS = {checkForUpdates = id; };
|
|
||||||
CLASS = SUUpdater;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
CLASS = TorrentTableView;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {fContextNoRow = NSMenu; fContextRow = NSMenu; fController = Controller; };
|
|
||||||
SUPERCLASS = NSTableView;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-31
@@ -1,31 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>32 103 356 240 0 0 1680 1028 </string>
|
|
||||||
<key>IBEditorPositions</key>
|
|
||||||
<dict>
|
|
||||||
<key>153</key>
|
|
||||||
<string>558 568 563 268 0 0 1680 1028 </string>
|
|
||||||
<key>28</key>
|
|
||||||
<string>558 545 563 314 0 0 1680 1028 </string>
|
|
||||||
<key>41</key>
|
|
||||||
<string>558 550 563 305 0 0 1680 1028 </string>
|
|
||||||
<key>66</key>
|
|
||||||
<string>558 578 563 249 0 0 1680 1028 </string>
|
|
||||||
</dict>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBLockedTabItems</key>
|
|
||||||
<array>
|
|
||||||
<integer>253</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBOpenObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>66</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R4031</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
@@ -1,31 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
@interface ExpandedPathToIconTransformer : NSValueTransformer
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "ExpandedPathToIconTransformer.h"
|
|
||||||
|
|
||||||
@implementation ExpandedPathToIconTransformer
|
|
||||||
|
|
||||||
+ (Class) transformedValueClass
|
|
||||||
{
|
|
||||||
return [NSImage class];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (BOOL) allowsReverseTransformation
|
|
||||||
{
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id) transformedValue: (id) value
|
|
||||||
{
|
|
||||||
if (!value)
|
|
||||||
return nil;
|
|
||||||
|
|
||||||
NSString * path = [value stringByExpandingTildeInPath];
|
|
||||||
NSImage * icon;
|
|
||||||
//show a folder icon if the folder doesn't exist
|
|
||||||
if (![[NSFileManager defaultManager] fileExistsAtPath: path] && [[path pathExtension] isEqualToString: @""])
|
|
||||||
icon = [[NSWorkspace sharedWorkspace] iconForFileType: NSFileTypeForHFSTypeCode('fldr')];
|
|
||||||
else
|
|
||||||
icon = [[NSWorkspace sharedWorkspace] iconForFile: [value stringByExpandingTildeInPath]];
|
|
||||||
|
|
||||||
[icon setScalesWhenResized: YES];
|
|
||||||
[icon setSize: NSMakeSize(16.0, 16.0)];
|
|
||||||
|
|
||||||
return icon;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
@interface ExpandedPathToPathTransformer : NSValueTransformer
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "ExpandedPathToPathTransformer.h"
|
|
||||||
|
|
||||||
@implementation ExpandedPathToPathTransformer
|
|
||||||
|
|
||||||
+ (Class) transformedValueClass
|
|
||||||
{
|
|
||||||
return [NSString class];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (BOOL) allowsReverseTransformation
|
|
||||||
{
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id) transformedValue: (id) value
|
|
||||||
{
|
|
||||||
return value == nil ? nil : [value lastPathComponent];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
|
|
||||||
@interface FileNameCell : NSActionCell
|
|
||||||
{
|
|
||||||
NSImage * fFolderImage;
|
|
||||||
|
|
||||||
NSMutableDictionary * fTitleAttributes, * fStatusAttributes;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSRect) imageRectForBounds: (NSRect) bounds;
|
|
||||||
- (NSRect) titleRectForBounds: (NSRect) bounds;
|
|
||||||
- (NSRect) statusRectForBounds: (NSRect) bounds;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,208 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "FileNameCell.h"
|
|
||||||
#import "InfoWindowController.h"
|
|
||||||
#import "NSStringAdditions.h"
|
|
||||||
|
|
||||||
#define PADDING_HORIZONAL 2.0
|
|
||||||
#define IMAGE_FOLDER_SIZE 16.0
|
|
||||||
#define IMAGE_ICON_SIZE 32.0
|
|
||||||
#define PADDING_BETWEEN_IMAGE_AND_TITLE 4.0
|
|
||||||
#define PADDING_ABOVE_TITLE_FILE 2.0
|
|
||||||
#define PADDING_BELOW_STATUS_FILE 2.0
|
|
||||||
|
|
||||||
@interface FileNameCell (Private)
|
|
||||||
|
|
||||||
- (NSRect) rectForTitleWithString: (NSAttributedString *) string inBounds: (NSRect) bounds;
|
|
||||||
- (NSRect) rectForStatusWithString: (NSAttributedString *) string inBounds: (NSRect) bounds;
|
|
||||||
|
|
||||||
- (NSAttributedString *) attributedTitleWithColor: (NSColor *) color;
|
|
||||||
- (NSAttributedString *) attributedStatusWithColor: (NSColor *) color;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation FileNameCell
|
|
||||||
|
|
||||||
- (NSImage *) image
|
|
||||||
{
|
|
||||||
NSImage * image = [[self objectValue] objectForKey: @"Icon"];
|
|
||||||
if (!image)
|
|
||||||
{
|
|
||||||
if (!fFolderImage)
|
|
||||||
{
|
|
||||||
fFolderImage = [[[NSWorkspace sharedWorkspace] iconForFileType: NSFileTypeForHFSTypeCode('fldr')] copy];
|
|
||||||
[fFolderImage setFlipped: YES];
|
|
||||||
}
|
|
||||||
image = fFolderImage;
|
|
||||||
}
|
|
||||||
return image;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSRect) imageRectForBounds: (NSRect) bounds
|
|
||||||
{
|
|
||||||
NSRect result = bounds;
|
|
||||||
|
|
||||||
result.origin.x += PADDING_HORIZONAL;
|
|
||||||
|
|
||||||
const float IMAGE_SIZE = [[[self objectValue] objectForKey: @"IsFolder"] boolValue] ? IMAGE_FOLDER_SIZE : IMAGE_ICON_SIZE;
|
|
||||||
result.origin.y += (result.size.height - IMAGE_SIZE) * 0.5;
|
|
||||||
result.size = NSMakeSize(IMAGE_SIZE, IMAGE_SIZE);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSRect) titleRectForBounds: (NSRect) bounds
|
|
||||||
{
|
|
||||||
return [self rectForTitleWithString: [self attributedTitleWithColor: nil] inBounds: bounds];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSRect) statusRectForBounds: (NSRect) bounds
|
|
||||||
{
|
|
||||||
return [self rectForStatusWithString: [self attributedStatusWithColor: nil] inBounds: bounds];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) drawWithFrame: (NSRect) cellFrame inView: (NSView *) controlView
|
|
||||||
{
|
|
||||||
//icon
|
|
||||||
[[self image] drawInRect: [self imageRectForBounds: cellFrame] fromRect: NSZeroRect operation: NSCompositeSourceOver
|
|
||||||
fraction: 1.0];
|
|
||||||
|
|
||||||
Torrent * torrent = [[[[self controlView] window] windowController] selectedTorrent];
|
|
||||||
|
|
||||||
//title
|
|
||||||
NSColor * specialColor = nil;
|
|
||||||
if ([self isHighlighted]
|
|
||||||
&& [[self highlightColorWithFrame: cellFrame inView: controlView] isEqual: [NSColor alternateSelectedControlColor]])
|
|
||||||
specialColor = [NSColor whiteColor];
|
|
||||||
else if ([torrent checkForFiles: [[self objectValue] objectForKey: @"Indexes"]] == NSOffState)
|
|
||||||
specialColor = [NSColor disabledControlTextColor];
|
|
||||||
else;
|
|
||||||
|
|
||||||
NSAttributedString * titleString = [self attributedTitleWithColor: specialColor ? specialColor : [NSColor controlTextColor]];
|
|
||||||
NSRect titleRect = [self rectForTitleWithString: titleString inBounds: cellFrame];
|
|
||||||
[titleString drawInRect: titleRect];
|
|
||||||
|
|
||||||
//status
|
|
||||||
if (![[[self objectValue] objectForKey: @"IsFolder"] boolValue])
|
|
||||||
{
|
|
||||||
NSAttributedString * statusString = [self attributedStatusWithColor: specialColor ? specialColor : [NSColor darkGrayColor]];
|
|
||||||
NSRect statusRect = [self rectForStatusWithString: statusString inBounds: cellFrame];
|
|
||||||
[statusString drawInRect: statusRect];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation FileNameCell (Private)
|
|
||||||
|
|
||||||
- (NSRect) rectForTitleWithString: (NSAttributedString *) string inBounds: (NSRect) bounds
|
|
||||||
{
|
|
||||||
NSSize titleSize = [string size];
|
|
||||||
|
|
||||||
NSRect result = bounds;
|
|
||||||
|
|
||||||
if (![[[self objectValue] objectForKey: @"IsFolder"] boolValue])
|
|
||||||
{
|
|
||||||
result.origin.x += PADDING_HORIZONAL + IMAGE_ICON_SIZE + PADDING_BETWEEN_IMAGE_AND_TITLE;
|
|
||||||
result.origin.y += PADDING_ABOVE_TITLE_FILE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result.origin.x += PADDING_HORIZONAL + IMAGE_FOLDER_SIZE + PADDING_BETWEEN_IMAGE_AND_TITLE;
|
|
||||||
result.origin.y += (result.size.height - titleSize.height) * 0.5;
|
|
||||||
}
|
|
||||||
result.size = titleSize;
|
|
||||||
result.size.width = MIN(result.size.width, NSMaxX(bounds) - result.origin.x - PADDING_HORIZONAL);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSRect) rectForStatusWithString: (NSAttributedString *) string inBounds: (NSRect) bounds
|
|
||||||
{
|
|
||||||
if ([[[self objectValue] objectForKey: @"IsFolder"] boolValue])
|
|
||||||
return NSZeroRect;
|
|
||||||
|
|
||||||
NSSize statusSize = [string size];
|
|
||||||
|
|
||||||
NSRect result = bounds;
|
|
||||||
|
|
||||||
result.origin.x += PADDING_HORIZONAL + IMAGE_ICON_SIZE + PADDING_BETWEEN_IMAGE_AND_TITLE;
|
|
||||||
result.origin.y += result.size.height - PADDING_BELOW_STATUS_FILE - statusSize.height;
|
|
||||||
|
|
||||||
result.size = statusSize;
|
|
||||||
result.size.width = MIN(result.size.width, NSMaxX(bounds) - result.origin.x - PADDING_HORIZONAL);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSAttributedString *) attributedTitleWithColor: (NSColor *) color
|
|
||||||
{
|
|
||||||
if (!fTitleAttributes)
|
|
||||||
{
|
|
||||||
NSMutableParagraphStyle * paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
|
|
||||||
[paragraphStyle setLineBreakMode: NSLineBreakByTruncatingTail];
|
|
||||||
|
|
||||||
fTitleAttributes = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
|
|
||||||
[NSFont messageFontOfSize: 12.0], NSFontAttributeName,
|
|
||||||
paragraphStyle, NSParagraphStyleAttributeName, nil];
|
|
||||||
|
|
||||||
[paragraphStyle release];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (color)
|
|
||||||
[fTitleAttributes setObject: color forKey: NSForegroundColorAttributeName];
|
|
||||||
|
|
||||||
NSString * title = [[self objectValue] objectForKey: @"Name"];
|
|
||||||
return [[[NSAttributedString alloc] initWithString: title attributes: fTitleAttributes] autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSAttributedString *) attributedStatusWithColor: (NSColor *) color
|
|
||||||
{
|
|
||||||
if (!fStatusAttributes)
|
|
||||||
{
|
|
||||||
NSMutableParagraphStyle * paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
|
|
||||||
[paragraphStyle setLineBreakMode: NSLineBreakByTruncatingTail];
|
|
||||||
|
|
||||||
fStatusAttributes = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
|
|
||||||
[NSFont messageFontOfSize: 9.0], NSFontAttributeName,
|
|
||||||
paragraphStyle, NSParagraphStyleAttributeName, nil];
|
|
||||||
|
|
||||||
[paragraphStyle release];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (color)
|
|
||||||
[fStatusAttributes setObject: color forKey: NSForegroundColorAttributeName];
|
|
||||||
|
|
||||||
Torrent * torrent = [[[[self controlView] window] windowController] selectedTorrent];
|
|
||||||
float percent = [torrent fileProgress: [[[self objectValue] objectForKey: @"Indexes"] firstIndex]] * 100.0;
|
|
||||||
|
|
||||||
NSString * status = [NSString stringWithFormat: NSLocalizedString(@"%.2f%% of %@",
|
|
||||||
"Inspector -> Files tab -> file status string"), percent,
|
|
||||||
[NSString stringForFileSize: [[[self objectValue] objectForKey: @"Size"] unsignedLongLongValue]]];
|
|
||||||
|
|
||||||
return [[[NSAttributedString alloc] initWithString: status attributes: fStatusAttributes] autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
|
|
||||||
@interface FileOutlineView : NSOutlineView
|
|
||||||
{
|
|
||||||
NSColor * fNormalColor, * fHighPriorityColor, * fLowPriorityColor, * fMixedPriorityColor;
|
|
||||||
|
|
||||||
int fHoverRow;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setHoverRowForEvent: (NSEvent *) event;
|
|
||||||
- (int) hoverRow;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,148 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "FileOutlineView.h"
|
|
||||||
#import "FileNameCell.h"
|
|
||||||
#import "FilePriorityCell.h"
|
|
||||||
#import "InfoWindowController.h"
|
|
||||||
#import "Torrent.h"
|
|
||||||
|
|
||||||
@implementation FileOutlineView
|
|
||||||
|
|
||||||
- (void) awakeFromNib
|
|
||||||
{
|
|
||||||
FileNameCell * nameCell = [[FileNameCell alloc] init];
|
|
||||||
[[self tableColumnWithIdentifier: @"Name"] setDataCell: nameCell];
|
|
||||||
[nameCell release];
|
|
||||||
|
|
||||||
FilePriorityCell * priorityCell = [[FilePriorityCell alloc] init];
|
|
||||||
[[self tableColumnWithIdentifier: @"Priority"] setDataCell: priorityCell];
|
|
||||||
[priorityCell release];
|
|
||||||
|
|
||||||
[self setAutoresizesOutlineColumn: NO];
|
|
||||||
[self setIndentationPerLevel: 14.0];
|
|
||||||
|
|
||||||
fNormalColor = [self backgroundColor];
|
|
||||||
fHighPriorityColor = [[NSColor colorWithCalibratedRed: 0.8588 green: 0.9961 blue: 0.8311 alpha: 1.0] retain];
|
|
||||||
fLowPriorityColor = [[NSColor colorWithCalibratedRed: 1.0 green: 0.9529 blue: 0.8078 alpha: 1.0] retain];
|
|
||||||
fMixedPriorityColor = [[NSColor colorWithCalibratedRed: 0.9216 green: 0.9059 blue: 1.0 alpha: 1.0] retain];
|
|
||||||
|
|
||||||
fHoverRow = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) dealloc
|
|
||||||
{
|
|
||||||
[fHighPriorityColor release];
|
|
||||||
[fLowPriorityColor release];
|
|
||||||
[fMixedPriorityColor release];
|
|
||||||
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) mouseDown: (NSEvent *) event
|
|
||||||
{
|
|
||||||
[[self window] makeKeyWindow];
|
|
||||||
[super mouseDown: event];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSMenu *) menuForEvent: (NSEvent *) event
|
|
||||||
{
|
|
||||||
int row = [self rowAtPoint: [self convertPoint: [event locationInWindow] fromView: nil]];
|
|
||||||
|
|
||||||
if (row >= 0)
|
|
||||||
{
|
|
||||||
if (![self isRowSelected: row])
|
|
||||||
[self selectRowIndexes: [NSIndexSet indexSetWithIndex: row] byExtendingSelection: NO];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
[self deselectAll: self];
|
|
||||||
|
|
||||||
return [self menu];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setHoverRowForEvent: (NSEvent *) event
|
|
||||||
{
|
|
||||||
int row = -1;
|
|
||||||
if (event)
|
|
||||||
{
|
|
||||||
NSPoint point = [self convertPoint: [event locationInWindow] fromView: nil];
|
|
||||||
if ([self columnAtPoint: point] == [self columnWithIdentifier: @"Priority"])
|
|
||||||
row = [self rowAtPoint: point];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (row != fHoverRow)
|
|
||||||
{
|
|
||||||
if (fHoverRow != -1)
|
|
||||||
[self reloadItem: [self itemAtRow: fHoverRow]];
|
|
||||||
fHoverRow = row;
|
|
||||||
if (fHoverRow != -1)
|
|
||||||
[self reloadItem: [self itemAtRow: fHoverRow]];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (int) hoverRow
|
|
||||||
{
|
|
||||||
return fHoverRow;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) drawRow: (int) row clipRect: (NSRect) clipRect
|
|
||||||
{
|
|
||||||
if (![self isRowSelected: row])
|
|
||||||
{
|
|
||||||
NSDictionary * item = [self itemAtRow: row];
|
|
||||||
Torrent * torrent = [(InfoWindowController *)[[self window] windowController] selectedTorrent];
|
|
||||||
NSIndexSet * indexes = [item objectForKey: @"Indexes"];
|
|
||||||
|
|
||||||
if ([torrent checkForFiles: indexes] == NSOffState)
|
|
||||||
[fNormalColor set];
|
|
||||||
else
|
|
||||||
{
|
|
||||||
NSSet * priorities = [torrent filePrioritiesForIndexes: indexes];
|
|
||||||
int count = [priorities count];
|
|
||||||
if (count == 0)
|
|
||||||
[fNormalColor set];
|
|
||||||
else if (count > 1)
|
|
||||||
[fMixedPriorityColor set];
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int priority = [[priorities anyObject] intValue];
|
|
||||||
if (priority == TR_PRI_LOW)
|
|
||||||
[fLowPriorityColor set];
|
|
||||||
else if (priority == TR_PRI_HIGH)
|
|
||||||
[fHighPriorityColor set];
|
|
||||||
else
|
|
||||||
[fNormalColor set];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
NSRect rect = [self rectOfRow: row];
|
|
||||||
rect.size.height -= 1.0;
|
|
||||||
|
|
||||||
NSRectFill(rect);
|
|
||||||
}
|
|
||||||
|
|
||||||
[super drawRow: row clipRect: clipRect];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "FileOutlineView.h"
|
|
||||||
|
|
||||||
@interface FilePriorityCell : NSSegmentedCell
|
|
||||||
{
|
|
||||||
NSMutableDictionary * fItem;
|
|
||||||
|
|
||||||
NSImage * fLowImage, * fHighImage, * fNormalImage, * fMixedImage, * fNoneImage;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,126 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "FilePriorityCell.h"
|
|
||||||
#import "InfoWindowController.h"
|
|
||||||
#import "Torrent.h"
|
|
||||||
|
|
||||||
@implementation FilePriorityCell
|
|
||||||
|
|
||||||
- (id) init
|
|
||||||
{
|
|
||||||
if ((self = [super init]))
|
|
||||||
{
|
|
||||||
[self setTrackingMode: NSSegmentSwitchTrackingSelectAny];
|
|
||||||
[self setControlSize: NSMiniControlSize];
|
|
||||||
[self setSegmentCount: 3];
|
|
||||||
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < [self segmentCount]; i++)
|
|
||||||
{
|
|
||||||
[self setLabel: @"" forSegment: i];
|
|
||||||
[self setWidth: 7.0 forSegment: i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setSelected: (BOOL) flag forSegment: (int) segment
|
|
||||||
{
|
|
||||||
[super setSelected: flag forSegment: segment];
|
|
||||||
|
|
||||||
//only for when clicking manually
|
|
||||||
Torrent * torrent = [[[[self controlView] window] windowController] selectedTorrent];
|
|
||||||
|
|
||||||
int priority;
|
|
||||||
if (segment == 0)
|
|
||||||
priority = TR_PRI_LOW;
|
|
||||||
else if (segment == 2)
|
|
||||||
priority = TR_PRI_HIGH;
|
|
||||||
else
|
|
||||||
priority = TR_PRI_NORMAL;
|
|
||||||
|
|
||||||
[torrent setFilePriority: priority forIndexes: [[self representedObject] objectForKey: @"Indexes"]];
|
|
||||||
[(FileOutlineView *)[self controlView] reloadData];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) drawWithFrame: (NSRect) cellFrame inView: (NSView *) controlView
|
|
||||||
{
|
|
||||||
Torrent * torrent = [(InfoWindowController *)[[[self controlView] window] windowController] selectedTorrent];
|
|
||||||
NSDictionary * dict = [self representedObject];
|
|
||||||
NSSet * priorities = [torrent filePrioritiesForIndexes: [dict objectForKey: @"Indexes"]];
|
|
||||||
|
|
||||||
int count = [priorities count];
|
|
||||||
|
|
||||||
FileOutlineView * view = (FileOutlineView *)[self controlView];
|
|
||||||
int row = [view hoverRow];
|
|
||||||
if (count > 0 && row != -1 && [view itemAtRow: row] == dict)
|
|
||||||
{
|
|
||||||
[super setSelected: [priorities containsObject: [NSNumber numberWithInt: TR_PRI_LOW]] forSegment: 0];
|
|
||||||
[super setSelected: [priorities containsObject: [NSNumber numberWithInt: TR_PRI_NORMAL]] forSegment: 1];
|
|
||||||
[super setSelected: [priorities containsObject: [NSNumber numberWithInt: TR_PRI_HIGH]] forSegment: 2];
|
|
||||||
|
|
||||||
[super drawWithFrame: cellFrame inView: controlView];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
NSImage * image;
|
|
||||||
if (count == 0)
|
|
||||||
{
|
|
||||||
if (!fNoneImage)
|
|
||||||
fNoneImage = [NSImage imageNamed: @"PriorityNone.png"];
|
|
||||||
image = fNoneImage;
|
|
||||||
}
|
|
||||||
else if (count > 1)
|
|
||||||
{
|
|
||||||
if (!fMixedImage)
|
|
||||||
fMixedImage = [NSImage imageNamed: @"PriorityMixed.png"];
|
|
||||||
image = fMixedImage;
|
|
||||||
}
|
|
||||||
else if ([priorities containsObject: [NSNumber numberWithInt: TR_PRI_NORMAL]])
|
|
||||||
{
|
|
||||||
if (!fNormalImage)
|
|
||||||
fNormalImage = [NSImage imageNamed: @"PriorityNormal.png"];
|
|
||||||
image = fNormalImage;
|
|
||||||
}
|
|
||||||
else if ([priorities containsObject: [NSNumber numberWithInt: TR_PRI_LOW]])
|
|
||||||
{
|
|
||||||
if (!fLowImage)
|
|
||||||
fLowImage = [NSImage imageNamed: @"PriorityLow.png"];
|
|
||||||
image = fLowImage;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!fHighImage)
|
|
||||||
fHighImage = [NSImage imageNamed: @"PriorityHigh.png"];
|
|
||||||
image = fHighImage;
|
|
||||||
}
|
|
||||||
|
|
||||||
NSSize imageSize = [image size];
|
|
||||||
[image compositeToPoint: NSMakePoint(cellFrame.origin.x + (cellFrame.size.width - imageSize.width) * 0.5,
|
|
||||||
cellFrame.origin.y + (cellFrame.size.height + imageSize.height) * 0.5) operation: NSCompositeSourceOver];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2006-2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
|
|
||||||
@class CTGradient;
|
|
||||||
@interface FilterBarButton : NSButton
|
|
||||||
{
|
|
||||||
int fCount;
|
|
||||||
int fState;
|
|
||||||
BOOL fEnabled;
|
|
||||||
NSTrackingRectTag fTrackingTag;
|
|
||||||
NSBezierPath * fPath, * fEdgePath, * fStepPath;
|
|
||||||
NSDictionary * fNormalAttributes, * fNormalDimAttributes,
|
|
||||||
* fHighlightedAttributes, * fHighlightedDimAttributes;
|
|
||||||
CTGradient * fHighlightedBackground, * fHighlightedOutline,
|
|
||||||
* fActiveBackground, * fActiveOutline,
|
|
||||||
* fHoveringBackground;
|
|
||||||
NSColor * fHoveringOutline;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setCount: (int) count;
|
|
||||||
- (void) setEnabled: (BOOL) enable;
|
|
||||||
|
|
||||||
- (void) resetBounds: (NSNotification *) notification;
|
|
||||||
|
|
||||||
- (void) setForActive: (NSNotification *) notification;
|
|
||||||
- (void) setForInactive: (NSNotification *) notification;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,300 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2006-2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "FilterBarButton.h"
|
|
||||||
#import "CTGradient.h"
|
|
||||||
#import "CTGradientAdditions.h"
|
|
||||||
#import "NSBezierPathAdditions.h"
|
|
||||||
|
|
||||||
@interface FilterBarButton (Private)
|
|
||||||
|
|
||||||
- (void) createPaths;
|
|
||||||
- (void) createGradients;
|
|
||||||
- (void) createFontAttributes;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation FilterBarButton
|
|
||||||
|
|
||||||
- (id) initWithCoder: (NSCoder *) coder
|
|
||||||
{
|
|
||||||
if ((self = [super initWithCoder: coder]))
|
|
||||||
{
|
|
||||||
fEnabled = NO;
|
|
||||||
fTrackingTag = 0;
|
|
||||||
fCount = -1;
|
|
||||||
[self setCount: 0];
|
|
||||||
[self createPaths];
|
|
||||||
[self createGradients];
|
|
||||||
[self createFontAttributes];
|
|
||||||
|
|
||||||
NSNotificationCenter * nc = [NSNotificationCenter defaultCenter];
|
|
||||||
[nc addObserver: self selector: @selector(setForActive:) name: NSWindowDidBecomeKeyNotification object: [self window]];
|
|
||||||
[nc addObserver: self selector: @selector(setForInactive:) name: NSWindowDidResignKeyNotification object: [self window]];
|
|
||||||
[nc addObserver: self selector: @selector(resetBounds:) name: NSViewFrameDidChangeNotification object: nil];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) dealloc
|
|
||||||
{
|
|
||||||
[[NSNotificationCenter defaultCenter] removeObserver: self];
|
|
||||||
|
|
||||||
[fPath release];
|
|
||||||
[fEdgePath release];
|
|
||||||
[fStepPath release];
|
|
||||||
|
|
||||||
[fNormalAttributes release];
|
|
||||||
[fNormalDimAttributes release];
|
|
||||||
[fHighlightedAttributes release];
|
|
||||||
|
|
||||||
[fHighlightedDimAttributes release];
|
|
||||||
[fHighlightedBackground release];
|
|
||||||
[fHighlightedOutline release];
|
|
||||||
[fActiveBackground release];
|
|
||||||
[fActiveOutline release];
|
|
||||||
[fHoveringBackground release];
|
|
||||||
[fHoveringOutline release];
|
|
||||||
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) sizeToFit
|
|
||||||
{
|
|
||||||
NSSize size = [[self title] sizeWithAttributes: fNormalAttributes];
|
|
||||||
size.width = floorf(size.width + 14.5);
|
|
||||||
size.height += 1;
|
|
||||||
[self setFrameSize: size];
|
|
||||||
[self setBoundsSize: size];
|
|
||||||
[self createPaths];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL) isFlipped
|
|
||||||
{
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) drawRect: (NSRect) rect
|
|
||||||
{
|
|
||||||
// draw background
|
|
||||||
if ([[self cell] isHighlighted])
|
|
||||||
{
|
|
||||||
[fHighlightedBackground fillBezierPath: fPath angle: -90.0];
|
|
||||||
[fHighlightedOutline fillBezierPath: fStepPath angle: -90.0];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
switch (fState)
|
|
||||||
{
|
|
||||||
case 1: // active
|
|
||||||
[fActiveBackground fillBezierPath: fPath angle: -90.0];
|
|
||||||
[fActiveOutline fillBezierPath: fStepPath angle: -90.0];
|
|
||||||
break;
|
|
||||||
case 2: // hovering
|
|
||||||
case 3: // clicked but cell is not highlighted
|
|
||||||
[fHoveringBackground fillBezierPath: fPath angle: -90.0];
|
|
||||||
[fHoveringOutline setStroke];
|
|
||||||
[fEdgePath stroke];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// draw title
|
|
||||||
NSSize titleSize = [[self title] sizeWithAttributes: fNormalAttributes];
|
|
||||||
NSPoint titlePos = NSMakePoint(([self bounds].size.width - titleSize.width) * 0.5,
|
|
||||||
([self bounds].size.height - titleSize.height) * 0.5 + 1.5);
|
|
||||||
|
|
||||||
NSDictionary * attributes;
|
|
||||||
if (fState)
|
|
||||||
attributes = fEnabled ? fHighlightedAttributes : fHighlightedDimAttributes;
|
|
||||||
else
|
|
||||||
attributes = fEnabled ? fNormalAttributes : fNormalDimAttributes;
|
|
||||||
|
|
||||||
[[self title] drawAtPoint: titlePos withAttributes: attributes];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setCount: (int) count
|
|
||||||
{
|
|
||||||
if (count == fCount)
|
|
||||||
return;
|
|
||||||
fCount = count;
|
|
||||||
|
|
||||||
[self setToolTip: fCount == 1 ? NSLocalizedString(@"1 Transfer", "Filter Bar Button -> tool tip")
|
|
||||||
: [NSString stringWithFormat: NSLocalizedString(@"%d Transfers", "Filter Bar Button -> tool tip"), fCount]];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) mouseDown: (NSEvent *) event
|
|
||||||
{
|
|
||||||
if ([self state] != 1)
|
|
||||||
[self setState: 3];
|
|
||||||
[super mouseDown: event];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) mouseUp: (NSEvent *) event
|
|
||||||
{
|
|
||||||
[super mouseUp: event];
|
|
||||||
if ([self state] != 1)
|
|
||||||
[self setState: 1];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) mouseEntered: (NSEvent *) event
|
|
||||||
{
|
|
||||||
[super mouseEntered: event];
|
|
||||||
if ([self state] == 0)
|
|
||||||
[self setState: 2];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) mouseExited: (NSEvent *) event
|
|
||||||
{
|
|
||||||
[super mouseExited: event];
|
|
||||||
if ([self state] >= 2)
|
|
||||||
[self setState: 0];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setEnabled: (BOOL) enable
|
|
||||||
{
|
|
||||||
fEnabled = enable;
|
|
||||||
[self setNeedsDisplay: YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (int) state
|
|
||||||
{
|
|
||||||
return fState;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setState: (int) state
|
|
||||||
{
|
|
||||||
fState = state;
|
|
||||||
[self setNeedsDisplay: YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) resetBounds: (NSNotification *) notification
|
|
||||||
{
|
|
||||||
if (fTrackingTag)
|
|
||||||
[self removeTrackingRect: fTrackingTag];
|
|
||||||
fTrackingTag = [self addTrackingRect: [self bounds] owner: self userData: nil assumeInside: NO];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setForActive: (NSNotification *) notification
|
|
||||||
{
|
|
||||||
[self setEnabled: YES];
|
|
||||||
[self resetBounds: nil];
|
|
||||||
[self setNeedsDisplay: YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setForInactive: (NSNotification *) notification
|
|
||||||
{
|
|
||||||
if (fTrackingTag)
|
|
||||||
{
|
|
||||||
[self removeTrackingRect: fTrackingTag];
|
|
||||||
fTrackingTag = 0;
|
|
||||||
}
|
|
||||||
[self setEnabled: NO];
|
|
||||||
[self setNeedsDisplay: YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation FilterBarButton (Private)
|
|
||||||
|
|
||||||
- (void) createPaths
|
|
||||||
{
|
|
||||||
NSSize buttonSize = [self frame].size;
|
|
||||||
|
|
||||||
// the main button path
|
|
||||||
[fPath release];
|
|
||||||
fPath = [[NSBezierPath bezierPathWithRoundedRect: NSMakeRect(0.0, 1.0, buttonSize.width, buttonSize.height - 1.0)
|
|
||||||
radius: (buttonSize.height - 1.0) / 2.0] retain];
|
|
||||||
|
|
||||||
// the path used to draw the hover edging
|
|
||||||
[fEdgePath release];
|
|
||||||
fEdgePath = [[NSBezierPath bezierPathWithRoundedRect: NSMakeRect(0.5, 1.5, buttonSize.width - 1.0, buttonSize.height - 2.0)
|
|
||||||
radius: (buttonSize.height - 2.0) / 2.0] retain];
|
|
||||||
|
|
||||||
// the path used to draw the depressed shading/highlights of the active button
|
|
||||||
[fStepPath release];
|
|
||||||
fStepPath = [[NSBezierPath bezierPathWithRoundedRect: NSMakeRect(0.0, 0.0, buttonSize.width, buttonSize.height - 1.0)
|
|
||||||
radius: (buttonSize.height - 1.0) / 2.0] retain];
|
|
||||||
[fStepPath appendBezierPath: fPath];
|
|
||||||
[fStepPath setWindingRule: NSEvenOddWindingRule];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) createGradients
|
|
||||||
{
|
|
||||||
NSColor *quarterAlphaBlack = [NSColor colorWithCalibratedWhite: 0.0 alpha: 0.25];
|
|
||||||
NSColor *thirdAlphaWhite = [NSColor colorWithCalibratedWhite: 1.0 alpha: 0.3333];
|
|
||||||
fHighlightedBackground = [[CTGradient gradientWithBeginningColor: [NSColor colorWithCalibratedRed: 134.0/255 green: 151.0/255 blue: 176.0/255 alpha: 1.0]
|
|
||||||
endingColor: [NSColor colorWithCalibratedRed: 104.0/255 green: 125.0/255 blue: 157.0/255 alpha: 1.0]] retain];
|
|
||||||
fHighlightedOutline = [[CTGradient gradientWithBeginningColor: quarterAlphaBlack
|
|
||||||
middleColor1: quarterAlphaBlack
|
|
||||||
middleColor2: thirdAlphaWhite
|
|
||||||
endingColor: thirdAlphaWhite] retain];
|
|
||||||
fActiveBackground = [[CTGradient gradientWithBeginningColor: [NSColor colorWithCalibratedRed: 151.0/255 green: 166.0/255 blue: 188.0/255 alpha: 1.0]
|
|
||||||
endingColor: [NSColor colorWithCalibratedRed: 126.0/255 green: 144.0/255 blue: 171.0/255 alpha: 1.0]] retain];
|
|
||||||
fActiveOutline = [fHighlightedOutline retain];
|
|
||||||
fHoveringBackground = [[CTGradient gradientWithBeginningColor: [NSColor colorWithCalibratedRed: 164.0/255 green: 177.0/255 blue: 196.0/255 alpha: 1.0]
|
|
||||||
endingColor: [NSColor colorWithCalibratedRed: 141.0/255 green: 158.0/255 blue: 182.0/255 alpha: 1.0]] retain];
|
|
||||||
fHoveringOutline = [[NSColor colorWithCalibratedWhite: 0.0 alpha: 0.075] retain];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) createFontAttributes
|
|
||||||
{
|
|
||||||
NSFont * boldSystemFont = [NSFont boldSystemFontOfSize: 12.0];
|
|
||||||
NSSize shadowOffset = NSMakeSize(0.0, -1.0);
|
|
||||||
|
|
||||||
NSShadow * shadowNormal = [[[NSShadow alloc] init] autorelease];
|
|
||||||
[shadowNormal setShadowOffset: shadowOffset];
|
|
||||||
[shadowNormal setShadowBlurRadius: 1.0];
|
|
||||||
[shadowNormal setShadowColor: [NSColor colorWithCalibratedWhite: 1.0 alpha: 0.4]];
|
|
||||||
|
|
||||||
NSShadow * shadowNormalDim = [[[NSShadow alloc] init] autorelease];
|
|
||||||
[shadowNormalDim setShadowOffset: shadowOffset];
|
|
||||||
[shadowNormalDim setShadowBlurRadius: 1.0];
|
|
||||||
[shadowNormalDim setShadowColor: [NSColor colorWithCalibratedWhite: 1.0 alpha: 0.2]];
|
|
||||||
|
|
||||||
NSShadow * shadowHighlighted = [[[NSShadow alloc] init] autorelease];
|
|
||||||
[shadowHighlighted setShadowOffset: shadowOffset];
|
|
||||||
[shadowHighlighted setShadowBlurRadius: 1.0];
|
|
||||||
[shadowHighlighted setShadowColor: [NSColor colorWithCalibratedWhite: 0.0 alpha: 0.4]];
|
|
||||||
|
|
||||||
fNormalAttributes = [[NSDictionary alloc] initWithObjectsAndKeys:
|
|
||||||
[NSColor colorWithCalibratedWhite: 0.259 alpha: 1.0], NSForegroundColorAttributeName,
|
|
||||||
boldSystemFont, NSFontAttributeName,
|
|
||||||
shadowNormal, NSShadowAttributeName, nil];
|
|
||||||
|
|
||||||
fNormalDimAttributes = [[NSDictionary alloc] initWithObjectsAndKeys:
|
|
||||||
[NSColor disabledControlTextColor], NSForegroundColorAttributeName,
|
|
||||||
boldSystemFont, NSFontAttributeName,
|
|
||||||
shadowNormalDim, NSShadowAttributeName, nil];
|
|
||||||
|
|
||||||
fHighlightedAttributes = [[NSDictionary alloc] initWithObjectsAndKeys:
|
|
||||||
[NSColor whiteColor], NSForegroundColorAttributeName,
|
|
||||||
boldSystemFont, NSFontAttributeName,
|
|
||||||
shadowHighlighted, NSShadowAttributeName, nil];
|
|
||||||
|
|
||||||
fHighlightedDimAttributes = [[NSDictionary alloc] initWithObjectsAndKeys:
|
|
||||||
[NSColor colorWithCalibratedWhite: 0.9 alpha: 1.0], NSForegroundColorAttributeName,
|
|
||||||
boldSystemFont, NSFontAttributeName,
|
|
||||||
shadowHighlighted, NSShadowAttributeName, nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "ImageBackgroundView.h"
|
|
||||||
#import "FilterBarButton.h"
|
|
||||||
|
|
||||||
@interface FilterBarView : ImageBackgroundView
|
|
||||||
{
|
|
||||||
IBOutlet FilterBarButton * fNoFilterButton, * fDownloadFilterButton,
|
|
||||||
* fSeedFilterButton, * fPauseFilterButton;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Transmission authors and contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import "FilterBarView.h"
|
|
||||||
|
|
||||||
#define ORIGIN_VERTICAL 3.0
|
|
||||||
#define ORIGIN_HORIZONTAL 4.0
|
|
||||||
#define PADDING_HORIZONTAL 2.0
|
|
||||||
|
|
||||||
@implementation FilterBarView
|
|
||||||
|
|
||||||
- (void) awakeFromNib
|
|
||||||
{
|
|
||||||
[fNoFilterButton setTitle: NSLocalizedString(@"All", @"Filter Bar Button -> title")];
|
|
||||||
[fDownloadFilterButton setTitle: NSLocalizedString(@"Downloading", @"Filter Bar Button -> title")];
|
|
||||||
[fSeedFilterButton setTitle: NSLocalizedString(@"Seeding", @"Filter Bar Button -> title")];
|
|
||||||
[fPauseFilterButton setTitle: NSLocalizedString(@"Paused", @"Filter Bar Button -> title")];
|
|
||||||
|
|
||||||
[fNoFilterButton sizeToFit];
|
|
||||||
[fDownloadFilterButton sizeToFit];
|
|
||||||
[fSeedFilterButton sizeToFit];
|
|
||||||
[fPauseFilterButton sizeToFit];
|
|
||||||
|
|
||||||
[fNoFilterButton setFrameOrigin: NSMakePoint(ORIGIN_HORIZONTAL, ORIGIN_VERTICAL)];
|
|
||||||
[fDownloadFilterButton setFrameOrigin: NSMakePoint(NSMaxX([fNoFilterButton frame]) + PADDING_HORIZONTAL, ORIGIN_VERTICAL)];
|
|
||||||
[fSeedFilterButton setFrameOrigin: NSMakePoint(NSMaxX([fDownloadFilterButton frame]) + PADDING_HORIZONTAL, ORIGIN_VERTICAL)];
|
|
||||||
[fPauseFilterButton setFrameOrigin: NSMakePoint(NSMaxX([fSeedFilterButton frame]) + PADDING_HORIZONTAL, ORIGIN_VERTICAL)];
|
|
||||||
|
|
||||||
[self setNeedsDisplay: YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
-18
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{
|
|
||||||
ACTIONS = {hideLicense = id; showLicense = id; };
|
|
||||||
CLASS = AboutWindowController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fLicenseSheet = NSPanel;
|
|
||||||
fLicenseView = NSTextView;
|
|
||||||
fTextView = NSTextView;
|
|
||||||
fVersionField = NSTextField;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
},
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-12
@@ -1,12 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>23 96 356 240 0 0 1440 878 </string>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R2218</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
-30
@@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
cancelCreateProgress = id;
|
|
||||||
cancelCreateWindow = id;
|
|
||||||
create = id;
|
|
||||||
setLocation = id;
|
|
||||||
};
|
|
||||||
CLASS = CreatorWindowController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fCommentView = NSTextView;
|
|
||||||
fIconView = NSImageView;
|
|
||||||
fLocationField = NSTextField;
|
|
||||||
fNameField = NSTextField;
|
|
||||||
fOpenCheck = NSButton;
|
|
||||||
fPiecesField = NSTextField;
|
|
||||||
fPrivateCheck = NSButton;
|
|
||||||
fProgressIndicator = NSProgressIndicator;
|
|
||||||
fProgressView = NSView;
|
|
||||||
fStatusField = NSTextField;
|
|
||||||
fTrackerField = NSTextField;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
},
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
Generated
-17
@@ -1,17 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>259 52 356 240 0 0 1440 878 </string>
|
|
||||||
<key>IBEditorPositions</key>
|
|
||||||
<dict>
|
|
||||||
<key>56</key>
|
|
||||||
<string>549 442 376 126 0 0 1440 878 </string>
|
|
||||||
</dict>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R2218</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
BIN
Binary file not shown.
@@ -1,4 +0,0 @@
|
|||||||
/* Localized versions of Info.plist keys */
|
|
||||||
|
|
||||||
CFBundleName = "Transmission";
|
|
||||||
NSHumanReadableCopyright = "Copyright 2005-2007 The Transmission Project";
|
|
||||||
-87
@@ -1,87 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{CLASS = FileOutlineView; LANGUAGE = ObjC; SUPERCLASS = NSOutlineView; },
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
revealDataFile = id;
|
|
||||||
revealFile = id;
|
|
||||||
revealTorrentFile = id;
|
|
||||||
setCheck = id;
|
|
||||||
setOnlySelectedCheck = id;
|
|
||||||
setPex = id;
|
|
||||||
setPiecesView = id;
|
|
||||||
setPriority = id;
|
|
||||||
setRatioLimit = id;
|
|
||||||
setRatioSetting = id;
|
|
||||||
setSpeedLimit = id;
|
|
||||||
setSpeedMode = id;
|
|
||||||
};
|
|
||||||
CLASS = InfoWindowController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fCommentView = NSTextView;
|
|
||||||
fCompletedFromTrackerField = NSTextField;
|
|
||||||
fConnectedPeersField = NSTextField;
|
|
||||||
fCreatorField = NSTextField;
|
|
||||||
fDataLocationField = NSTextField;
|
|
||||||
fDateActivityField = NSTextField;
|
|
||||||
fDateAddedField = NSTextField;
|
|
||||||
fDateCompletedField = NSTextField;
|
|
||||||
fDateCreatedField = NSTextField;
|
|
||||||
fDownloadLimitField = NSTextField;
|
|
||||||
fDownloadLimitLabel = NSTextField;
|
|
||||||
fDownloadLimitPopUp = NSPopUpButton;
|
|
||||||
fDownloadedTotalField = NSTextField;
|
|
||||||
fDownloadedValidField = NSTextField;
|
|
||||||
fDownloadingFromField = NSTextField;
|
|
||||||
fErrorMessageView = NSTextView;
|
|
||||||
fFileCheckItem = NSMenuItem;
|
|
||||||
fFileOutline = FileOutlineView;
|
|
||||||
fFilePriorityHigh = NSMenuItem;
|
|
||||||
fFilePriorityLow = NSMenuItem;
|
|
||||||
fFilePriorityNormal = NSMenuItem;
|
|
||||||
fFileTableStatusField = NSTextField;
|
|
||||||
fFileUncheckItem = NSMenuItem;
|
|
||||||
fHashField = NSTextField;
|
|
||||||
fImageView = NSImageView;
|
|
||||||
fLeechersField = NSTextField;
|
|
||||||
fNameField = NSTextField;
|
|
||||||
fPeerTable = NSTableView;
|
|
||||||
fPexCheck = NSButton;
|
|
||||||
fPiecesControl = NSSegmentedControl;
|
|
||||||
fPiecesField = NSTextField;
|
|
||||||
fPiecesView = PiecesView;
|
|
||||||
fProgressField = NSTextField;
|
|
||||||
fRatioField = NSTextField;
|
|
||||||
fRatioLimitField = NSTextField;
|
|
||||||
fRatioPopUp = NSPopUpButton;
|
|
||||||
fRevealDataButton = NSButton;
|
|
||||||
fRevealTorrentButton = NSButton;
|
|
||||||
fSecureField = NSTextField;
|
|
||||||
fSeedersField = NSTextField;
|
|
||||||
fSizeField = NSTextField;
|
|
||||||
fStateField = NSTextField;
|
|
||||||
fSwarmSpeedField = NSTextField;
|
|
||||||
fTabView = NSTabView;
|
|
||||||
fTorrentLocationField = NSTextField;
|
|
||||||
fTrackerField = NSTextField;
|
|
||||||
fUploadLimitField = NSTextField;
|
|
||||||
fUploadLimitLabel = NSTextField;
|
|
||||||
fUploadLimitPopUp = NSPopUpButton;
|
|
||||||
fUploadedTotalField = NSTextField;
|
|
||||||
fUploadingToField = NSTextField;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
},
|
|
||||||
{CLASS = NSLevelIndicatorCell; LANGUAGE = ObjC; SUPERCLASS = NSActionCell; },
|
|
||||||
{CLASS = NSSegmentedControl; LANGUAGE = ObjC; SUPERCLASS = NSControl; },
|
|
||||||
{
|
|
||||||
CLASS = PeerProgressIndicatorCell;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
SUPERCLASS = NSLevelIndicatorCell;
|
|
||||||
},
|
|
||||||
{CLASS = PiecesView; LANGUAGE = ObjC; SUPERCLASS = NSImageView; }
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-25
@@ -1,25 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>454 71 356 240 0 0 1440 878 </string>
|
|
||||||
<key>IBEditorPositions</key>
|
|
||||||
<dict>
|
|
||||||
<key>549</key>
|
|
||||||
<string>577 325 236 149 0 0 1440 878 </string>
|
|
||||||
</dict>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBLockedObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>5</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBLockedTabItems</key>
|
|
||||||
<array>
|
|
||||||
<integer>332</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R2218</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
BIN
Binary file not shown.
@@ -1,619 +0,0 @@
|
|||||||
/* Torrent -> progress string */
|
|
||||||
" - %@ remaining" = " - %@ restant";
|
|
||||||
|
|
||||||
/* Torrent -> progress string */
|
|
||||||
" - remaining time unknown" = " - temps restant inconnu";
|
|
||||||
|
|
||||||
/* File size (beware of leading space) */
|
|
||||||
" GB" = " Go";
|
|
||||||
|
|
||||||
/* File size (beware of leading space) */
|
|
||||||
" KB" = " Ko";
|
|
||||||
|
|
||||||
/* File size (beware of leading space) */
|
|
||||||
" MB" = " Mo";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> message part 2 */
|
|
||||||
" Once removed, continuing the transfers will require the torrent files. Do you really want to remove them?" = " Une fois supprimés, la reprise des transferts requiert les fichiers torrents. Voulez-vous vraiment les supprimer?";
|
|
||||||
|
|
||||||
/* Inspector -> Activity tab -> progress */
|
|
||||||
"%.2f%% (%.2f%% selected)" = "%1$.2f%% (%2$.2f%% sélectionné)";
|
|
||||||
|
|
||||||
/* Inspector -> Files tab -> file status string */
|
|
||||||
"%.2f%% of %@" = "%1$.2f%% de %2$@";
|
|
||||||
|
|
||||||
/* Torrent -> progress string */
|
|
||||||
"%@ of %@ (%.2f%%)" = "%1$@ sur %2$@ (%3$.2f%%)";
|
|
||||||
|
|
||||||
/* Torrent -> progress string */
|
|
||||||
"%@ of %@ (%.2f%%), uploaded %@ (Ratio: %@)" = "%1$@ de %2$@ (%3$.2f%%), envoyé %4$@ (Ratio: %5$@)";
|
|
||||||
|
|
||||||
/* Inspector -> above tabs -> total size (several torrents selected) */
|
|
||||||
"%@ Total" = "Total : %@";
|
|
||||||
|
|
||||||
/* Create torrent -> info */
|
|
||||||
"%@, %@ each" = "%1$@, %2$@ chaque";
|
|
||||||
|
|
||||||
/* Torrent -> progress string */
|
|
||||||
"%@, uploaded %@ (Ratio: %@)" = "%1$@, envoyé %2$@ (Ratio: %3$@)";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> peers */
|
|
||||||
"%d cache" = "%d cache";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> peers */
|
|
||||||
"%d Connected" = "%d connecté(s)";
|
|
||||||
|
|
||||||
/* Torrent -> remaining time */
|
|
||||||
"%d days %d hr" = "%1$d jours %2$d h";
|
|
||||||
|
|
||||||
/* Dock item - Downloading */
|
|
||||||
"%d Downloading" = "%d en téléchargement";
|
|
||||||
|
|
||||||
/* Inspector -> Files tab -> bottom text (number of files) */
|
|
||||||
"%d files total" = "%d fichiers";
|
|
||||||
|
|
||||||
/* Drag overlay -> torrents
|
|
||||||
Create torrent -> info */
|
|
||||||
"%d Files, " = "%d Fichiers, ";
|
|
||||||
|
|
||||||
/* Torrent -> remaining time */
|
|
||||||
"%d hr %02d min" = "%1$d h %2$d min";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> peers */
|
|
||||||
"%d incoming" = "%d entrant";
|
|
||||||
|
|
||||||
/* Torrent -> remaining time */
|
|
||||||
"%d min %02d sec" = "%1$d min %2$d sec";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> peers */
|
|
||||||
"%d PEX" = "%d PEX";
|
|
||||||
|
|
||||||
/* Create torrent -> info */
|
|
||||||
"%d pieces" = "%d pièces";
|
|
||||||
|
|
||||||
/* Torrent -> remaining time */
|
|
||||||
"%d sec" = "%d sec";
|
|
||||||
|
|
||||||
/* Dock item - Seeding */
|
|
||||||
"%d Seeding" = "%d en Seed";
|
|
||||||
|
|
||||||
/* Drag overlay -> torrents */
|
|
||||||
"%d Torrent Files" = "%d Fichiers Torrent";
|
|
||||||
|
|
||||||
/* Inspector -> above tabs -> selected torrents */
|
|
||||||
"%d Torrents Selected" = "%d torrents sélectionnés";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> peers */
|
|
||||||
"%d tracker" = "%d tracker";
|
|
||||||
|
|
||||||
/* Filter Bar Button -> tool tip
|
|
||||||
Status bar transfer count */
|
|
||||||
"%d Transfers" = "%d transferts";
|
|
||||||
|
|
||||||
/* File size */
|
|
||||||
"%lld bytes" = "%lld octets";
|
|
||||||
|
|
||||||
/* Torrent -> error string unreadable */
|
|
||||||
"(unreadable error)" = "(erreur illisible)";
|
|
||||||
|
|
||||||
/* Torrent -> remaining time */
|
|
||||||
"1 day %d hr" = "1 jour %d h";
|
|
||||||
|
|
||||||
/* Inspector -> Files tab -> bottom text (number of files) */
|
|
||||||
"1 file total" = "1 fichier";
|
|
||||||
|
|
||||||
/* Drag overlay -> torrents
|
|
||||||
Create torrent -> info */
|
|
||||||
"1 File, " = "1 Fichier, ";
|
|
||||||
|
|
||||||
/* Create torrent -> info */
|
|
||||||
"1 piece" = "1 pièce";
|
|
||||||
|
|
||||||
/* Filter Bar Button -> tool tip
|
|
||||||
Status bar transfer count */
|
|
||||||
"1 Transfer" = "1 transfert";
|
|
||||||
|
|
||||||
/* Move folder cannot be found alert -> message */
|
|
||||||
"\"%@\" cannot be found. The file will remain in its current location." = "\"%@\" n'a pas pu être trouvé. Le fichier va rester à son emplacement actuel.";
|
|
||||||
|
|
||||||
/* Folder cannot be found alert -> message */
|
|
||||||
"\"%@\" cannot be found. The transfer will be paused." = "\"%@\" n'a pas pu être trouvé. Le transfert va être arrêté.";
|
|
||||||
|
|
||||||
/* Create torrent -> file already exists warning -> warning */
|
|
||||||
"A file with the name \"%@\" already exists in the directory \"%@\". Choose a new name or directory to create the torrent." = "Un fichier nommé \"%1$@\" existe déja dans le dossier \"%2$@\". Choisissez un nom ou un dossier différent pour créer le torrent.";
|
|
||||||
|
|
||||||
/* Move inside iteself alert -> title */
|
|
||||||
"A folder cannot be moved to inside itself." = "Un dossier ne peut être déplacé à l'intérieur de lui-même.";
|
|
||||||
|
|
||||||
/* Create torrent -> zero size -> warning */
|
|
||||||
"A torrent file cannot be created for files with no size." = "Un ficher torrent ne peut être créé avec une taille nulle.";
|
|
||||||
|
|
||||||
/* Create torrent -> file already exists warning -> title */
|
|
||||||
"A torrent file with this name and directory cannot be created." = "Un ficher torrent ne peut être créé avec ce nom et ce dossier.";
|
|
||||||
|
|
||||||
/* Open duplicate alert -> title */
|
|
||||||
"A transfer of \"%@\" is already running." = "Un transfer de \"%@\" est déja actif.";
|
|
||||||
|
|
||||||
/* Torrent file disk space alert -> button */
|
|
||||||
"Always Download" = "Toujours télécharger";
|
|
||||||
|
|
||||||
/* Transfer speed (Bytes per second) */
|
|
||||||
"B/s" = "o/s";
|
|
||||||
|
|
||||||
/* Preferences -> Bandwidth toolbar item title */
|
|
||||||
"Bandwidth" = "Bande passante";
|
|
||||||
|
|
||||||
/* Growl notification description */
|
|
||||||
"Bandwidth settings changed" = "Les réglages de bande passante ont changé";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> button
|
|
||||||
Confirm Quit panel -> button */
|
|
||||||
"Cancel" = "Annuler";
|
|
||||||
|
|
||||||
/* Create torrent -> no url warning -> warning
|
|
||||||
Create torrent -> http warning -> warning */
|
|
||||||
"Change the tracker address to create the torrent." = "Changez l'adresse du tracker pour créer le torrent.";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Checking existing data (%.2f%%)" = "Vérification des fichiers existants (%.2f%%)";
|
|
||||||
|
|
||||||
/* Preferences -> Network -> port status */
|
|
||||||
"Checking port status" = "Vérification de l'état du port";
|
|
||||||
|
|
||||||
/* Folder cannot be found alert -> location button */
|
|
||||||
"Choose New Location" = "Nouvel emplacement";
|
|
||||||
|
|
||||||
/* Confirm Quit panel -> title */
|
|
||||||
"Confirm Quit" = "Voulez-vous réellement quitter ?";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> title */
|
|
||||||
"Confirm Removal of %d Transfers" = "Confirmez la suppression de %d transferts";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> title */
|
|
||||||
"Confirm Removal of \"%@\"" = "Confirmez la suppression de \"%@\"";
|
|
||||||
|
|
||||||
/* Debug log alert -> informative message */
|
|
||||||
"Continuous use at this level might increase memory usage. This setting can be changed in the Message Log window (accessible from the Window menu)." = "Un usage continu à ce niveau peut augmenter l'utilisation mémoire. Ce réglage peut être modifié dans la fenêtre Historique des Messages (accessible via le menu Fenêtre).";
|
|
||||||
|
|
||||||
/* Torrent file copy alert -> title */
|
|
||||||
"Copy of \"%@\" Cannot Be Created" = "La copie de \"%@\" ne peut pas être créée";
|
|
||||||
|
|
||||||
/* Create toolbar item -> label */
|
|
||||||
"Create" = "Créer";
|
|
||||||
|
|
||||||
/* Drag overlay -> file */
|
|
||||||
"Create a Torrent File" = "Créer un fichier torrent";
|
|
||||||
|
|
||||||
/* Create toolbar item -> tooltip */
|
|
||||||
"Create torrent file" = "Crée un fichier torrent";
|
|
||||||
|
|
||||||
/* Create toolbar item -> palette label */
|
|
||||||
"Create Torrent File" = "Créer un fichier torrent";
|
|
||||||
|
|
||||||
/* Create torrent -> failed -> title */
|
|
||||||
"Creation of \"%@\" failed." = "La création de \"%@\" a échoué.";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"DL: %@, " = "DL: %@, ";
|
|
||||||
|
|
||||||
/* Debug log alert -> button
|
|
||||||
Open duplicate alert -> button */
|
|
||||||
"Don't Alert Again" = "Ne plus avertir";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"Don't Download" = "Ne pas télécharger";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"Download" = "Télécharger";
|
|
||||||
|
|
||||||
/* Torrent file disk space alert -> button */
|
|
||||||
"Download Anyway" = "Télécharger quand même";
|
|
||||||
|
|
||||||
/* Growl notification title */
|
|
||||||
"Download Complete" = "Téléchargement terminé";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"Download Some" = "Téléchargement (certains)";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Downloading" = "Téléchargement";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Downloading from %d of %d peers" = "Téléchargement de %1$d sur %2$d pairs";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Downloading from %d of 1 peer" = "Téléchargement de %d sur 1 pair";
|
|
||||||
|
|
||||||
/* Transfer speed invalid
|
|
||||||
Ratio invalid */
|
|
||||||
"error" = "erreur";
|
|
||||||
|
|
||||||
/* Preferences -> Network -> port map status */
|
|
||||||
"Error mapping port" = "Erreur de mappage du port";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Error: " = "Erreur: ";
|
|
||||||
|
|
||||||
/* Filter toolbar item -> label */
|
|
||||||
"Filter" = "Filtre";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> table row tooltip */
|
|
||||||
"From: cache" = "De: cache";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> table row tooltip */
|
|
||||||
"From: incoming connection" = "De: connexion entrante";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> table row tooltip */
|
|
||||||
"From: peer exchange" = "De: PEX";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> table row tooltip */
|
|
||||||
"From: tracker" = "De: tracker";
|
|
||||||
|
|
||||||
/* Preferences -> General toolbar item title */
|
|
||||||
"General" = "Général";
|
|
||||||
|
|
||||||
/* View menu -> Filter Bar */
|
|
||||||
"Hide Filter Bar" = "Masquer la barre de filtre";
|
|
||||||
|
|
||||||
/* View menu -> Inspector */
|
|
||||||
"Hide Inspector" = "Masquer l'inspecteur";
|
|
||||||
|
|
||||||
/* View menu -> Status Bar */
|
|
||||||
"Hide Status Bar" = "Masquer la barre de statut";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"High Priority" = "Priorité haute";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> peers
|
|
||||||
Inspector -> Files tab -> bottom text (number of files) */
|
|
||||||
"info not available" = "information non disponible";
|
|
||||||
|
|
||||||
/* Inspector toolbar item -> label */
|
|
||||||
"Inspector" = "Inspecteur";
|
|
||||||
|
|
||||||
/* Download not a torrent -> message */
|
|
||||||
"It appears that the file \"%@\" from %@ is not a torrent file." = "Il semble que le fichier \"%1$@\" provenant de %2$@ ne soit pas un torrent.";
|
|
||||||
|
|
||||||
/* Action context menu -> upload/download limit */
|
|
||||||
"Limit (%d KB/s)" = "Limité (%d Ko/s)";
|
|
||||||
|
|
||||||
/* Save log alert panel -> title */
|
|
||||||
"Log Could Not Be Saved" = "Les messages n'ont pas pu être enregistrés";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"Low Priority" = "Priorité basse";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"Multiple Priorities" = "Prioritiés multiples";
|
|
||||||
|
|
||||||
/* No Ratio
|
|
||||||
Torrent -> status string */
|
|
||||||
"N/A" = "ND";
|
|
||||||
|
|
||||||
/* Preferences -> Network toolbar item title */
|
|
||||||
"Network" = "Réseau";
|
|
||||||
|
|
||||||
/* Inspector -> above tabs -> selected torrents */
|
|
||||||
"No Torrents Selected" = "Aucun torrent sélectionné";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"Normal Priority" = "Priorité Normale";
|
|
||||||
|
|
||||||
/* Torrent file disk space alert -> title */
|
|
||||||
"Not enough remaining disk space to download \"%@\" completely." = "Pas assez d'espace disque pour télécharger \"%@\" en entier.";
|
|
||||||
|
|
||||||
/* Open duplicate alert -> button
|
|
||||||
Create torrent -> no files -> button
|
|
||||||
Create torrent -> file already exists warning -> button
|
|
||||||
Torrent file copy alert -> button
|
|
||||||
Move folder cannot be found alert -> button
|
|
||||||
Folder cannot be found alert -> button
|
|
||||||
Torrent file disk space alert -> button
|
|
||||||
Create torrent -> no url warning -> button
|
|
||||||
Torrent download failed -> button
|
|
||||||
Create torrent -> failed -> button
|
|
||||||
Move error alert -> button
|
|
||||||
Debug log alert -> button
|
|
||||||
Download not a torrent -> button
|
|
||||||
Create torrent -> zero size -> button
|
|
||||||
Move inside itself alert -> button
|
|
||||||
Save log alert panel -> button
|
|
||||||
Create torrent -> http warning -> button */
|
|
||||||
"OK" = "OK";
|
|
||||||
|
|
||||||
/* Open toolbar item -> label */
|
|
||||||
"Open" = "Ouvrir";
|
|
||||||
|
|
||||||
/* Open toolbar item -> tooltip */
|
|
||||||
"Open torrent files" = "Ouvre des fichiers torrents";
|
|
||||||
|
|
||||||
/* Open toolbar item -> palette label */
|
|
||||||
"Open Torrent Files" = "Ouvrir des fichiers torrents";
|
|
||||||
|
|
||||||
/* Pause toolbar item -> label */
|
|
||||||
"Pause" = "Arrêt";
|
|
||||||
|
|
||||||
/* Pause All toolbar item -> label */
|
|
||||||
"Pause All" = "Arrêt tous";
|
|
||||||
|
|
||||||
/* Pause All toolbar item -> tooltip */
|
|
||||||
"Pause all transfers" = "Arrête tous les transferts";
|
|
||||||
|
|
||||||
/* Pause toolbar item -> palette label */
|
|
||||||
"Pause Selected" = "Arrêter la sélection";
|
|
||||||
|
|
||||||
/* Pause toolbar item -> tooltip */
|
|
||||||
"Pause selected transfers" = "Arrête le transfert sélectionné";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Paused" = "En pause";
|
|
||||||
|
|
||||||
/* Preferences -> Network -> port status */
|
|
||||||
"Port is closed" = "Le port est fermé";
|
|
||||||
|
|
||||||
/* Preferences -> Network -> port status */
|
|
||||||
"Port is open" = "Le port est ouvert";
|
|
||||||
|
|
||||||
/* Preferences -> Network -> port status */
|
|
||||||
"Port is stealth" = "Le port est furtif";
|
|
||||||
|
|
||||||
/* Preferences -> Network -> port map status */
|
|
||||||
"Port successfully mapped" = "Mappage du port réussi";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> table row tooltip */
|
|
||||||
"Port: %d" = "Port: %d";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> table row tooltip */
|
|
||||||
"Port: N/A" = "Port: ND";
|
|
||||||
|
|
||||||
/* Inspector -> files tab -> tooltip */
|
|
||||||
"Priority Not Available" = "Priorité indisponible";
|
|
||||||
|
|
||||||
/* Inspector -> is private torrent */
|
|
||||||
"Private Torrent, PEX disabled" = "Torrent privé, PEX désactivé";
|
|
||||||
|
|
||||||
/* Inspector -> Peers tab -> table row tooltip */
|
|
||||||
"Progress: %.1f%%" = "Progrès: %.1f%%";
|
|
||||||
|
|
||||||
/* Inspector -> is not private torrent */
|
|
||||||
"Public Torrent" = "Torrent public";
|
|
||||||
|
|
||||||
/* Transmission already running alert -> button
|
|
||||||
OS update needed -> button
|
|
||||||
Confirm Quit panel -> button */
|
|
||||||
"Quit" = "Quitter";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Ratio: " = "Ratio: ";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Ratio: %@, " = "Ratio: %@, ";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> button
|
|
||||||
Remove toolbar item -> label */
|
|
||||||
"Remove" = "Supprimer";
|
|
||||||
|
|
||||||
/* Remove toolbar item -> palette label */
|
|
||||||
"Remove Selected" = "Supprimer la sélection";
|
|
||||||
|
|
||||||
/* Remove toolbar item -> tooltip */
|
|
||||||
"Remove selected transfers" = "Supprime les transferts sélectionnés";
|
|
||||||
|
|
||||||
/* Resume toolbar item -> label */
|
|
||||||
"Resume" = "Reprendre";
|
|
||||||
|
|
||||||
/* Resume All toolbar item -> label */
|
|
||||||
"Resume All" = "Reprendre tous";
|
|
||||||
|
|
||||||
/* Resume All toolbar item -> tooltip */
|
|
||||||
"Resume all transfers" = "Reprend tous les transferts";
|
|
||||||
|
|
||||||
/* Resume toolbar item -> palette label */
|
|
||||||
"Resume Selected" = "Reprendre la sélection";
|
|
||||||
|
|
||||||
/* Resume toolbar item -> tooltip */
|
|
||||||
"Resume selected transfers" = "Reprend le transfert sélectionné";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Seeding" = "Seed";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Seeding complete" = "Seed terminé";
|
|
||||||
|
|
||||||
/* Growl notification title */
|
|
||||||
"Seeding Complete" = "Seed Terminé";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Seeding to %d of %d peers" = "Seed à %1$d sur %2$d pairs";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Seeding to %d of 1 peer" = "Seed à %d sur 1 pair";
|
|
||||||
|
|
||||||
/* Folder cannot be found alert -> prompt
|
|
||||||
Default folder cannot be found alert -> prompt
|
|
||||||
Open torrent -> prompt
|
|
||||||
Move torrent -> prompt
|
|
||||||
Default incomplete folder cannot be found alert -> prompt
|
|
||||||
Create torrent -> select file */
|
|
||||||
"Select" = "Choisir";
|
|
||||||
|
|
||||||
/* Create torrent -> select file */
|
|
||||||
"Select a file or folder for the torrent file." = "Sélectionnez un fichier ou un dossier pour le fichier torrent.";
|
|
||||||
|
|
||||||
/* Folder cannot be found alert -> select destination folder
|
|
||||||
Open torrent -> select destination folder */
|
|
||||||
"Select the download folder for \"%@\"" = "Sélectionnez le dossier de téléchargement pour \"%@\"";
|
|
||||||
|
|
||||||
/* Move torrent -> select destination folder */
|
|
||||||
"Select the new folder for %d data files." = "Sélectionnez le nouveau dossier pour les données de %d.";
|
|
||||||
|
|
||||||
/* Move torrent -> select destination folder */
|
|
||||||
"Select the new folder for \"%@\"." = "Sélectionnez le nouveau dossier pour \"%@\".";
|
|
||||||
|
|
||||||
/* Main window -> 1st bottom left button (action) tooltip */
|
|
||||||
"Shortcuts for changing global settings." = "Raccourci pour changer les réglages";
|
|
||||||
|
|
||||||
/* View menu -> Filter Bar */
|
|
||||||
"Show Filter Bar" = "Afficher la barre de filtre";
|
|
||||||
|
|
||||||
/* View menu -> Inspector */
|
|
||||||
"Show Inspector" = "Afficher l'inspecteur";
|
|
||||||
|
|
||||||
/* View menu -> Status Bar */
|
|
||||||
"Show Status Bar" = "Afficher la barre de statut";
|
|
||||||
|
|
||||||
/* Growl notification title */
|
|
||||||
"Speed Limit Auto Disabled" = "Vitesse limitée automatique désactivée";
|
|
||||||
|
|
||||||
/* Growl notification title */
|
|
||||||
"Speed Limit Auto Enabled" = "Vitesse limitée automatique activée";
|
|
||||||
|
|
||||||
/* Main window -> 2nd bottom left button (turtle) tooltip */
|
|
||||||
"Speed Limit overrides the total bandwidth limits with its own limits." = "Le mode vitesse limitée prime sur les autres réglages de vitesse";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Stalled, " = "Calé, ";
|
|
||||||
|
|
||||||
/* Action context menu -> ratio stop */
|
|
||||||
"Stop at Ratio (%.2f)" = "Arrêter au ratio (%.2f)";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Stopping" = "Arrêt";
|
|
||||||
|
|
||||||
/* Default folder cannot be found alert -> message */
|
|
||||||
"The download folder cannot be found. Choose a new location." = "Le dossier de téléchargement est introuvable. Veuillez choisir un nouvel emplacement.";
|
|
||||||
|
|
||||||
/* Folder cannot be found alert -> title */
|
|
||||||
"The folder for downloading \"%@\" cannot be found." = "Le dossier pour le téléchargement de \"%@\" n'a pas pu être trouvé.";
|
|
||||||
|
|
||||||
/* Move folder cannot be found alert -> title */
|
|
||||||
"The folder for moving the completed \"%@\" cannot be found." = "Le dossier pour déplacer \"%@\" n'a pas pu être trouvé.";
|
|
||||||
|
|
||||||
/* Default incomplete folder cannot be found alert -> message */
|
|
||||||
"The incomplete folder cannot be found. Choose a new location or cancel for none." = "Le dossier des téléchargements incomplets est introuvable. Veuillez choisir un nouvel emplacement ou annuler.";
|
|
||||||
|
|
||||||
/* Debug log alert -> message */
|
|
||||||
"The Message Log is set to \"Debug\"" = "L'Historique des Messages est réglé sur \"Debug\"";
|
|
||||||
|
|
||||||
/* Move inside iteself alert -> message
|
|
||||||
Move error alert -> message */
|
|
||||||
"The move operation of \"%@\" cannot be done." = "L'opération de déplacement de \"%@\" ne peut être effectuée.";
|
|
||||||
|
|
||||||
/* Torrent download failed -> message */
|
|
||||||
"The torrent could not be downloaded from %@ because an error occurred (%@)." = "Le torrent provenant de %1$@ n'a pas pu être téléchargé car une erreur est survenue (%2$@).";
|
|
||||||
|
|
||||||
/* Torrent file copy alert -> message */
|
|
||||||
"The torrent file (%@) cannot be found." = "Le torrent (%@) n'a pas pu être trouvé.";
|
|
||||||
|
|
||||||
/* Open duplicate alert -> message */
|
|
||||||
"The torrent file cannot be opened because it is a duplicate of an already running transfer." = "Le fichier torrent n'a pu être ouvert car c'est une copie d'un transfert actif.";
|
|
||||||
|
|
||||||
/* Create torrent -> zero size -> title */
|
|
||||||
"The total file size is zero bytes." = "La taille totale du ficher est zéro octets.";
|
|
||||||
|
|
||||||
/* Create torrent -> no url warning -> title */
|
|
||||||
"The tracker address cannot be blank." = "L'adresse du tracker ne peut être vide.";
|
|
||||||
|
|
||||||
/* Create torrent -> http warning -> title */
|
|
||||||
"The tracker address must begin with \"http://\"." = "L'adresse du tracker doit commencer par \"http://\".";
|
|
||||||
|
|
||||||
/* Torrent file disk space alert -> message */
|
|
||||||
"The transfer will be paused. Clear up space on \"%@\" to continue." = "Le transfert va être mis en pause. Faites de la place sur \"%@\" pour continuer.";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> message part 1 */
|
|
||||||
"There are %d active transfers." = "Il y a %d transferts actifs.";
|
|
||||||
|
|
||||||
/* Confirm Quit panel -> message */
|
|
||||||
"There are %d active transfers. Do you really want to quit?" = "Il y a encore %d transferts actifs. Voulez-vous vraiment quitter ?";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> message part 1 */
|
|
||||||
"There are %d transfers (%d active)." = "Il y a %1$d transferts dont %2$d actif(s).";
|
|
||||||
|
|
||||||
/* Transmission already running alert -> message */
|
|
||||||
"There is already a copy of Transmission running. This copy cannot be opened until that instance is quit." = "Il y a déja une copie de Transmission en route. Cette copie ne pourra être ouverte avant que l'autre ne soit quittée.";
|
|
||||||
|
|
||||||
/* Confirm Quit panel -> message */
|
|
||||||
"There is an active transfer. Do you really want to quit?" = "Il y a encore un transfert actif. Voulez-vous vraiment quitter ?";
|
|
||||||
|
|
||||||
/* Create torrent -> no files -> warning */
|
|
||||||
"There must be at least one file in a folder to create a torrent file." = "Il doit y avoir au moins un fichier ou dossier pour créer un torrent.";
|
|
||||||
|
|
||||||
/* Save log alert panel -> message */
|
|
||||||
"There was a problem creating the file \"%@\"." = "Problème lors de la création du fichier \"%@\".";
|
|
||||||
|
|
||||||
/* Move error alert -> title */
|
|
||||||
"There was an error moving the data file." = "Il y a eu une erreur lors du déplacement des données.";
|
|
||||||
|
|
||||||
/* Create torrent -> failed -> warning */
|
|
||||||
"There was an error parsing the data file. The torrent file was not created." = "Il y a eu une erreur à l'analyse des données. Le fichier torrent n'a pas été créé.";
|
|
||||||
|
|
||||||
/* Create torrent -> no files -> title */
|
|
||||||
"This folder contains no files." = "Ce dossier ne contient pas de fichiers.";
|
|
||||||
|
|
||||||
/* Removal confirm panel -> message */
|
|
||||||
"This transfer is active. Once removed, continuing the transfer will require the torrent file. Do you really want to remove it?" = "Ce transfert est actif. Une fois supprimé, la reprise du transfert requiert le fichier torrent. Voulez-vous vraiment le supprimer?";
|
|
||||||
|
|
||||||
/* Filter toolbar item -> palette label */
|
|
||||||
"Toggle Filter" = "Afficher/masquer le filtre";
|
|
||||||
|
|
||||||
/* Inspector toolbar item -> palette label */
|
|
||||||
"Toggle Inspector" = "Afficher/masquer l'inspecteur";
|
|
||||||
|
|
||||||
/* Filter toolbar item -> tooltip */
|
|
||||||
"Toggle the filter bar" = "Affiche/masque la barre de filtre";
|
|
||||||
|
|
||||||
/* Inspector toolbar item -> tooltip */
|
|
||||||
"Toggle the torrent inspector" = "Affiche/masque l'inspecteur de torrents";
|
|
||||||
|
|
||||||
/* Torrent download error -> title
|
|
||||||
Download not a torrent -> title */
|
|
||||||
"Torrent download failed" = "Echec du téléchargement";
|
|
||||||
|
|
||||||
/* Growl notification title */
|
|
||||||
"Torrent File Auto Added" = "Torrent automatiquement ajouté";
|
|
||||||
|
|
||||||
/* Status bar -> total download */
|
|
||||||
"Total DL: " = "DL total: ";
|
|
||||||
|
|
||||||
/* Status bar -> total upload */
|
|
||||||
"Total UL: " = "UL total: ";
|
|
||||||
|
|
||||||
/* Preferences -> Transfers toolbar item title */
|
|
||||||
"Transfers" = "Transferts";
|
|
||||||
|
|
||||||
/* OS update needed -> message */
|
|
||||||
"Transmission has features that require a more up-to-date operating system. The operating system must be updated before this version can run." = "Transmission utilise des composants requiérant une version plus récente du système. Vous devez mettre Mac OS X à jour avant de pouvoir utiliser Transmission.";
|
|
||||||
|
|
||||||
/* Transmission already running alert -> title */
|
|
||||||
"Transmission is already running." = "Transmission est déjà en cours d'exécution";
|
|
||||||
|
|
||||||
/* OS update needed -> title */
|
|
||||||
"Transmission requires Mac OS X 10.4 or greater." = "Transmission requiert Mac OS X 10.4 ou supérieur";
|
|
||||||
|
|
||||||
/* Torrent -> location when deleting original */
|
|
||||||
"Transmission Support Folder" = "Dossier support de Transmission";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"UL: " = "UL: ";
|
|
||||||
|
|
||||||
/* Preferences -> Network -> port status */
|
|
||||||
"Unable to check port status" = "Impossible de vérifier le port";
|
|
||||||
|
|
||||||
/* Torrent -> remaining time */
|
|
||||||
"Unknown" = "inconnu";
|
|
||||||
|
|
||||||
/* Save log panel -> default file name */
|
|
||||||
"untitled" = "sans titre";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Waiting to check existing files" = "En attente de vérification";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Waiting to download" = "En attente de téléchargement";
|
|
||||||
|
|
||||||
/* Torrent -> status string */
|
|
||||||
"Waiting to seed" = "En attente de seed";
|
|
||||||
|
|
||||||
/* Drag overlay -> url */
|
|
||||||
"Web Address" = "Adresse Web";
|
|
||||||
|
|
||||||
-188
@@ -1,188 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{CLASS = ActionPopUpButton; LANGUAGE = ObjC; SUPERCLASS = NSPopUpButton; },
|
|
||||||
{CLASS = BarButton; LANGUAGE = ObjC; SUPERCLASS = NSButton; },
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
announceSelectedTorrents = id;
|
|
||||||
applyFilter = id;
|
|
||||||
applySpeedLimit = id;
|
|
||||||
copyTorrentFiles = id;
|
|
||||||
createFile = id;
|
|
||||||
doNothing = id;
|
|
||||||
linkDonate = id;
|
|
||||||
linkForums = id;
|
|
||||||
linkHomepage = id;
|
|
||||||
moveDataFiles = id;
|
|
||||||
openShowSheet = id;
|
|
||||||
openURLCancelEndSheet = id;
|
|
||||||
openURLEndSheet = id;
|
|
||||||
openURLShowSheet = id;
|
|
||||||
removeDeleteData = id;
|
|
||||||
removeDeleteDataAndTorrent = id;
|
|
||||||
removeDeleteTorrent = id;
|
|
||||||
removeNoDelete = id;
|
|
||||||
resetCacheForSelectedTorrents = id;
|
|
||||||
resumeAllTorrents = id;
|
|
||||||
resumeSelectedTorrents = id;
|
|
||||||
resumeSelectedTorrentsNoWait = id;
|
|
||||||
resumeWaitingTorrents = id;
|
|
||||||
revealFile = id;
|
|
||||||
setFilter = id;
|
|
||||||
setInfoTab = id;
|
|
||||||
setLimitGlobalEnabled = id;
|
|
||||||
setQuickLimitGlobal = id;
|
|
||||||
setQuickRatioGlobal = id;
|
|
||||||
setSort = id;
|
|
||||||
setSortReverse = id;
|
|
||||||
showAboutWindow = id;
|
|
||||||
showInfo = id;
|
|
||||||
showMainWindow = id;
|
|
||||||
showMessageWindow = id;
|
|
||||||
showPreferenceWindow = id;
|
|
||||||
stopAllTorrents = id;
|
|
||||||
stopSelectedTorrents = id;
|
|
||||||
switchFilter = id;
|
|
||||||
toggleAdvancedBar = id;
|
|
||||||
toggleFilterBar = id;
|
|
||||||
toggleSmallView = id;
|
|
||||||
toggleSpeedLimit = id;
|
|
||||||
toggleStatusBar = id;
|
|
||||||
};
|
|
||||||
CLASS = Controller;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fActionButton = NSButton;
|
|
||||||
fBottomBar = ImageBackgroundView;
|
|
||||||
fDateSortActionItem = NSMenuItem;
|
|
||||||
fDateSortItem = NSMenuItem;
|
|
||||||
fDockMenu = NSMenu;
|
|
||||||
fDownloadFilterButton = FilterBarButton;
|
|
||||||
fDownloadLimitItem = NSMenuItem;
|
|
||||||
fDownloadMenu = NSMenu;
|
|
||||||
fDownloadNoLimitItem = NSMenuItem;
|
|
||||||
fFilterBar = FilterBarView;
|
|
||||||
fNameSortActionItem = NSMenuItem;
|
|
||||||
fNameSortItem = NSMenuItem;
|
|
||||||
fNextFilterItem = NSMenuItem;
|
|
||||||
fNextInfoTabItem = NSMenuItem;
|
|
||||||
fNoFilterButton = FilterBarButton;
|
|
||||||
fOpenIgnoreDownloadFolder = NSMenuItem;
|
|
||||||
fOrderSortActionItem = NSMenuItem;
|
|
||||||
fOrderSortItem = NSMenuItem;
|
|
||||||
fPauseFilterButton = FilterBarButton;
|
|
||||||
fPrevFilterItem = NSMenuItem;
|
|
||||||
fPrevInfoTabItem = NSMenuItem;
|
|
||||||
fProgressSortActionItem = NSMenuItem;
|
|
||||||
fProgressSortItem = NSMenuItem;
|
|
||||||
fScrollView = NSScrollView;
|
|
||||||
fSearchFilterField = NSSearchField;
|
|
||||||
fSeedFilterButton = FilterBarButton;
|
|
||||||
fSpeedLimitButton = NSButton;
|
|
||||||
fStateSortActionItem = NSMenuItem;
|
|
||||||
fStateSortItem = NSMenuItem;
|
|
||||||
fStatusBar = ImageBackgroundView;
|
|
||||||
fTableView = TorrentTableView;
|
|
||||||
fTotalDLField = NSTextField;
|
|
||||||
fTotalTorrentsField = NSTextField;
|
|
||||||
fTotalULField = NSTextField;
|
|
||||||
fURLSheetTextField = NSTextField;
|
|
||||||
fURLSheetWindow = NSWindow;
|
|
||||||
fUpdater = SUUpdater;
|
|
||||||
fUploadLimitItem = NSMenuItem;
|
|
||||||
fUploadMenu = NSMenu;
|
|
||||||
fUploadNoLimitItem = NSMenuItem;
|
|
||||||
fWindow = NSWindow;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{CLASS = FilterBarButton; LANGUAGE = ObjC; SUPERCLASS = NSButton; },
|
|
||||||
{
|
|
||||||
CLASS = FilterBarView;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fDownloadFilterButton = FilterBarButton;
|
|
||||||
fNoFilterButton = FilterBarButton;
|
|
||||||
fPauseFilterButton = FilterBarButton;
|
|
||||||
fSeedFilterButton = FilterBarButton;
|
|
||||||
};
|
|
||||||
SUPERCLASS = ImageBackgroundView;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ACTIONS = {deselectAll = id; revealFile = id; setNextTab = id; setPreviousTab = id; };
|
|
||||||
CLASS = FirstResponder;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{CLASS = ImageBackgroundView; LANGUAGE = ObjC; SUPERCLASS = NSView; },
|
|
||||||
{CLASS = NSSegmentedControl; LANGUAGE = ObjC; SUPERCLASS = NSControl; },
|
|
||||||
{CLASS = NameCell; LANGUAGE = ObjC; SUPERCLASS = NSCell; },
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
folderSheetShow = id;
|
|
||||||
setAutoStart = id;
|
|
||||||
setBadge = id;
|
|
||||||
setDownloadLocation = id;
|
|
||||||
setLimit = id;
|
|
||||||
setLimitCheck = id;
|
|
||||||
setLimitMenu = id;
|
|
||||||
setPort = id;
|
|
||||||
setQuickRatio = id;
|
|
||||||
setQuickSpeed = id;
|
|
||||||
setRatio = id;
|
|
||||||
setRatioCheck = id;
|
|
||||||
setRatioMenu = id;
|
|
||||||
setShowMessage = id;
|
|
||||||
setUpdate = id;
|
|
||||||
};
|
|
||||||
CLASS = PrefsController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fAutoStartCheck = NSButton;
|
|
||||||
fBadgeDownloadRateCheck = NSButton;
|
|
||||||
fBadgeUploadRateCheck = NSButton;
|
|
||||||
fBlankView = NSView;
|
|
||||||
fDownloadCheck = NSButton;
|
|
||||||
fDownloadField = NSTextField;
|
|
||||||
fDownloadLimitItem = NSMenuItem;
|
|
||||||
fDownloadMenu = NSMenu;
|
|
||||||
fDownloadNoLimitItem = NSMenuItem;
|
|
||||||
fFolderPopUp = NSPopUpButton;
|
|
||||||
fGeneralView = NSView;
|
|
||||||
fNetworkView = NSView;
|
|
||||||
fPortField = NSTextField;
|
|
||||||
fPrefsWindow = NSPanel;
|
|
||||||
fQuitCheck = NSButton;
|
|
||||||
fRatioCheck = NSButton;
|
|
||||||
fRatioField = NSTextField;
|
|
||||||
fRatioNotSetItem = NSMenuItem;
|
|
||||||
fRatioSetItem = NSMenuItem;
|
|
||||||
fRemoveCheck = NSButton;
|
|
||||||
fTransfersView = NSView;
|
|
||||||
fUpdatePopUp = NSPopUpButton;
|
|
||||||
fUpdater = SUUpdater;
|
|
||||||
fUploadCheck = NSButton;
|
|
||||||
fUploadField = NSTextField;
|
|
||||||
fUploadLimitItem = NSMenuItem;
|
|
||||||
fUploadMenu = NSMenu;
|
|
||||||
fUploadNoLimitItem = NSMenuItem;
|
|
||||||
fWindow = NSWindow;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{CLASS = ProgressCell; LANGUAGE = ObjC; SUPERCLASS = NSCell; },
|
|
||||||
{
|
|
||||||
ACTIONS = {checkForUpdates = id; };
|
|
||||||
CLASS = SUUpdater;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
CLASS = TorrentTableView;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {fContextNoRow = NSMenu; fContextRow = NSMenu; fController = Controller; };
|
|
||||||
SUPERCLASS = NSTableView;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-33
@@ -1,33 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>438 17 422 283 0 0 1440 878 </string>
|
|
||||||
<key>IBEditorPositions</key>
|
|
||||||
<dict>
|
|
||||||
<key>1041</key>
|
|
||||||
<string>616 618 239 149 0 0 1440 878 </string>
|
|
||||||
<key>1480</key>
|
|
||||||
<string>512 553 420 63 0 0 1440 878 </string>
|
|
||||||
<key>1906</key>
|
|
||||||
<string>483 550 477 67 0 0 1440 878 </string>
|
|
||||||
<key>29</key>
|
|
||||||
<string>76 652 548 44 0 0 1440 878 </string>
|
|
||||||
<key>456</key>
|
|
||||||
<string>713 400 274 225 0 0 1440 878 </string>
|
|
||||||
<key>581</key>
|
|
||||||
<string>733 486 140 99 0 0 1440 878 </string>
|
|
||||||
<key>589</key>
|
|
||||||
<string>73 545 241 106 0 0 1440 878 </string>
|
|
||||||
</dict>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBLockedObjects</key>
|
|
||||||
<array/>
|
|
||||||
<key>IBOldestOS</key>
|
|
||||||
<integer>3</integer>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R2218</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
BIN
Binary file not shown.
-19
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
|
||||||
{
|
|
||||||
ACTIONS = {changeLevel = id; clearLog = id; writeToFile = id; };
|
|
||||||
CLASS = MessageWindowController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fDebugWarningField = NSTextField;
|
|
||||||
fDebugWarningIcon = NSImageView;
|
|
||||||
fLevelButton = NSPopUpButton;
|
|
||||||
fScrollView = NSScrollView;
|
|
||||||
fTextView = NSTextView;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-12
@@ -1,12 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>34 76 356 240 0 0 1440 878 </string>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R2218</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
-78
@@ -1,78 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
|
||||||
{CLASS = MenuButton; LANGUAGE = ObjC; SUPERCLASS = NSButton; },
|
|
||||||
{CLASS = NSDatePicker; LANGUAGE = ObjC; SUPERCLASS = NSControl; },
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
applyRatioSetting = id;
|
|
||||||
applySpeedSettings = id;
|
|
||||||
folderSheetShow = id;
|
|
||||||
helpForNetwork = id;
|
|
||||||
importFolderSheetShow = id;
|
|
||||||
incompleteFolderSheetShow = id;
|
|
||||||
resetWarnings = id;
|
|
||||||
setAutoImport = id;
|
|
||||||
setAutoSize = id;
|
|
||||||
setAutoSpeedLimit = id;
|
|
||||||
setBadge = id;
|
|
||||||
setDownloadLocation = id;
|
|
||||||
setGlobalLimit = id;
|
|
||||||
setNat = id;
|
|
||||||
setPort = id;
|
|
||||||
setQueue = id;
|
|
||||||
setQueueNumber = id;
|
|
||||||
setRatioStop = id;
|
|
||||||
setSound = id;
|
|
||||||
setSpeedLimit = id;
|
|
||||||
setStalled = id;
|
|
||||||
setStalledMinutes = id;
|
|
||||||
setUpdate = id;
|
|
||||||
};
|
|
||||||
CLASS = PrefsController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fBandwidthView = NSView;
|
|
||||||
fDownloadField = NSTextField;
|
|
||||||
fDownloadSoundPopUp = NSPopUpButton;
|
|
||||||
fFolderPopUp = NSPopUpButton;
|
|
||||||
fGeneralView = NSView;
|
|
||||||
fImportFolderPopUp = NSPopUpButton;
|
|
||||||
fIncompleteFolderPopUp = NSPopUpButton;
|
|
||||||
fNatCheck = NSButton;
|
|
||||||
fNatStatusField = NSTextField;
|
|
||||||
fNatStatusImage = NSImageView;
|
|
||||||
fNetworkView = NSView;
|
|
||||||
fPortField = NSTextField;
|
|
||||||
fPortStatusField = NSTextField;
|
|
||||||
fPortStatusImage = NSImageView;
|
|
||||||
fPortStatusProgress = NSProgressIndicator;
|
|
||||||
fQueueDownloadField = NSTextField;
|
|
||||||
fQueueSeedField = NSTextField;
|
|
||||||
fRatioStopField = NSTextField;
|
|
||||||
fSeedingSoundPopUp = NSPopUpButton;
|
|
||||||
fSpeedLimitDownloadField = NSTextField;
|
|
||||||
fSpeedLimitUploadField = NSTextField;
|
|
||||||
fStalledField = NSTextField;
|
|
||||||
fTransfersView = NSView;
|
|
||||||
fUpdatePopUp = NSPopUpButton;
|
|
||||||
fUploadField = NSTextField;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
},
|
|
||||||
{CLASS = PrefsWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow; },
|
|
||||||
{
|
|
||||||
ACTIONS = {checkForUpdates = id; };
|
|
||||||
CLASS = SUUpdater;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
CLASS = TorrentTableView;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {fContextNoRow = NSMenu; fContextRow = NSMenu; fController = Controller; };
|
|
||||||
SUPERCLASS = NSTableView;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-27
@@ -1,27 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>690 102 356 240 0 0 1440 878 </string>
|
|
||||||
<key>IBEditorPositions</key>
|
|
||||||
<dict>
|
|
||||||
<key>153</key>
|
|
||||||
<string>531 187 563 267 0 0 1440 878 </string>
|
|
||||||
<key>28</key>
|
|
||||||
<string>821 425 563 319 0 0 1440 878 </string>
|
|
||||||
<key>41</key>
|
|
||||||
<string>440 355 563 317 0 0 1440 878 </string>
|
|
||||||
<key>66</key>
|
|
||||||
<string>440 514 563 144 0 0 1440 878 </string>
|
|
||||||
</dict>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBLockedTabItems</key>
|
|
||||||
<array>
|
|
||||||
<integer>253</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R2218</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
-18
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{
|
|
||||||
ACTIONS = {hideLicense = id; showLicense = id; };
|
|
||||||
CLASS = AboutWindowController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fLicenseSheet = NSPanel;
|
|
||||||
fLicenseView = NSTextView;
|
|
||||||
fTextView = NSTextView;
|
|
||||||
fVersionField = NSTextField;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
},
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-16
@@ -1,16 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>27 115 356 240 0 0 1600 1002 </string>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBOpenObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>5</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R218</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
BIN
Binary file not shown.
-30
@@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
cancelCreateProgress = id;
|
|
||||||
cancelCreateWindow = id;
|
|
||||||
create = id;
|
|
||||||
setLocation = id;
|
|
||||||
};
|
|
||||||
CLASS = CreatorWindowController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fCommentView = NSTextView;
|
|
||||||
fIconView = NSImageView;
|
|
||||||
fLocationField = NSTextField;
|
|
||||||
fNameField = NSTextField;
|
|
||||||
fOpenCheck = NSButton;
|
|
||||||
fPiecesField = NSTextField;
|
|
||||||
fPrivateCheck = NSButton;
|
|
||||||
fProgressIndicator = NSProgressIndicator;
|
|
||||||
fProgressView = NSView;
|
|
||||||
fStatusField = NSTextField;
|
|
||||||
fTrackerField = NSTextField;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
},
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
Generated
-21
@@ -1,21 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>81 77 356 240 0 0 1600 1002 </string>
|
|
||||||
<key>IBEditorPositions</key>
|
|
||||||
<dict>
|
|
||||||
<key>56</key>
|
|
||||||
<string>2 579 368 126 0 0 1600 1002 </string>
|
|
||||||
</dict>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBOpenObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>5</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R218</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
BIN
Binary file not shown.
@@ -1,4 +0,0 @@
|
|||||||
/* Localized versions of Info.plist keys */
|
|
||||||
|
|
||||||
CFBundleName = "Transmission";
|
|
||||||
NSHumanReadableCopyright = "Copyright 2005-2007 The Transmission Project";
|
|
||||||
-88
@@ -1,88 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{CLASS = FileOutlineView; LANGUAGE = ObjC; SUPERCLASS = NSOutlineView; },
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
|
||||||
{CLASS = InfoWindow; LANGUAGE = ObjC; SUPERCLASS = NSPanel; },
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
revealDataFile = id;
|
|
||||||
revealFile = id;
|
|
||||||
revealTorrentFile = id;
|
|
||||||
setCheck = id;
|
|
||||||
setOnlySelectedCheck = id;
|
|
||||||
setPex = id;
|
|
||||||
setPiecesView = id;
|
|
||||||
setPriority = id;
|
|
||||||
setRatioLimit = id;
|
|
||||||
setRatioSetting = id;
|
|
||||||
setSpeedLimit = id;
|
|
||||||
setSpeedMode = id;
|
|
||||||
};
|
|
||||||
CLASS = InfoWindowController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fCommentView = NSTextView;
|
|
||||||
fCompletedFromTrackerField = NSTextField;
|
|
||||||
fConnectedPeersField = NSTextField;
|
|
||||||
fCreatorField = NSTextField;
|
|
||||||
fDataLocationField = NSTextField;
|
|
||||||
fDateActivityField = NSTextField;
|
|
||||||
fDateAddedField = NSTextField;
|
|
||||||
fDateCompletedField = NSTextField;
|
|
||||||
fDateCreatedField = NSTextField;
|
|
||||||
fDownloadLimitField = NSTextField;
|
|
||||||
fDownloadLimitLabel = NSTextField;
|
|
||||||
fDownloadLimitPopUp = NSPopUpButton;
|
|
||||||
fDownloadedTotalField = NSTextField;
|
|
||||||
fDownloadedValidField = NSTextField;
|
|
||||||
fDownloadingFromField = NSTextField;
|
|
||||||
fErrorMessageView = NSTextView;
|
|
||||||
fFileCheckItem = NSMenuItem;
|
|
||||||
fFileOutline = FileOutlineView;
|
|
||||||
fFilePriorityHigh = NSMenuItem;
|
|
||||||
fFilePriorityLow = NSMenuItem;
|
|
||||||
fFilePriorityNormal = NSMenuItem;
|
|
||||||
fFileTableStatusField = NSTextField;
|
|
||||||
fFileUncheckItem = NSMenuItem;
|
|
||||||
fHashField = NSTextField;
|
|
||||||
fImageView = NSImageView;
|
|
||||||
fLeechersField = NSTextField;
|
|
||||||
fNameField = NSTextField;
|
|
||||||
fPeerTable = NSTableView;
|
|
||||||
fPexCheck = NSButton;
|
|
||||||
fPiecesControl = NSSegmentedControl;
|
|
||||||
fPiecesField = NSTextField;
|
|
||||||
fPiecesView = PiecesView;
|
|
||||||
fProgressField = NSTextField;
|
|
||||||
fRatioField = NSTextField;
|
|
||||||
fRatioLimitField = NSTextField;
|
|
||||||
fRatioPopUp = NSPopUpButton;
|
|
||||||
fRevealDataButton = NSButton;
|
|
||||||
fRevealTorrentButton = NSButton;
|
|
||||||
fSecureField = NSTextField;
|
|
||||||
fSeedersField = NSTextField;
|
|
||||||
fSizeField = NSTextField;
|
|
||||||
fStateField = NSTextField;
|
|
||||||
fSwarmSpeedField = NSTextField;
|
|
||||||
fTabView = NSTabView;
|
|
||||||
fTorrentLocationField = NSTextField;
|
|
||||||
fTrackerField = NSTextField;
|
|
||||||
fUploadLimitField = NSTextField;
|
|
||||||
fUploadLimitLabel = NSTextField;
|
|
||||||
fUploadLimitPopUp = NSPopUpButton;
|
|
||||||
fUploadedTotalField = NSTextField;
|
|
||||||
fUploadingToField = NSTextField;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
},
|
|
||||||
{CLASS = NSLevelIndicatorCell; LANGUAGE = ObjC; SUPERCLASS = NSActionCell; },
|
|
||||||
{CLASS = NSSegmentedControl; LANGUAGE = ObjC; SUPERCLASS = NSControl; },
|
|
||||||
{
|
|
||||||
CLASS = PeerProgressIndicatorCell;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
SUPERCLASS = NSLevelIndicatorCell;
|
|
||||||
},
|
|
||||||
{CLASS = PiecesView; LANGUAGE = ObjC; SUPERCLASS = NSImageView; }
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-25
@@ -1,25 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>3 464 356 240 0 0 1600 1002 </string>
|
|
||||||
<key>IBEditorPositions</key>
|
|
||||||
<dict>
|
|
||||||
<key>549</key>
|
|
||||||
<string>368 553 258 149 0 0 1600 1002 </string>
|
|
||||||
</dict>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBLockedObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>5</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBLockedTabItems</key>
|
|
||||||
<array>
|
|
||||||
<integer>332</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R218</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
BIN
Binary file not shown.
Binary file not shown.
-186
@@ -1,186 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{CLASS = ActionPopUpButton; LANGUAGE = ObjC; SUPERCLASS = NSPopUpButton; },
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
announceSelectedTorrents = id;
|
|
||||||
applyFilter = id;
|
|
||||||
applySpeedLimit = id;
|
|
||||||
copyTorrentFiles = id;
|
|
||||||
createFile = id;
|
|
||||||
doNothing = id;
|
|
||||||
linkForums = id;
|
|
||||||
linkHomepage = id;
|
|
||||||
moveDataFiles = id;
|
|
||||||
openShowSheet = id;
|
|
||||||
openURLCancelEndSheet = id;
|
|
||||||
openURLEndSheet = id;
|
|
||||||
openURLShowSheet = id;
|
|
||||||
removeDeleteData = id;
|
|
||||||
removeDeleteDataAndTorrent = id;
|
|
||||||
removeDeleteTorrent = id;
|
|
||||||
removeNoDelete = id;
|
|
||||||
resetCacheForSelectedTorrents = id;
|
|
||||||
resumeAllTorrents = id;
|
|
||||||
resumeSelectedTorrents = id;
|
|
||||||
resumeSelectedTorrentsNoWait = id;
|
|
||||||
resumeWaitingTorrents = id;
|
|
||||||
revealFile = id;
|
|
||||||
setFilter = id;
|
|
||||||
setInfoTab = id;
|
|
||||||
setLimitGlobalEnabled = id;
|
|
||||||
setQuickLimitGlobal = id;
|
|
||||||
setQuickRatioGlobal = id;
|
|
||||||
setSort = id;
|
|
||||||
setSortReverse = id;
|
|
||||||
showAboutWindow = id;
|
|
||||||
showInfo = id;
|
|
||||||
showMainWindow = id;
|
|
||||||
showMessageWindow = id;
|
|
||||||
showPreferenceWindow = id;
|
|
||||||
stopAllTorrents = id;
|
|
||||||
stopSelectedTorrents = id;
|
|
||||||
switchFilter = id;
|
|
||||||
toggleAdvancedBar = id;
|
|
||||||
toggleFilterBar = id;
|
|
||||||
toggleSmallView = id;
|
|
||||||
toggleSpeedLimit = id;
|
|
||||||
toggleStatusBar = id;
|
|
||||||
};
|
|
||||||
CLASS = Controller;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fActionButton = NSButton;
|
|
||||||
fBottomBar = ImageBackgroundView;
|
|
||||||
fDateSortActionItem = NSMenuItem;
|
|
||||||
fDateSortItem = NSMenuItem;
|
|
||||||
fDockMenu = NSMenu;
|
|
||||||
fDownloadFilterButton = FilterBarButton;
|
|
||||||
fDownloadLimitItem = NSMenuItem;
|
|
||||||
fDownloadMenu = NSMenu;
|
|
||||||
fDownloadNoLimitItem = NSMenuItem;
|
|
||||||
fFilterBar = FilterBarView;
|
|
||||||
fNameSortActionItem = NSMenuItem;
|
|
||||||
fNameSortItem = NSMenuItem;
|
|
||||||
fNextFilterItem = NSMenuItem;
|
|
||||||
fNextInfoTabItem = NSMenuItem;
|
|
||||||
fNoFilterButton = FilterBarButton;
|
|
||||||
fOpenIgnoreDownloadFolder = NSMenuItem;
|
|
||||||
fOrderSortActionItem = NSMenuItem;
|
|
||||||
fOrderSortItem = NSMenuItem;
|
|
||||||
fPauseFilterButton = FilterBarButton;
|
|
||||||
fPrevFilterItem = NSMenuItem;
|
|
||||||
fPrevInfoTabItem = NSMenuItem;
|
|
||||||
fProgressSortActionItem = NSMenuItem;
|
|
||||||
fProgressSortItem = NSMenuItem;
|
|
||||||
fScrollView = NSScrollView;
|
|
||||||
fSearchFilterField = NSSearchField;
|
|
||||||
fSeedFilterButton = FilterBarButton;
|
|
||||||
fSpeedLimitButton = NSButton;
|
|
||||||
fStateSortActionItem = NSMenuItem;
|
|
||||||
fStateSortItem = NSMenuItem;
|
|
||||||
fStatusBar = ImageBackgroundView;
|
|
||||||
fTableView = TorrentTableView;
|
|
||||||
fTotalDLField = NSTextField;
|
|
||||||
fTotalTorrentsField = NSTextField;
|
|
||||||
fTotalULField = NSTextField;
|
|
||||||
fURLSheetTextField = NSTextField;
|
|
||||||
fURLSheetWindow = NSWindow;
|
|
||||||
fUpdater = SUUpdater;
|
|
||||||
fUploadLimitItem = NSMenuItem;
|
|
||||||
fUploadMenu = NSMenu;
|
|
||||||
fUploadNoLimitItem = NSMenuItem;
|
|
||||||
fWindow = NSWindow;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{CLASS = FilterBarButton; LANGUAGE = ObjC; SUPERCLASS = NSButton; },
|
|
||||||
{
|
|
||||||
CLASS = FilterBarView;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fDownloadFilterButton = FilterBarButton;
|
|
||||||
fNoFilterButton = FilterBarButton;
|
|
||||||
fPauseFilterButton = FilterBarButton;
|
|
||||||
fSeedFilterButton = FilterBarButton;
|
|
||||||
};
|
|
||||||
SUPERCLASS = ImageBackgroundView;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ACTIONS = {deselectAll = id; revealFile = id; setNextTab = id; setPreviousTab = id; };
|
|
||||||
CLASS = FirstResponder;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{CLASS = ImageBackgroundView; LANGUAGE = ObjC; SUPERCLASS = NSView; },
|
|
||||||
{CLASS = NSSegmentedControl; LANGUAGE = ObjC; SUPERCLASS = NSControl; },
|
|
||||||
{CLASS = NameCell; LANGUAGE = ObjC; SUPERCLASS = NSCell; },
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
folderSheetShow = id;
|
|
||||||
setAutoStart = id;
|
|
||||||
setBadge = id;
|
|
||||||
setDownloadLocation = id;
|
|
||||||
setLimit = id;
|
|
||||||
setLimitCheck = id;
|
|
||||||
setLimitMenu = id;
|
|
||||||
setPort = id;
|
|
||||||
setQuickRatio = id;
|
|
||||||
setQuickSpeed = id;
|
|
||||||
setRatio = id;
|
|
||||||
setRatioCheck = id;
|
|
||||||
setRatioMenu = id;
|
|
||||||
setShowMessage = id;
|
|
||||||
setUpdate = id;
|
|
||||||
};
|
|
||||||
CLASS = PrefsController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fAutoStartCheck = NSButton;
|
|
||||||
fBadgeDownloadRateCheck = NSButton;
|
|
||||||
fBadgeUploadRateCheck = NSButton;
|
|
||||||
fBlankView = NSView;
|
|
||||||
fDownloadCheck = NSButton;
|
|
||||||
fDownloadField = NSTextField;
|
|
||||||
fDownloadLimitItem = NSMenuItem;
|
|
||||||
fDownloadMenu = NSMenu;
|
|
||||||
fDownloadNoLimitItem = NSMenuItem;
|
|
||||||
fFolderPopUp = NSPopUpButton;
|
|
||||||
fGeneralView = NSView;
|
|
||||||
fNetworkView = NSView;
|
|
||||||
fPortField = NSTextField;
|
|
||||||
fPrefsWindow = NSPanel;
|
|
||||||
fQuitCheck = NSButton;
|
|
||||||
fRatioCheck = NSButton;
|
|
||||||
fRatioField = NSTextField;
|
|
||||||
fRatioNotSetItem = NSMenuItem;
|
|
||||||
fRatioSetItem = NSMenuItem;
|
|
||||||
fRemoveCheck = NSButton;
|
|
||||||
fTransfersView = NSView;
|
|
||||||
fUpdatePopUp = NSPopUpButton;
|
|
||||||
fUpdater = SUUpdater;
|
|
||||||
fUploadCheck = NSButton;
|
|
||||||
fUploadField = NSTextField;
|
|
||||||
fUploadLimitItem = NSMenuItem;
|
|
||||||
fUploadMenu = NSMenu;
|
|
||||||
fUploadNoLimitItem = NSMenuItem;
|
|
||||||
fWindow = NSWindow;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{CLASS = ProgressCell; LANGUAGE = ObjC; SUPERCLASS = NSCell; },
|
|
||||||
{
|
|
||||||
ACTIONS = {checkForUpdates = id; };
|
|
||||||
CLASS = SUUpdater;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
CLASS = TorrentTableView;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {fContextNoRow = NSMenu; fContextRow = NSMenu; fController = Controller; };
|
|
||||||
SUPERCLASS = NSTableView;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
Generated
-35
@@ -1,35 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>6 212 356 438 0 0 1600 1002 </string>
|
|
||||||
<key>IBEditorPositions</key>
|
|
||||||
<dict>
|
|
||||||
<key>1041</key>
|
|
||||||
<string>518 760 308 149 0 0 1600 1002 </string>
|
|
||||||
<key>1480</key>
|
|
||||||
<string>12 552 420 63 0 0 1600 1002 </string>
|
|
||||||
<key>1603</key>
|
|
||||||
<string>553 634 477 67 0 0 1600 1002 </string>
|
|
||||||
<key>29</key>
|
|
||||||
<string>8 958 639 44 0 0 1600 1002 </string>
|
|
||||||
<key>456</key>
|
|
||||||
<string>360 777 356 225 0 0 1600 1002 </string>
|
|
||||||
<key>581</key>
|
|
||||||
<string>363 903 167 99 0 0 1600 1002 </string>
|
|
||||||
<key>589</key>
|
|
||||||
<string>362 896 249 106 0 0 1600 1002 </string>
|
|
||||||
</dict>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBLockedObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>21</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBOldestOS</key>
|
|
||||||
<integer>3</integer>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R218</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
BIN
Binary file not shown.
-19
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
|
||||||
{
|
|
||||||
ACTIONS = {changeLevel = id; clearLog = id; writeToFile = id; };
|
|
||||||
CLASS = MessageWindowController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fDebugWarningField = NSTextField;
|
|
||||||
fDebugWarningIcon = NSImageView;
|
|
||||||
fLevelButton = NSPopUpButton;
|
|
||||||
fScrollView = NSScrollView;
|
|
||||||
fTextView = NSTextView;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-16
@@ -1,16 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>1 461 356 240 0 0 1600 1002 </string>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBOpenObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>5</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R218</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
-78
@@ -1,78 +0,0 @@
|
|||||||
{
|
|
||||||
IBClasses = (
|
|
||||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
|
||||||
{CLASS = MenuButton; LANGUAGE = ObjC; SUPERCLASS = NSButton; },
|
|
||||||
{CLASS = NSDatePicker; LANGUAGE = ObjC; SUPERCLASS = NSControl; },
|
|
||||||
{
|
|
||||||
ACTIONS = {
|
|
||||||
applyRatioSetting = id;
|
|
||||||
applySpeedSettings = id;
|
|
||||||
folderSheetShow = id;
|
|
||||||
helpForNetwork = id;
|
|
||||||
importFolderSheetShow = id;
|
|
||||||
incompleteFolderSheetShow = id;
|
|
||||||
resetWarnings = id;
|
|
||||||
setAutoImport = id;
|
|
||||||
setAutoSize = id;
|
|
||||||
setAutoSpeedLimit = id;
|
|
||||||
setBadge = id;
|
|
||||||
setDownloadLocation = id;
|
|
||||||
setGlobalLimit = id;
|
|
||||||
setNat = id;
|
|
||||||
setPort = id;
|
|
||||||
setQueue = id;
|
|
||||||
setQueueNumber = id;
|
|
||||||
setRatioStop = id;
|
|
||||||
setSound = id;
|
|
||||||
setSpeedLimit = id;
|
|
||||||
setStalled = id;
|
|
||||||
setStalledMinutes = id;
|
|
||||||
setUpdate = id;
|
|
||||||
};
|
|
||||||
CLASS = PrefsController;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {
|
|
||||||
fBandwidthView = NSView;
|
|
||||||
fDownloadField = NSTextField;
|
|
||||||
fDownloadSoundPopUp = NSPopUpButton;
|
|
||||||
fFolderPopUp = NSPopUpButton;
|
|
||||||
fGeneralView = NSView;
|
|
||||||
fImportFolderPopUp = NSPopUpButton;
|
|
||||||
fIncompleteFolderPopUp = NSPopUpButton;
|
|
||||||
fNatCheck = NSButton;
|
|
||||||
fNatStatusField = NSTextField;
|
|
||||||
fNatStatusImage = NSImageView;
|
|
||||||
fNetworkView = NSView;
|
|
||||||
fPortField = NSTextField;
|
|
||||||
fPortStatusField = NSTextField;
|
|
||||||
fPortStatusImage = NSImageView;
|
|
||||||
fPortStatusProgress = NSProgressIndicator;
|
|
||||||
fQueueDownloadField = NSTextField;
|
|
||||||
fQueueSeedField = NSTextField;
|
|
||||||
fRatioStopField = NSTextField;
|
|
||||||
fSeedingSoundPopUp = NSPopUpButton;
|
|
||||||
fSpeedLimitDownloadField = NSTextField;
|
|
||||||
fSpeedLimitUploadField = NSTextField;
|
|
||||||
fStalledField = NSTextField;
|
|
||||||
fTransfersView = NSView;
|
|
||||||
fUpdatePopUp = NSPopUpButton;
|
|
||||||
fUploadField = NSTextField;
|
|
||||||
};
|
|
||||||
SUPERCLASS = NSWindowController;
|
|
||||||
},
|
|
||||||
{CLASS = PrefsWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow; },
|
|
||||||
{
|
|
||||||
ACTIONS = {checkForUpdates = id; };
|
|
||||||
CLASS = SUUpdater;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
SUPERCLASS = NSObject;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
CLASS = TorrentTableView;
|
|
||||||
LANGUAGE = ObjC;
|
|
||||||
OUTLETS = {fContextNoRow = NSMenu; fContextRow = NSMenu; fController = Controller; };
|
|
||||||
SUPERCLASS = NSTableView;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
IBVersion = 1;
|
|
||||||
}
|
|
||||||
-31
@@ -1,31 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IBDocumentLocation</key>
|
|
||||||
<string>5 407 356 286 0 0 1600 1002 </string>
|
|
||||||
<key>IBEditorPositions</key>
|
|
||||||
<dict>
|
|
||||||
<key>153</key>
|
|
||||||
<string>510 534 563 268 0 0 1600 1002 </string>
|
|
||||||
<key>28</key>
|
|
||||||
<string>78 381 563 313 0 0 1600 1002 </string>
|
|
||||||
<key>41</key>
|
|
||||||
<string>510 515 563 305 0 0 1600 1002 </string>
|
|
||||||
<key>66</key>
|
|
||||||
<string>510 596 563 144 0 0 1600 1002 </string>
|
|
||||||
</dict>
|
|
||||||
<key>IBFramework Version</key>
|
|
||||||
<string>446.1</string>
|
|
||||||
<key>IBLockedTabItems</key>
|
|
||||||
<array>
|
|
||||||
<integer>253</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBOpenObjects</key>
|
|
||||||
<array>
|
|
||||||
<integer>153</integer>
|
|
||||||
</array>
|
|
||||||
<key>IBSystem Version</key>
|
|
||||||
<string>8R218</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
BIN
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user