root/trunk/LoginWindowController.m @ 40

Revision 40, 3.6 kB (checked in by ngerakines, 3 years ago)

* Added growl notification on service connect
* Changed the language used in login and prefs
* On enter from password field a login is performed
* Made several adjustments throughout the app

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                [tp appNotify:@"You are now connected to TypePad" title:@"Connected"];
101                [NSBundle loadNibNamed:@"TypePad.nib" owner:self];
102                [mywindow close];
103        } else {
104                NSRunAlertPanel(@"Alert", @"Login Failed", @"OK", nil, nil);
105        }
106}
107
108- (void) init_vox {
109        Vox *vx = [[[Vox alloc] init] autorelease];
110        if ([vx addAccount:[usernamelist stringValue] pass:[password stringValue]]) {
111                [vx saveAccounts];
112                [vx appNotify:@"You are now connected to Vox" title:@"Connected"];
113                [NSBundle loadNibNamed:@"Vox.nib" owner:self];
114                [mywindow close];
115        } else {
116                NSRunAlertPanel(@"Alert", @"Login Failed", @"OK", nil, nil);
117        }
118}
119
120@end
Note: See TracBrowser for help on using the browser.