-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathPreferencesWindow.m
118 lines (95 loc) · 2.95 KB
/
PreferencesWindow.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
//
// PreferencesWindow.m
// TransmissionRemote
//
// Created by Tobias Rundström on 2010-03-14.
// Copyright 2010 Purple Scout. All rights reserved.
//
#import "PreferencesWindow.h"
@implementation PreferencesWindow
@synthesize needsAuthButton = _needsAuthButton;
@synthesize userField = _userField;
@synthesize passwordField = _passwordField;
@synthesize serverHostField = _serverHostField;
@synthesize serverPortField = _serverPortField;
-(id)init
{
self = [super initWithWindowNibName:@"PreferencesWindow"];
return self;
}
-(void)windowDidLoad
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *transmissionServer = [defaults dictionaryForKey:@"transmissionServer"];
if (transmissionServer) {
NSString *tmp = [transmissionServer objectForKey:@"serverIP"];
if (tmp) {
[_serverHostField setStringValue:tmp];
}
tmp = [transmissionServer objectForKey:@"serverPort"];
if (tmp) {
[_serverPortField setStringValue:tmp];
}
[_needsAuthButton setState:[defaults integerForKey:@"needsAuthState"]];
tmp = [transmissionServer objectForKey:@"username"];
if (tmp) {
[_userField setStringValue:tmp];
if (_needsAuthButton.state == NSOnState) {
[_userField setEnabled:YES];
}
}
tmp = [transmissionServer objectForKey:@"password"];
if (tmp) {
[_passwordField setStringValue:tmp];
if (_needsAuthButton.state == NSOnState) {
[_passwordField setEnabled:YES];
}
}
}
}
-(IBAction)textChanged:(id)pId
{
}
-(void)save
{
NSLog(@"Saving preferences!");
NSMutableDictionary *transmissionServer = [[[NSUserDefaults standardUserDefaults] dictionaryForKey:@"transmissionServer"] mutableCopy];
if (!transmissionServer) {
transmissionServer = [NSMutableDictionary new];
}
[transmissionServer setObject:[_serverHostField stringValue] forKey:@"serverIP"];
NSLog(@"Setting serverIP to %@", [_serverHostField stringValue]);
[transmissionServer setObject:[_serverPortField stringValue] forKey:@"serverPort"];
[transmissionServer setObject:[_passwordField stringValue] forKey:@"password"];
[transmissionServer setObject:[_userField stringValue] forKey:@"username"];
[[NSUserDefaults standardUserDefaults] setObject:transmissionServer forKey:@"transmissionServer"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
-(void)windowWillClose:(NSNotification*)notif
{
NSLog(@"Window is closing!");
[self save];
}
-(void)dealloc
{
NSLog(@"DEALLOC: PreferencesWindow");
[_serverHostField release];
[_serverPortField release];
[_passwordField release];
[_userField release];
[_needsAuthButton release];
[super dealloc];
}
-(IBAction)needsAuthToggle:(id)pId
{
if (_needsAuthButton.state == NSOnState) {
[_userField setEnabled:YES];
[_passwordField setEnabled:YES];
} else {
[_userField setEnabled:NO];
[_passwordField setEnabled:NO];
}
[[NSUserDefaults standardUserDefaults] setInteger:_needsAuthButton.state forKey:@"needsAuthState"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
@end