From: Kent Sutherland Date: Sat, 1 Nov 2003 02:53:23 +0000 (+0000) Subject: More fun times with network prefs. X-Git-Tag: v1.2~39 X-Git-Url: http://git.ithinksw.org/MenuTunes.git/commitdiff_plain/ec1969da79832d035791a9d6647242fffe0b176a More fun times with network prefs. --- diff --git a/English.lproj/Preferences.nib/classes.nib b/English.lproj/Preferences.nib/classes.nib index 86838f8..2e77833 100755 --- a/English.lproj/Preferences.nib/classes.nib +++ b/English.lproj/Preferences.nib/classes.nib @@ -42,6 +42,7 @@ selectSharedPlayerButton = NSButton; selectedPlayerTextField = NSTextField; shareMenuTunesCheckbox = NSButton; + sharingPanelOKButton = NSButton; sharingTableView = NSTableView; showOnChangeCheckbox = NSButton; songsInAdvance = NSTextField; diff --git a/English.lproj/Preferences.nib/info.nib b/English.lproj/Preferences.nib/info.nib index eb7b7a5..3ef736f 100755 --- a/English.lproj/Preferences.nib/info.nib +++ b/English.lproj/Preferences.nib/info.nib @@ -20,7 +20,6 @@ IBOpenObjects 6 - 719 IBSystem Version 7B85 diff --git a/English.lproj/Preferences.nib/keyedobjects.nib b/English.lproj/Preferences.nib/keyedobjects.nib index 7cdebdb..695eb60 100755 Binary files a/English.lproj/Preferences.nib/keyedobjects.nib and b/English.lproj/Preferences.nib/keyedobjects.nib differ diff --git a/MainController.h b/MainController.h index f4f9f7b..e4eeea2 100755 --- a/MainController.h +++ b/MainController.h @@ -70,7 +70,7 @@ // - (void)setServerStatus:(BOOL)newStatus; -- (BOOL)connectToServer; +- (int)connectToServer; - (BOOL)disconnectFromServer; - (void)networkError:(NSException *)exception; diff --git a/MainController.m b/MainController.m index bd93fca..5637bae 100755 --- a/MainController.m +++ b/MainController.m @@ -64,7 +64,7 @@ static MainController *sharedController; if ([df boolForKey:@"enableSharing"]) { [self setServerStatus:YES]; } else if ([df boolForKey:@"useSharedPlayer"]) { - if (![self connectToServer]) { + if ([self connectToServer] == 0) { [NSTimer scheduledTimerWithTimeInterval:45 target:self selector:@selector(checkForRemoteServer:) userInfo:nil repeats:YES]; } } @@ -943,7 +943,7 @@ static MainController *sharedController; } } -- (BOOL)connectToServer +- (int)connectToServer { int result; ITDebugLog(@"Attempting to connect to shared remote."); @@ -954,16 +954,16 @@ static MainController *sharedController; currentRemote = [[[networkController networkObject] remote] retain]; [self timerUpdate]; ITDebugLog(@"Connection successful."); - return YES; + return 1; } else if (result == 0) { ITDebugLog(@"Connection failed."); currentRemote = [remoteArray objectAtIndex:0]; - return NO; + return 0; } else { //Do something about the password being invalid ITDebugLog(@"Connection failed."); currentRemote = [remoteArray objectAtIndex:0]; - return NO; + return -1; } } @@ -1009,7 +1009,7 @@ static MainController *sharedController; - (void)reconnect { - if (![self connectToServer]) { + if ([self connectToServer] == 0) { [NSTimer scheduledTimerWithTimeInterval:45 target:self selector:@selector(checkForRemoteServer:) userInfo:nil repeats:YES]; } [[StatusWindow sharedWindow] setLocked:NO]; diff --git a/PreferencesController.h b/PreferencesController.h index f423317..97c5b92 100755 --- a/PreferencesController.h +++ b/PreferencesController.h @@ -45,6 +45,7 @@ IBOutlet NSPanel *selectPlayerSheet; IBOutlet NSButton *selectSharedPlayerButton; IBOutlet NSButton *shareMenuTunesCheckbox; + IBOutlet NSButton *sharingPanelOKButton; IBOutlet NSTableView *sharingTableView; IBOutlet NSButton *showOnChangeCheckbox; IBOutlet NSTextField *songsInAdvance; diff --git a/PreferencesController.m b/PreferencesController.m index 0ee689d..3fc842e 100755 --- a/PreferencesController.m +++ b/PreferencesController.m @@ -162,7 +162,7 @@ static PreferencesController *prefs = nil; - (IBAction)showPrefsWindow:(id)sender { ITDebugLog(@"Showing preferences window."); - if (! window) { // If window does not exist yet, then the nib hasn't been loaded. + if (!myItems) { // If menu array does not exist yet, then the window hasn't been setup. ITDebugLog(@"Window doesn't exist, initial setup."); [self setupCustomizationTables]; // Setup the DnD manu config tables. [self setupMenuItems]; // Setup the arrays of menu items @@ -252,7 +252,7 @@ static PreferencesController *prefs = nil; [nameTextField setEnabled:NO]; [selectSharedPlayerButton setEnabled:state]; - if (state && [controller connectToServer]) { + if (state && ([controller connectToServer] == 1)) { [selectedPlayerTextField setStringValue:[[[NetworkController sharedController] networkObject] serverName]]; [locationTextField setStringValue:[[NetworkController sharedController] remoteHost]]; } else { @@ -264,10 +264,22 @@ static PreferencesController *prefs = nil; } } else if ( [sender tag] == 5050 ) { - //Do nothing on table view click + //If no player is selected in the table view, turn off OK button. + if ([sender clickedRow] == -1 ) { + [sharingPanelOKButton setEnabled:NO]; + } else { + [sharingPanelOKButton setEnabled:YES]; + } } else if ( [sender tag] == 5051 ) { [df setObject:[sender stringValue] forKey:@"sharedPlayerHost"]; } else if ( [sender tag] == 5060 ) { + //Set OK button state + if (([selectPlayerBox contentView] == zeroConfView && [sharingTableView selectedRow] == -1) || + ([selectPlayerBox contentView] == manualView && [[hostTextField stringValue] length] == 0)) { + [sharingPanelOKButton setEnabled:NO]; + } else { + [sharingPanelOKButton setEnabled:YES]; + } //Show selection sheet [NSApp beginSheet:selectPlayerSheet modalForWindow:window modalDelegate:self didEndSelector:NULL contextInfo:nil]; } else if ( [sender tag] == 5100 ) { @@ -276,13 +288,20 @@ static PreferencesController *prefs = nil; NSRect frame = [selectPlayerSheet frame]; frame.origin.y -= 58; frame.size.height = 273; + if ([sharingTableView selectedRow] == -1) { + [sharingPanelOKButton setEnabled:NO]; + } [selectPlayerBox setContentView:zeroConfView]; [selectPlayerSheet setFrame:frame display:YES animate:YES]; } else if ( ([sender indexOfItem:[sender selectedItem]] == 1) && ([selectPlayerBox contentView] != manualView) ){ NSRect frame = [selectPlayerSheet frame]; frame.origin.y += 58; frame.size.height = 215; - //[window makeFirstResponder:hostTextField]; + if ([[hostTextField stringValue] length] == 0) { + [sharingPanelOKButton setEnabled:NO]; + } else { + [sharingPanelOKButton setEnabled:YES]; + } [selectPlayerBox setContentView:manualView]; [selectPlayerSheet setFrame:frame display:YES animate:YES]; [hostTextField selectText:nil]; @@ -315,7 +334,7 @@ static PreferencesController *prefs = nil; } } - if ([controller connectToServer]) { + if ([controller connectToServer] == 1) { [useSharedMenuTunesCheckbox setState:NSOnState]; [selectedPlayerTextField setStringValue:[[[NetworkController sharedController] networkObject] serverName]]; [locationTextField setStringValue:[[NetworkController sharedController] remoteHost]]; @@ -790,6 +809,21 @@ static PreferencesController *prefs = nil; [(MainController *)controller closePreferences]; } +/*************************************************************************/ +#pragma mark - +#pragma mark NSTextField DELEGATE METHODS +/*************************************************************************/ + +- (void)controlTextDidChange:(NSNotification*)note +{ + if ([note object] == hostTextField) { + if ([[hostTextField stringValue] length] == 0) { + [sharingPanelOKButton setEnabled:NO]; + } else { + [sharingPanelOKButton setEnabled:YES]; + } + } +} /*************************************************************************/ #pragma mark - diff --git a/libValidate.a b/libValidate.a index 485158e..513ae4d 100755 Binary files a/libValidate.a and b/libValidate.a differ