@interface InfoOptionsViewController (Private)
- (void) setupInfo;
+- (void) setGlobalLabels;
@end
return self;
}
+- (void) awakeFromNib
+{
+ [self setGlobalLabels];
+
+ [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(setGlobalLabels) name: @"UpdateGlobalOptions"
+ object: nil];
+}
+
- (void) dealloc
{
+ [[NSNotificationCenter defaultCenter] removeObserver: self];
+
[fTorrents release];
[super dealloc];
[fRatioLimitField setStringValue: @""];
[fRatioLimitGlobalLabel setHidden: checkRatio != TR_RATIOLIMIT_GLOBAL];
- if (checkRatio == TR_RATIOLIMIT_GLOBAL)
- {
- NSString * global = [[NSUserDefaults standardUserDefaults] boolForKey: @"RatioCheck"]
- ? [NSString stringForRatio: [[NSUserDefaults standardUserDefaults] floatForKey: @"RatioLimit"]]
- : NSLocalizedString(@"disabled", "Info options -> global setting");
- [fRatioLimitGlobalLabel setStringValue: global];
- }
//set idle view
if (checkIdle == TR_IDLELIMIT_SINGLE)
[fIdleLimitLabel setHidden: checkIdle != TR_IDLELIMIT_SINGLE];
[fIdleLimitGlobalLabel setHidden: checkIdle != TR_IDLELIMIT_GLOBAL];
- if (checkIdle == TR_IDLELIMIT_GLOBAL)
- {
- NSString * global;
- if ([[NSUserDefaults standardUserDefaults] boolForKey: @"IdleLimitCheck"])
- {
- const NSInteger globalMin = [[NSUserDefaults standardUserDefaults] integerForKey: @"IdleLimitMinutes"];
- global = globalMin == 1 ? NSLocalizedString(@"1 minute", "Info options -> global setting")
- : [NSString stringWithFormat: NSLocalizedString(@"%d minutes", "Info options -> global setting"), globalMin];
- }
- else
- global = NSLocalizedString(@"disabled", "Info options -> global setting");
- [fIdleLimitGlobalLabel setStringValue: global];
- }
//get priority info
enumerator = [fTorrents objectEnumerator];
[[[self view] window] makeKeyAndOrderFront: self];
}
- [self updateOptions]; //heavy-handed reload of global settings
+ [fRatioLimitGlobalLabel setHidden: setting != TR_RATIOLIMIT_GLOBAL];
}
- (void) setRatioLimit: (id) sender
[[[self view] window] makeKeyAndOrderFront: self];
}
- [self updateOptions]; //heavy-handed reload of global settings
+ [fIdleLimitGlobalLabel setHidden: setting != TR_IDLELIMIT_GLOBAL];
}
- (void) setIdleLimit: (id) sender
[self updateOptions];
}
+- (void) setGlobalLabels
+{
+ NSString * global = [[NSUserDefaults standardUserDefaults] boolForKey: @"RatioCheck"]
+ ? [NSString stringForRatio: [[NSUserDefaults standardUserDefaults] floatForKey: @"RatioLimit"]]
+ : NSLocalizedString(@"disabled", "Info options -> global setting");
+ [fRatioLimitGlobalLabel setStringValue: global];
+
+ //idle field
+ NSString * globalIdle;
+ if ([[NSUserDefaults standardUserDefaults] boolForKey: @"IdleLimitCheck"])
+ {
+ const NSInteger globalMin = [[NSUserDefaults standardUserDefaults] integerForKey: @"IdleLimitMinutes"];
+ globalIdle = globalMin == 1 ? NSLocalizedString(@"1 minute", "Info options -> global setting")
+ : [NSString stringWithFormat: NSLocalizedString(@"%d minutes", "Info options -> global setting"), globalMin];
+ }
+ else
+ globalIdle = NSLocalizedString(@"disabled", "Info options -> global setting");
+ [fIdleLimitGlobalLabel setStringValue: globalIdle];
+}
+
@end
tr_sessionSetRatioLimit(fHandle, [fDefaults floatForKey: @"RatioLimit"]);
//reload global settings in inspector
- [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateOptions" object: nil];
+ [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateGlobalOptions" object: nil];
}
- (void) setRatioStop: (id) sender
tr_sessionSetIdleLimit(fHandle, [fDefaults integerForKey: @"IdleLimitMinutes"]);
//reload global settings in inspector
- [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateOptions" object: nil];
+ [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateGlobalOptions" object: nil];
}
- (void) setIdleStop: (id) sender
[[NSNotificationCenter defaultCenter] postNotificationName: @"SpeedLimitUpdate" object: nil];
//reload global settings in inspector
- [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateOptions" object: nil];
+ [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateGlobalOptions" object: nil];
}
@end