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 YES - - + YES @@ -2232,7 +2231,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA NSResponder - + 274 YES @@ -3871,7 +3870,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW {{1, 17}, {338, 172}} - 4 @@ -3905,7 +3903,6 @@ zijOSc5pzorOqs66ztvO+88czzzPXc99z57Pvs/fz+/QANAg0EHQYdCC0KLQw9Dj0PPRFNE00VXRddGW {{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 - {{98, 96}, {116, 22}} - - YES - - -2076049856 - 133120 - - - -2038284033 - 1 - - - - - - 400 - 75 - - - Global Setting - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - Unlimited - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Limit - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 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 - {{98, 118}, {116, 22}} - - YES - - -2076049856 - 133120 - - - -2038284033 - 1 - - - - - - 400 - 75 - - - Global Setting - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - Unlimited - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Limit - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - 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 - - - Global - - 1048576 - 2147483647 - - - 101 - Unlimited @@ -4339,16 +4330,6 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA Upload Rate YES - - - Global - - 1048576 - 2147483647 - - - 101 - Unlimited @@ -5950,14 +5931,6 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 3105 - - - setQuickLimitMode: - - - - 3109 - setQuickLimitMode: @@ -5974,14 +5947,6 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 3111 - - - setQuickLimitMode: - - - - 3112 - setQuickLimitMode: @@ -7610,7 +7575,6 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA YES - @@ -7625,11 +7589,6 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - - 1961 - - - 1971 @@ -7649,18 +7608,12 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA YES - - - 1962 - - - 1963 @@ -8488,11 +8441,13 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 1930.ImportedFromIB2 1933.IBPluginDependency 1933.ImportedFromIB2 + 1936.IBEditorWindowLastContentRect 1936.IBPluginDependency 1936.ImportedFromIB2 1936.editorWindowContentRectSynchronizationRect 1944.IBPluginDependency 1944.ImportedFromIB2 + 1945.IBEditorWindowLastContentRect 1945.IBPluginDependency 1945.ImportedFromIB2 1945.editorWindowContentRectSynchronizationRect @@ -8500,6 +8455,7 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 1946.ImportedFromIB2 1950.IBPluginDependency 1950.ImportedFromIB2 + 1951.IBEditorWindowLastContentRect 1951.IBPluginDependency 1951.ImportedFromIB2 1951.editorWindowContentRectSynchronizationRect @@ -8509,10 +8465,6 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 196.ImportedFromIB2 1960.IBPluginDependency 1960.ImportedFromIB2 - 1961.IBPluginDependency - 1961.ImportedFromIB2 - 1962.IBPluginDependency - 1962.ImportedFromIB2 1963.IBPluginDependency 1963.ImportedFromIB2 1964.IBPluginDependency @@ -9090,11 +9042,13 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA com.apple.InterfaceBuilder.CocoaPlugin + {{0, 882}, {214, 113}} com.apple.InterfaceBuilder.CocoaPlugin {{381, 469}, {214, 113}} com.apple.InterfaceBuilder.CocoaPlugin + {{214, 942}, {135, 53}} com.apple.InterfaceBuilder.CocoaPlugin {{595, 509}, {135, 73}} @@ -9102,6 +9056,7 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA com.apple.InterfaceBuilder.CocoaPlugin + {{214, 922}, {135, 53}} com.apple.InterfaceBuilder.CocoaPlugin {{595, 489}, {135, 73}} @@ -9125,10 +9080,6 @@ ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - {{595, 459}, {156, 73}} com.apple.InterfaceBuilder.CocoaPlugin