mirror of
https://github.com/transmission/transmission
synced 2024-12-26 01:27:28 +00:00
inspector: update the displayed global seeding settings only when necessary; update only the displayed global seeding settings instead of all the options
This commit is contained in:
parent
82db3c5826
commit
b033af06ff
2 changed files with 36 additions and 25 deletions
|
@ -39,6 +39,7 @@
|
||||||
@interface InfoOptionsViewController (Private)
|
@interface InfoOptionsViewController (Private)
|
||||||
|
|
||||||
- (void) setupInfo;
|
- (void) setupInfo;
|
||||||
|
- (void) setGlobalLabels;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@ -54,8 +55,18 @@
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void) awakeFromNib
|
||||||
|
{
|
||||||
|
[self setGlobalLabels];
|
||||||
|
|
||||||
|
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(setGlobalLabels) name: @"UpdateGlobalOptions"
|
||||||
|
object: nil];
|
||||||
|
}
|
||||||
|
|
||||||
- (void) dealloc
|
- (void) dealloc
|
||||||
{
|
{
|
||||||
|
[[NSNotificationCenter defaultCenter] removeObserver: self];
|
||||||
|
|
||||||
[fTorrents release];
|
[fTorrents release];
|
||||||
|
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
|
@ -184,13 +195,6 @@
|
||||||
[fRatioLimitField setStringValue: @""];
|
[fRatioLimitField setStringValue: @""];
|
||||||
|
|
||||||
[fRatioLimitGlobalLabel setHidden: checkRatio != TR_RATIOLIMIT_GLOBAL];
|
[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
|
//set idle view
|
||||||
if (checkIdle == TR_IDLELIMIT_SINGLE)
|
if (checkIdle == TR_IDLELIMIT_SINGLE)
|
||||||
|
@ -212,19 +216,6 @@
|
||||||
[fIdleLimitLabel setHidden: checkIdle != TR_IDLELIMIT_SINGLE];
|
[fIdleLimitLabel setHidden: checkIdle != TR_IDLELIMIT_SINGLE];
|
||||||
|
|
||||||
[fIdleLimitGlobalLabel setHidden: checkIdle != TR_IDLELIMIT_GLOBAL];
|
[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
|
//get priority info
|
||||||
enumerator = [fTorrents objectEnumerator];
|
enumerator = [fTorrents objectEnumerator];
|
||||||
|
@ -347,7 +338,7 @@
|
||||||
[[[self view] window] makeKeyAndOrderFront: self];
|
[[[self view] window] makeKeyAndOrderFront: self];
|
||||||
}
|
}
|
||||||
|
|
||||||
[self updateOptions]; //heavy-handed reload of global settings
|
[fRatioLimitGlobalLabel setHidden: setting != TR_RATIOLIMIT_GLOBAL];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) setRatioLimit: (id) sender
|
- (void) setRatioLimit: (id) sender
|
||||||
|
@ -390,7 +381,7 @@
|
||||||
[[[self view] window] makeKeyAndOrderFront: self];
|
[[[self view] window] makeKeyAndOrderFront: self];
|
||||||
}
|
}
|
||||||
|
|
||||||
[self updateOptions]; //heavy-handed reload of global settings
|
[fIdleLimitGlobalLabel setHidden: setting != TR_IDLELIMIT_GLOBAL];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) setIdleLimit: (id) sender
|
- (void) setIdleLimit: (id) sender
|
||||||
|
@ -501,4 +492,24 @@
|
||||||
[self updateOptions];
|
[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
|
@end
|
||||||
|
|
|
@ -599,7 +599,7 @@ tr_session * fHandle;
|
||||||
tr_sessionSetRatioLimit(fHandle, [fDefaults floatForKey: @"RatioLimit"]);
|
tr_sessionSetRatioLimit(fHandle, [fDefaults floatForKey: @"RatioLimit"]);
|
||||||
|
|
||||||
//reload global settings in inspector
|
//reload global settings in inspector
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateOptions" object: nil];
|
[[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateGlobalOptions" object: nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) setRatioStop: (id) sender
|
- (void) setRatioStop: (id) sender
|
||||||
|
@ -623,7 +623,7 @@ tr_session * fHandle;
|
||||||
tr_sessionSetIdleLimit(fHandle, [fDefaults integerForKey: @"IdleLimitMinutes"]);
|
tr_sessionSetIdleLimit(fHandle, [fDefaults integerForKey: @"IdleLimitMinutes"]);
|
||||||
|
|
||||||
//reload global settings in inspector
|
//reload global settings in inspector
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateOptions" object: nil];
|
[[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateGlobalOptions" object: nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) setIdleStop: (id) sender
|
- (void) setIdleStop: (id) sender
|
||||||
|
@ -1246,7 +1246,7 @@ tr_session * fHandle;
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName: @"SpeedLimitUpdate" object: nil];
|
[[NSNotificationCenter defaultCenter] postNotificationName: @"SpeedLimitUpdate" object: nil];
|
||||||
|
|
||||||
//reload global settings in inspector
|
//reload global settings in inspector
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateOptions" object: nil];
|
[[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateGlobalOptions" object: nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
Loading…
Reference in a new issue