diff --git a/macosx/InfoWindowController.h b/macosx/InfoWindowController.h
index 6daf59d96..2c82e661e 100644
--- a/macosx/InfoWindowController.h
+++ b/macosx/InfoWindowController.h
@@ -70,9 +70,11 @@
IBOutlet FileOutlineController * fFileController;
IBOutlet NSSearchField * fFileFilterField;
- IBOutlet NSPopUpButton * fRatioPopUp, * fUploadLimitPopUp, * fDownloadLimitPopUp;
- IBOutlet NSTextField * fUploadLimitField, * fDownloadLimitField, * fRatioLimitField, * fPeersConnectField,
- * fUploadLimitLabel, * fDownloadLimitLabel, * fPeersConnectLabel;
+ IBOutlet NSPopUpButton * fRatioPopUp;
+ IBOutlet NSButton * fUploadLimitCheck, * fDownloadLimitCheck, * fGlobalLimitCheck;
+ IBOutlet NSTextField * fUploadLimitField, * fDownloadLimitField, * fRatioLimitField,
+ * fUploadLimitLabel, * fDownloadLimitLabel, * fPeersConnectLabel,
+ * fPeersConnectField;
NSString * fInitialString;
}
@@ -101,8 +103,9 @@
- (void) setFileFilterText: (id) sender;
-- (void) setSpeedMode: (id) sender;
+- (void) setUseSpeedLimit: (id) sender;
- (void) setSpeedLimit: (id) sender;
+- (void) setUseGlobalSpeedLimit: (id) sender;
- (void) setRatioSetting: (id) sender;
- (void) setRatioLimit: (id) sender;
diff --git a/macosx/InfoWindowController.m b/macosx/InfoWindowController.m
index 4fc5b3b89..83a760822 100644
--- a/macosx/InfoWindowController.m
+++ b/macosx/InfoWindowController.m
@@ -274,18 +274,21 @@ typedef enum
[fRatioField setStringValue: @""];
//options fields
- [fUploadLimitPopUp setEnabled: NO];
- [fUploadLimitPopUp selectItemAtIndex: -1];
- [fUploadLimitField setHidden: YES];
- [fUploadLimitLabel setHidden: YES];
+ [fUploadLimitCheck setEnabled: NO];
+ [fUploadLimitCheck setState: NSOffState];
+ [fUploadLimitField setEnabled: NO];
+ [fUploadLimitLabel setEnabled: NO];
[fUploadLimitField setStringValue: @""];
- [fDownloadLimitPopUp setEnabled: NO];
- [fDownloadLimitPopUp selectItemAtIndex: -1];
- [fDownloadLimitField setHidden: YES];
- [fDownloadLimitLabel setHidden: YES];
+ [fDownloadLimitCheck setEnabled: NO];
+ [fDownloadLimitCheck setState: NSOffState];
+ [fDownloadLimitField setEnabled: NO];
+ [fDownloadLimitLabel setEnabled: NO];
[fDownloadLimitField setStringValue: @""];
+ [fGlobalLimitCheck setEnabled: NO];
+ [fGlobalLimitCheck setState: NSOffState];
+
[fRatioPopUp setEnabled: NO];
[fRatioPopUp selectItemAtIndex: -1];
[fRatioLimitField setHidden: YES];
@@ -527,67 +530,59 @@ typedef enum
NSEnumerator * enumerator = [fTorrents objectEnumerator];
Torrent * torrent = [enumerator nextObject]; //first torrent
- NSInteger uploadSpeedMode = [torrent speedMode: YES],
+ NSInteger uploadUseSpeedLimit = [torrent usesSpeedLimit: YES] ? NSOnState : NSOffState,
uploadSpeedLimit = [torrent speedLimit: YES],
- downloadSpeedMode = [torrent speedMode: NO],
- downloadSpeedLimit = [torrent speedLimit: NO];
+ downloadUseSpeedLimit = [torrent usesSpeedLimit: NO] ? NSOnState : NSOffState,
+ downloadSpeedLimit = [torrent speedLimit: NO],
+ globalUseSpeedLimit = [torrent usesGlobalSpeedLimit] ? NSOnState : NSOffState;
while ((torrent = [enumerator nextObject])
- && (uploadSpeedMode != INVALID || uploadSpeedLimit != INVALID
- || downloadSpeedMode != INVALID || downloadSpeedLimit != INVALID))
+ && (uploadUseSpeedLimit != NSMixedState || uploadSpeedLimit != INVALID
+ || downloadUseSpeedLimit != NSMixedState || downloadSpeedLimit != INVALID
+ || globalUseSpeedLimit != NSMixedState))
{
- if (uploadSpeedMode != INVALID && uploadSpeedMode != [torrent speedMode: YES])
- uploadSpeedMode = INVALID;
+ if (uploadUseSpeedLimit != INVALID && uploadUseSpeedLimit != ([torrent usesSpeedLimit: YES] ? NSOnState : NSOffState))
+ uploadUseSpeedLimit = NSMixedState;
if (uploadSpeedLimit != INVALID && uploadSpeedLimit != [torrent speedLimit: YES])
uploadSpeedLimit = INVALID;
- if (downloadSpeedMode != INVALID && downloadSpeedMode != [torrent speedMode: NO])
- downloadSpeedMode = INVALID;
+ if (downloadUseSpeedLimit != INVALID && downloadUseSpeedLimit != ([torrent usesSpeedLimit: NO] ? NSOnState : NSOffState))
+ downloadUseSpeedLimit = NSMixedState;
if (downloadSpeedLimit != INVALID && downloadSpeedLimit != [torrent speedLimit: NO])
downloadSpeedLimit = INVALID;
+
+ if (globalUseSpeedLimit != INVALID && globalUseSpeedLimit != ([torrent usesGlobalSpeedLimit] ? NSOnState : NSOffState))
+ globalUseSpeedLimit = NSMixedState;
}
//set upload view
- NSInteger index;
- if (uploadSpeedMode == TR_SPEEDLIMIT_SINGLE)
- index = OPTION_POPUP_LIMIT;
- else if (uploadSpeedMode == TR_SPEEDLIMIT_UNLIMITED)
- index = OPTION_POPUP_NO_LIMIT;
- else if (uploadSpeedMode == TR_SPEEDLIMIT_GLOBAL)
- index = OPTION_POPUP_GLOBAL;
- else
- index = -1;
- [fUploadLimitPopUp selectItemAtIndex: index];
- [fUploadLimitPopUp setEnabled: YES];
+ [fUploadLimitCheck setState: uploadUseSpeedLimit];
+ [fUploadLimitCheck setEnabled: YES];
- [fUploadLimitLabel setHidden: uploadSpeedMode != TR_SPEEDLIMIT_SINGLE];
- [fUploadLimitField setHidden: uploadSpeedMode != TR_SPEEDLIMIT_SINGLE];
+ [fUploadLimitLabel setEnabled: uploadUseSpeedLimit == NSOnState];
+ [fUploadLimitField setEnabled: uploadUseSpeedLimit == NSOnState];
if (uploadSpeedLimit != INVALID)
[fUploadLimitField setIntValue: uploadSpeedLimit];
else
[fUploadLimitField setStringValue: @""];
//set download view
- if (downloadSpeedMode == TR_SPEEDLIMIT_SINGLE)
- index = OPTION_POPUP_LIMIT;
- else if (downloadSpeedMode == TR_SPEEDLIMIT_UNLIMITED)
- index = OPTION_POPUP_NO_LIMIT;
- else if (downloadSpeedMode == TR_SPEEDLIMIT_GLOBAL)
- index = OPTION_POPUP_GLOBAL;
- else
- index = -1;
- [fDownloadLimitPopUp selectItemAtIndex: index];
- [fDownloadLimitPopUp setEnabled: YES];
+ [fDownloadLimitCheck setState: downloadUseSpeedLimit];
+ [fDownloadLimitCheck setEnabled: YES];
- [fDownloadLimitLabel setHidden: downloadSpeedMode != TR_SPEEDLIMIT_SINGLE];
- [fDownloadLimitField setHidden: downloadSpeedMode != TR_SPEEDLIMIT_SINGLE];
+ [fDownloadLimitLabel setEnabled: downloadUseSpeedLimit == NSOnState];
+ [fDownloadLimitField setEnabled: downloadUseSpeedLimit == NSOnState];
if (downloadSpeedLimit != INVALID)
[fDownloadLimitField setIntValue: downloadSpeedLimit];
else
[fDownloadLimitField setStringValue: @""];
+ //set global check
+ [fGlobalLimitCheck setState: globalUseSpeedLimit];
+ [fGlobalLimitCheck setEnabled: YES];
+
//get ratio info
enumerator = [fTorrents objectEnumerator];
torrent = [enumerator nextObject]; //first torrent
@@ -605,6 +600,7 @@ typedef enum
}
//set ratio view
+ NSInteger index;
if (checkRatio == TR_RATIOLIMIT_SINGLE)
index = OPTION_POPUP_LIMIT;
else if (checkRatio == TR_RATIOLIMIT_UNLIMITED)
@@ -1181,40 +1177,24 @@ typedef enum
[fFileController setFilterText: [sender stringValue]];
}
-- (void) setSpeedMode: (id) sender
+- (void) setUseSpeedLimit: (id) sender
{
- BOOL upload = sender == fUploadLimitPopUp;
- NSInteger mode;
- switch ([sender indexOfSelectedItem])
- {
- case OPTION_POPUP_LIMIT:
- mode = TR_SPEEDLIMIT_SINGLE;
- break;
- case OPTION_POPUP_NO_LIMIT:
- mode = TR_SPEEDLIMIT_UNLIMITED;
- break;
- case OPTION_POPUP_GLOBAL:
- mode = TR_SPEEDLIMIT_GLOBAL;
- break;
- default:
- return;
- }
+ const BOOL upload = sender == fUploadLimitCheck;
+ const BOOL limit = [sender state] == NSOnState;
for (Torrent * torrent in fTorrents)
- [torrent setSpeedMode: mode upload: upload];
+ [torrent setUseSpeedLimit: limit upload: upload];
NSTextField * field = upload ? fUploadLimitField : fDownloadLimitField;
-
- BOOL single = mode == TR_SPEEDLIMIT_SINGLE;
- [field setHidden: !single];
- if (single)
+ [field setEnabled: limit];
+ if (limit)
{
[field selectText: self];
- [[self window] makeKeyAndOrderFront:self];
+ [[self window] makeKeyAndOrderFront: self];
}
NSTextField * label = upload ? fUploadLimitLabel : fDownloadLimitLabel;
- [label setHidden: !single];
+ [label setEnabled: limit];
}
- (void) setSpeedLimit: (id) sender
@@ -1257,6 +1237,14 @@ typedef enum
}
}
+- (void) setUseGlobalSpeedLimit: (id) sender
+{
+ const BOOL limit = [sender state] == NSOnState;
+
+ for (Torrent * torrent in fTorrents)
+ [torrent setUseGlobalSpeedLimit: limit];
+}
+
- (void) setRatioLimit: (id) sender
{
CGFloat limit = [sender floatValue];
diff --git a/macosx/NSStringAdditions.m b/macosx/NSStringAdditions.m
index d812d6dd0..80b7b8337 100644
--- a/macosx/NSStringAdditions.m
+++ b/macosx/NSStringAdditions.m
@@ -91,7 +91,7 @@
}
+ (NSString *) stringForRatio: (CGFloat) ratio
-{
+{ratio = .997;
if (ratio == TR_RATIO_NA)
return NSLocalizedString(@"N/A", "No Ratio");
else if (ratio == TR_RATIO_INF)
diff --git a/macosx/Torrent.h b/macosx/Torrent.h
index efc35348a..8ea6c14a7 100644
--- a/macosx/Torrent.h
+++ b/macosx/Torrent.h
@@ -110,10 +110,12 @@ typedef enum
- (BOOL) seedRatioSet;
- (CGFloat) progressStopRatio;
-- (tr_speedlimit) speedMode: (BOOL) upload;
-- (void) setSpeedMode: (tr_speedlimit) mode upload: (BOOL) upload;
+- (BOOL) usesSpeedLimit: (BOOL) upload;
+- (void) setUseSpeedLimit: (BOOL) use upload: (BOOL) upload;
- (NSInteger) speedLimit: (BOOL) upload;
- (void) setSpeedLimit: (NSInteger) limit upload: (BOOL) upload;
+- (BOOL) usesGlobalSpeedLimit;
+- (void) setUseGlobalSpeedLimit: (BOOL) use;
- (void) setMaxPeerConnect: (uint16_t) count;
- (uint16_t) maxPeerConnect;
diff --git a/macosx/Torrent.m b/macosx/Torrent.m
index 049d314e7..01497976c 100644
--- a/macosx/Torrent.m
+++ b/macosx/Torrent.m
@@ -392,14 +392,14 @@ int trashDataFile(const char * filename)
return fStat->percentRatio;
}
-- (tr_speedlimit) speedMode: (BOOL) upload
+- (BOOL) usesSpeedLimit: (BOOL) upload
{
- return tr_torrentGetSpeedMode(fHandle, upload ? TR_UP : TR_DOWN);
+ return tr_torrentIsUsingSpeedLimit(fHandle, upload ? TR_UP : TR_DOWN);
}
-- (void) setSpeedMode: (tr_speedlimit) mode upload: (BOOL) upload
+- (void) setUseSpeedLimit: (BOOL) use upload: (BOOL) upload
{
- tr_torrentSetSpeedMode(fHandle, upload ? TR_UP : TR_DOWN, mode);
+ tr_torrentUseSpeedLimit(fHandle, upload ? TR_UP : TR_DOWN, use);
}
- (NSInteger) speedLimit: (BOOL) upload
@@ -412,6 +412,20 @@ int trashDataFile(const char * filename)
tr_torrentSetSpeedLimit(fHandle, upload ? TR_UP : TR_DOWN, limit);
}
+- (BOOL) usesGlobalSpeedLimit
+{
+ const BOOL up = tr_torrentIsUsingGlobalSpeedLimit(fHandle, TR_UP);
+ const BOOL down = tr_torrentIsUsingGlobalSpeedLimit(fHandle, TR_DOWN);
+ NSAssert(up == down, @"upload and download globallimit setting should have the same");
+ return up;
+}
+
+- (void) setUseGlobalSpeedLimit: (BOOL) use
+{
+ tr_torrentUseGlobalSpeedLimit(fHandle, TR_UP, use);
+ tr_torrentUseGlobalSpeedLimit(fHandle, TR_DOWN, use);
+}
+
- (void) setMaxPeerConnect: (uint16_t) count
{
NSAssert(count > 0, @"max peer count must be greater than 0");
@@ -1861,14 +1875,14 @@ int trashDataFile(const char * filename)
return;
fQuickPauseDict = [[NSDictionary alloc] initWithObjectsAndKeys:
- [NSNumber numberWithInt: [self speedMode: YES]], @"UploadSpeedMode",
+ [NSNumber numberWithInt: [self usesSpeedLimit: YES]], @"UploadUsesSpeedLimit",
[NSNumber numberWithInt: [self speedLimit: YES]], @"UploadSpeedLimit",
- [NSNumber numberWithInt: [self speedMode: NO]], @"DownloadSpeedMode",
+ [NSNumber numberWithInt: [self usesSpeedLimit: NO]], @"DownloadUsesSpeedLimit",
[NSNumber numberWithInt: [self speedLimit: NO]], @"DownloadSpeedLimit", nil];
- [self setSpeedMode: TR_SPEEDLIMIT_SINGLE upload: YES];
+ [self setUseSpeedLimit: YES upload: YES];
[self setSpeedLimit: 0 upload: YES];
- [self setSpeedMode: TR_SPEEDLIMIT_SINGLE upload: NO];
+ [self setUseSpeedLimit: YES upload: NO];
[self setSpeedLimit: 0 upload: NO];
}
@@ -1877,9 +1891,9 @@ int trashDataFile(const char * filename)
if (!fQuickPauseDict)
return;
- [self setSpeedMode: [[fQuickPauseDict objectForKey: @"UploadSpeedMode"] intValue] upload: YES];
+ [self setUseSpeedLimit: [[fQuickPauseDict objectForKey: @"UploadUsesSpeedLimit"] intValue] upload: YES];
[self setSpeedLimit: [[fQuickPauseDict objectForKey: @"UploadSpeedLimit"] intValue] upload: YES];
- [self setSpeedMode: [[fQuickPauseDict objectForKey: @"DownloadSpeedMode"] intValue] upload: NO];
+ [self setUseSpeedLimit: [[fQuickPauseDict objectForKey: @"DownloadUsesSpeedLimit"] intValue] upload: NO];
[self setSpeedLimit: [[fQuickPauseDict objectForKey: @"DownloadSpeedLimit"] intValue] upload: NO];
[fQuickPauseDict release];
diff --git a/macosx/TorrentTableView.m b/macosx/TorrentTableView.m
index 063fdb10e..d72833d01 100644
--- a/macosx/TorrentTableView.m
+++ b/macosx/TorrentTableView.m
@@ -580,6 +580,7 @@
if (!fMenuTorrent || ![menu supermenu])
return;
+ #warning add menu item for global limit
if (menu == fUploadMenu || menu == fDownloadMenu)
{
NSMenuItem * item;
@@ -600,18 +601,16 @@
}
BOOL upload = menu == fUploadMenu;
- NSInteger mode = [fMenuTorrent speedMode: upload];
+
+ BOOL limit = [fMenuTorrent usesSpeedLimit: upload];
item = [menu itemWithTag: ACTION_MENU_LIMIT_TAG];
- [item setState: mode == TR_SPEEDLIMIT_SINGLE ? NSOnState : NSOffState];
+ [item setState: limit ? NSOnState : NSOffState];
[item setTitle: [NSString stringWithFormat: NSLocalizedString(@"Limit (%d KB/s)",
"torrent action menu -> upload/download limit"), [fMenuTorrent speedLimit: upload]]];
item = [menu itemWithTag: ACTION_MENU_UNLIMITED_TAG];
- [item setState: mode == TR_SPEEDLIMIT_UNLIMITED ? NSOnState : NSOffState];
-
- item = [menu itemWithTag: ACTION_MENU_GLOBAL_TAG];
- [item setState: mode == TR_SPEEDLIMIT_GLOBAL ? NSOnState : NSOffState];
+ [item setState:limit ? NSOnState : NSOffState];
}
else if (menu == fRatioMenu)
{
@@ -722,23 +721,8 @@
- (void) setQuickLimitMode: (id) sender
{
- tr_speedlimit mode;
- switch ([sender tag])
- {
- case ACTION_MENU_UNLIMITED_TAG:
- mode = TR_SPEEDLIMIT_UNLIMITED;
- break;
- case ACTION_MENU_LIMIT_TAG:
- mode = TR_SPEEDLIMIT_SINGLE;
- break;
- case ACTION_MENU_GLOBAL_TAG:
- mode = TR_SPEEDLIMIT_GLOBAL;
- break;
- default:
- return;
- }
-
- [fMenuTorrent setSpeedMode: mode upload: [sender menu] == fUploadMenu];
+ const BOOL limit = [sender tag] == ACTION_MENU_LIMIT_TAG;
+ [fMenuTorrent setUseSpeedLimit: limit upload: [sender menu] == fUploadMenu];
[[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateOptions" object: nil];
}
@@ -746,7 +730,7 @@
- (void) setQuickLimit: (id) sender
{
const BOOL upload = [sender menu] == fUploadMenu;
- [fMenuTorrent setSpeedMode: TR_SPEEDLIMIT_SINGLE upload: upload];
+ [fMenuTorrent setUseSpeedLimit: YES upload: upload];
[fMenuTorrent setSpeedLimit: [[sender representedObject] intValue] upload: upload];
[[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateOptions" object: nil];
diff --git a/macosx/en.lproj/InfoWindow.xib b/macosx/en.lproj/InfoWindow.xib
index 7ea45f41e..9d30cec04 100644
--- a/macosx/en.lproj/InfoWindow.xib
+++ b/macosx/en.lproj/InfoWindow.xib
@@ -8,8 +8,7 @@
353.00
{{1, 0}, {338, 17}}
-
4
@@ -3914,7 +3911,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
{{10, 77}, {340, 190}}
-
562
@@ -4032,7 +4028,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
{{1, 17}, {338, 48}}
-
4
@@ -4066,7 +4061,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
{{1, 0}, {338, 17}}
-
4
@@ -4075,7 +4069,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
{{10, 271}, {340, 66}}
-
562
@@ -4301,12 +4294,11 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
{360, 342}
-
NSView
NSResponder
-
+
274
YES
@@ -4395,7 +4387,7 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
1211912703
2
-
+
NSSwitch
@@ -4444,7 +4436,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
{{1, 17}, {307, 308}}
-
4
@@ -4478,7 +4469,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
{{1, 0}, {307, 17}}
-
4
@@ -4487,7 +4477,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
{{10, 34}, {320, 326}}
-
18
@@ -4560,14 +4549,13 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
{340, 365}
-
NSView
NSResponder
-
+
258
YES
@@ -4673,7 +4661,7 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
266
- {{9, 142}, {278, 14}}
+ {{9, 159}, {278, 14}}
YES
@@ -4689,7 +4677,7 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
268
- {{216, 98}, {35, 20}}
+ {{188, 115}, {35, 20}}
YES
@@ -4753,7 +4741,7 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
268
- {{256, 101}, {29, 14}}
+ {{228, 118}, {29, 14}}
YES
@@ -4766,102 +4754,10 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
-
-
-
- 268
- {{10, 101}, {70, 14}}
-
- YES
-
- 67239424
- 272629760
- Upload rate:
-
-
-
-
-
-
268
- {{216, 120}, {35, 20}}
+ {{188, 137}, {35, 20}}
YES
@@ -4925,7 +4821,7 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
268
- {{256, 123}, {29, 14}}
+ {{228, 140}, {29, 14}}
YES
@@ -4938,86 +4834,16 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
-
268
- {{10, 123}, {86, 14}}
+ {{10, 137}, {64, 17}}
YES
67239424
272629760
- Download rate:
+ Bandwidth:
@@ -5051,8 +4877,14 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
1048576
2147483647
1
-
-
+
+ NSImage
+ NSMenuCheckmark
+
+
+ NSImage
+ NSMenuMixedState
+
_popUpItemAction:
@@ -5070,8 +4902,8 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
1048576
2147483647
-
-
+
+
_popUpItemAction:
@@ -5081,8 +4913,8 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
1048576
2147483647
-
-
+
+
_popUpItemAction:
@@ -5097,7 +4929,7 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
268
- {{10, 57}, {77, 14}}
+ {{10, 54}, {77, 17}}
YES
@@ -5145,7 +4977,7 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
268
- {{147, 10}, {45, 20}}
+ {{144, 10}, {45, 20}}
YES
@@ -5207,7 +5039,7 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
268
- {{197, 13}, {34, 14}}
+ {{194, 13}, {34, 14}}
YES
@@ -5220,8 +5052,78 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
+
+
+ 268
+ {{76, 116}, {90, 18}}
+
+ YES
+
+ -2080244224
+ 131072
+ Limit Upload
+
+
+ 1211912703
+ 130
+
+ NSImage
+ NSSwitch
+
+
+
+
+ 200
+ 25
+
+
+
+
+ 268
+ {{76, 96}, {224, 18}}
+
+ YES
+
+ -2080244224
+ 131072
+ Stay within the global bandwidth limit
+
+
+ 1211912703
+ 130
+
+
+
+
+ 200
+ 25
+
+
+
+
+ 268
+ {{76, 138}, {106, 18}}
+
+ YES
+
+ -2080244224
+ 131072
+ Limit Download
+
+
+ 1211912703
+ 130
+
+
+
+
+ 200
+ 25
+
+
- {351, 161}
+ {351, 178}
+
NSView
@@ -5698,38 +5600,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
1166
-
-
- setSpeedMode:
-
-
-
- 1167
-
-
-
- fDownloadLimitPopUp
-
-
-
- 1168
-
-
-
- fUploadLimitPopUp
-
-
-
- 1169
-
-
-
- setSpeedMode:
-
-
-
- 1170
-
fBasicInfoField
@@ -5986,6 +5856,54 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
1795
+
+
+ fUploadLimitCheck
+
+
+
+ 1800
+
+
+
+ fDownloadLimitCheck
+
+
+
+ 1801
+
+
+
+ setUseSpeedLimit:
+
+
+
+ 1803
+
+
+
+ setUseSpeedLimit:
+
+
+
+ 1804
+
+
+
+ fGlobalLimitCheck
+
+
+
+ 1807
+
+
+
+ setUseGlobalSpeedLimit:
+
+
+
+ 1808
+
@@ -7007,11 +6925,8 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
-
-
-
@@ -7020,6 +6935,9 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
+
+
+
Options
@@ -7069,24 +6987,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
-
- 1074
-
-
- YES
-
-
-
-
-
- 1079
-
-
- YES
-
-
-
-
1080
@@ -7105,15 +7005,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
-
- 1083
-
-
- YES
-
-
-
-
1088
@@ -7529,20 +7420,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
-
- 1552
-
-
- YES
-
-
-
-
-
- 1553
-
-
-
1554
@@ -7557,15 +7434,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
-
- 1556
-
-
- YES
-
-
-
-
1557
@@ -7645,58 +7513,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
-
- 1075
-
-
- YES
-
-
-
-
-
-
-
- 1078
-
-
-
-
- 1077
-
-
-
-
- 1076
-
-
-
-
- 1084
-
-
- YES
-
-
-
-
-
-
-
- 1087
-
-
-
-
- 1086
-
-
-
-
- 1085
-
-
-
1090
@@ -8324,6 +8140,48 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
+
+ 1796
+
+
+ YES
+
+
+
+
+
+ 1797
+
+
+
+
+ 1798
+
+
+ YES
+
+
+
+
+
+ 1799
+
+
+
+
+ 1805
+
+
+ YES
+
+
+
+
+
+ 1806
+
+
+
@@ -8476,35 +8334,14 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
1070.ImportedFromIB2
1071.IBPluginDependency
1071.ImportedFromIB2
+ 1073.CustomClassName
1073.IBPluginDependency
1073.ImportedFromIB2
- 1074.IBPluginDependency
- 1074.ImportedFromIB2
- 1075.IBEditorWindowLastContentRect
- 1075.IBPluginDependency
- 1075.ImportedFromIB2
- 1076.IBPluginDependency
- 1076.ImportedFromIB2
- 1077.IBPluginDependency
- 1077.ImportedFromIB2
- 1078.IBPluginDependency
- 1078.ImportedFromIB2
- 1079.IBPluginDependency
- 1079.ImportedFromIB2
1080.IBPluginDependency
1080.ImportedFromIB2
+ 1082.CustomClassName
1082.IBPluginDependency
1082.ImportedFromIB2
- 1083.IBPluginDependency
- 1083.ImportedFromIB2
- 1084.IBPluginDependency
- 1084.ImportedFromIB2
- 1085.IBPluginDependency
- 1085.ImportedFromIB2
- 1086.IBPluginDependency
- 1086.ImportedFromIB2
- 1087.IBPluginDependency
- 1087.ImportedFromIB2
1088.IBPluginDependency
1088.ImportedFromIB2
1089.IBPluginDependency
@@ -8597,11 +8434,8 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
1549.IBPluginDependency
1550.IBPluginDependency
1551.IBPluginDependency
- 1552.IBPluginDependency
- 1553.IBPluginDependency
1554.IBPluginDependency
1555.IBPluginDependency
- 1556.IBPluginDependency
1557.IBPluginDependency
1558.IBPluginDependency
1559.IBPluginDependency
@@ -8751,6 +8585,12 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
1787.IBPluginDependency
1792.IBPluginDependency
1793.IBPluginDependency
+ 1796.IBPluginDependency
+ 1797.IBPluginDependency
+ 1798.IBPluginDependency
+ 1799.IBPluginDependency
+ 1805.IBPluginDependency
+ 1806.IBPluginDependency
28.IBPluginDependency
28.ImportedFromIB2
29.IBPluginDependency
@@ -8989,7 +8829,7 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
com.apple.InterfaceBuilder.CocoaPlugin
- {{0, 835}, {351, 161}}
+ {{256, 652}, {351, 178}}
com.apple.InterfaceBuilder.CocoaPlugin
{{519, 803}, {351, 160}}
@@ -9001,33 +8841,12 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
com.apple.InterfaceBuilder.CocoaPlugin
+ ColorTextField
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
- {{87, 899}, {138, 54}}
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
+ ColorTextField
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
@@ -9130,9 +8949,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
@@ -9277,6 +9093,12 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
@@ -9399,7 +9221,7 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
- 1795
+ 1808
@@ -9505,8 +9327,9 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
setRatioLimit:
setRatioSetting:
setSpeedLimit:
- setSpeedMode:
setTab:
+ setUseGlobalSpeedLimit:
+ setUseSpeedLimit:
YES
@@ -9521,6 +9344,7 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
id
id
id
+ id
@@ -9542,9 +9366,9 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
fDateAddedField
fDateCompletedField
fDateCreatedField
+ fDownloadLimitCheck
fDownloadLimitField
fDownloadLimitLabel
- fDownloadLimitPopUp
fDownloadedTotalField
fDownloadingFromField
fErrorMessageView
@@ -9552,6 +9376,7 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
fFileController
fFileFilterField
fFilesView
+ fGlobalLimitCheck
fHashField
fHaveField
fImageView
@@ -9587,9 +9412,9 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
fTrackerField
fTrackerTable
fTrackerView
+ fUploadLimitCheck
fUploadLimitField
fUploadLimitLabel
- fUploadLimitPopUp
fUploadedTotalField
fUploadingToField
fWebSeedTable
@@ -9611,9 +9436,9 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
NSTextField
NSTextField
NSTextField
+ NSButton
NSTextField
NSTextField
- NSPopUpButton
NSTextField
NSTextField
NSTextView
@@ -9621,6 +9446,7 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
FileOutlineController
NSSearchField
NSView
+ NSButton
NSTextField
NSTextField
NSImageView
@@ -9656,9 +9482,9 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
NSTextField
TrackerTableView
NSView
+ NSButton
NSTextField
NSTextField
- NSPopUpButton
NSTextField
NSTextField
NSTableView
@@ -9677,13 +9503,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
-
- NSApplication
-
- IBProjectSource
- macosx/NSApplicationAdditions.h
-
-
NSApplication
NSResponder
@@ -9700,13 +9519,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW
-
- NSMenu
-
- IBProjectSource
- macosx/NSMenuAdditions.h
-
-
NSMenu
NSObject
diff --git a/macosx/en.lproj/MainMenu.xib b/macosx/en.lproj/MainMenu.xib
index 110a4b5af..b97c04c67 100644
--- a/macosx/en.lproj/MainMenu.xib
+++ b/macosx/en.lproj/MainMenu.xib
@@ -9,6 +9,7 @@
YES
+
YES
@@ -4282,16 +4283,6 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA
Download Rate
YES
-