root/trunk/LoginWindowController.m @ 38

Revision 38, 3.5 kB (checked in by ngerakines, 3 years ago)

* fixed save/load of general prefs
* cleaned up the language of general prefs
* login now loads up to 10 unique last login ids
* save_login prefs now populate user/pass of last login

Line 
1#import "LoginWindowController.h"
2
3@implementation LoginWindowController
4
5// init
6- (id)init {
7    if (self = [super init]) {
8        [self setRecentlogins:[[NSMutableArray alloc] init]];
9        [self setLastlogin:@""];
10    }
11    return self;
12}
13
14- (void)awakeFromNib {
15        // [usernamelist setCompletes:YES];
16        [self init_login];
17        // clear the service type at awake
18        // [userDefaults setObject:nil forKey:@"service type"];
19}
20
21- (void) init_login {
22        NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
23        NSEnumerator *enumerator = [[userDefaults objectForKey:@"recent usernames"] objectEnumerator];
24        id key;
25        while (key = [enumerator nextObject]) {
26                if ([usernamelist numberOfItems] < 9) {
27                        if ([usernamelist indexOfItemWithObjectValue:key] == NSNotFound) {
28                                [usernamelist addItemWithObjectValue:key];
29                        }
30                }
31        }
32        if ([userDefaults objectForKey:@"save_login"]) {
33                if ([userDefaults objectForKey:@"username"]) {
34                        [usernamelist selectItemWithObjectValue:[userDefaults objectForKey:@"username"]];
35                }
36                if ([userDefaults objectForKey:@"password"]) {
37                        [password setStringValue:[userDefaults objectForKey:@"password"]];
38                }
39        }
40}
41
42/* dealloc */
43- (void) dealloc {
44    [recentlogins release];
45    [lastlogin release];
46       
47    recentlogins = nil;
48    lastlogin = nil;
49    [super dealloc];
50}
51
52/* recentlogins */
53- (NSMutableArray *) recentlogins { return recentlogins; }
54
55/* -setRecentlogins: */
56- (void) setRecentlogins: (NSMutableArray *) Recentlogins {
57    //NSLog(@"in -setRecentlogins:, old value of recentlogins: %@, changed to: %@", recentlogins, Recentlogins);
58    if (recentlogins != Recentlogins) {
59        [recentlogins autorelease];
60        recentlogins = [Recentlogins retain];
61    }
62}
63
64/* lastlogin */
65- (NSString *) lastlogin { return lastlogin; }
66
67/* -setLastlogin: */
68- (void) setLastlogin: (NSString *) Lastlogin {
69    //NSLog(@"in -setLastlogin:, old value of lastlogin: %@, changed to: %@", lastlogin, Lastlogin);
70    if (lastlogin != Lastlogin) {
71        [lastlogin autorelease];
72        lastlogin = [Lastlogin retain];
73    }
74}
75
76- (IBAction)login:(id)sender {
77        NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
78        // save our recent accounts list
79        [usernamelist addItemWithObjectValue:[usernamelist stringValue]];
80        [userDefaults setObject:[usernamelist objectValues] forKey:@"recent usernames"];
81        // save our account info
82        // TODO -- this should be done only if user allows
83        [userDefaults setObject:[usernamelist stringValue] forKey:@"username"];
84        [userDefaults setObject:[password stringValue] forKey:@"password"];
85        [userDefaults setObject:[services titleOfSelectedItem] forKey:@"service type"];
86        [userDefaults synchronize]; // force a quick sync of user info
87        // load our service ..
88        if ([[services titleOfSelectedItem] isEqualToString:@"TypePad"]) {
89                [self init_typepad];
90        }
91        if ([[services titleOfSelectedItem] isEqualToString:@"Vox"]) {
92                [self init_vox];
93        }
94}
95
96- (void) init_typepad {
97        TypePad *tp = [[[TypePad alloc] init] autorelease];
98        if ([tp addAccount:[usernamelist stringValue] pass:[password stringValue]]) {
99                [tp saveAccounts];
100                [NSBundle loadNibNamed:@"TypePad.nib" owner:self];
101                [mywindow close];
102        } else {
103                NSRunAlertPanel(@"Alert", @"No blogs were loaded", @"OK", nil, nil);
104        }
105}
106
107- (void) init_vox {
108        Vox *vx = [[[Vox alloc] init] autorelease];
109        if ([vx addAccount:[usernamelist stringValue] pass:[password stringValue]]) {
110                [vx saveAccounts];
111                [NSBundle loadNibNamed:@"Vox.nib" owner:self];
112                [mywindow close];
113        } else {
114                NSRunAlertPanel(@"Alert", @"No blogs were loaded", @"OK", nil, nil);
115        }
116}
117
118@end
Note: See TracBrowser for help on using the browser.