Changeset 4455
- Timestamp:
- 01/30/07 18:29:03 (2 years ago)
- Files:
-
- WiredClient/trunk/English.lproj/PublicChat.nib/info.nib (modified) (1 diff)
- WiredClient/trunk/English.lproj/PublicChat.nib/keyedobjects.nib (modified) (previous)
- WiredClient/trunk/English.lproj/ReleaseNotes.rtf (modified) (2 diffs)
- WiredClient/trunk/WCConnection.h (modified) (1 diff)
- WiredClient/trunk/WCConnectionController.h (modified) (1 diff)
- WiredClient/trunk/WCConnectionController.m (modified) (4 diffs)
- WiredClient/trunk/WCLink.h (modified) (1 diff)
- WiredClient/trunk/WCLink.m (modified) (1 diff)
- WiredClient/trunk/WCPublicChat.m (modified) (4 diffs)
- WiredClient/trunk/WCServerConnection.h (modified) (2 diffs)
- WiredClient/trunk/WCServerConnection.m (modified) (4 diffs)
- WiredClient/trunk/WCTrackerConnection.m (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
WiredClient/trunk/English.lproj/PublicChat.nib/info.nib
r4146 r4455 23 23 </array> 24 24 <key>IBSystem Version</key> 25 <string>8 I127</string>25 <string>8L127</string> 26 26 </dict> 27 27 </plist> WiredClient/trunk/English.lproj/ReleaseNotes.rtf
r4439 r4455 1 {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf4 201 {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410 2 2 {\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;} 3 3 {\colortbl;\red255\green255\blue255;\red126\green126\blue126;} … … 33 33 - Fix a problem with transfer queueing when adding multiple transfers at the same time\ 34 34 - Don't scroll chat to bottom after changing preferences\ 35 - Don't close the chat window when disconnecting\ 35 36 - Localization updates 36 37 \f0\b \cf2 \ WiredClient/trunk/WCConnection.h
r4439 r4455 130 130 131 131 - (void)connect; 132 - (void) close;132 - (void)disconnect; 133 133 - (void)terminate; 134 134 WiredClient/trunk/WCConnectionController.h
r4439 r4455 52 52 - (BOOL)isReleasedWhenClosed; 53 53 54 - (BOOL)beginConfirmDisconnectSheetModalForWindow:(NSWindow *)window modalDelegate:(id)delegate didEndSelector:(SEL)selector contextInfo:(void *)contextInfo; 55 54 56 - (void)windowTemplateShouldLoad:(NSMutableDictionary *)windowTemplate; 55 57 - (void)windowTemplateShouldSave:(NSMutableDictionary *)windowTemplate; WiredClient/trunk/WCConnectionController.m
r4439 r4455 337 337 #pragma mark - 338 338 339 - (BOOL)beginConfirmDisconnectSheetModalForWindow:(NSWindow *)window modalDelegate:(id)delegate didEndSelector:(SEL)selector contextInfo:(void *)contextInfo { 340 if([WCSettings boolForKey:WCConfirmDisconnect] && [[self connection] isConnected]) { 341 NSBeginAlertSheet(NSLS(@"Are you sure you want to disconnect?", @"Disconnect dialog title"), 342 NSLS(@"Disconnect", @"Disconnect dialog button"), 343 NSLS(@"Cancel", @"Disconnect dialog button title"), 344 NULL, 345 window, 346 delegate, 347 selector, 348 NULL, 349 contextInfo, 350 NSLS(@"Disconnecting will close any ongoing file transfers.", @"Disconnect dialog description")); 351 352 return NO; 353 } 354 355 return YES; 356 } 357 358 359 360 #pragma mark - 361 339 362 - (void)windowTemplateShouldLoad:(NSMutableDictionary *)windowTemplate { 340 363 } … … 343 366 344 367 - (void)windowTemplateShouldSave:(NSMutableDictionary *)windowTemplate { 368 } 369 370 371 372 - (void)disconnectSheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo { 373 if(returnCode == NSAlertDefaultReturn) 374 [[self connection] disconnect]; 345 375 } 346 376 … … 359 389 connected = [[self connection] isConnected]; 360 390 361 if(selector == @selector(reconnect:)) 391 if(selector == @selector(disconnect:)) 392 return (connected && ![[self connection] isDisconnecting]); 393 else if(selector == @selector(reconnect:)) 362 394 return !connected; 363 395 else if(selector == @selector(files:) || selector == @selector(postNews:) || selector == @selector(broadcast:)) … … 370 402 371 403 - (IBAction)disconnect:(id)sender { 372 [[[[self connection] chat] window] performClose:self]; 404 if(![[self connection] isDisconnecting]) { 405 if([self beginConfirmDisconnectSheetModalForWindow:[[[self connection] chat] window] 406 modalDelegate:self 407 didEndSelector:@selector(disconnectSheetDidEnd:returnCode:contextInfo:) 408 contextInfo:NULL]) { 409 [[self connection] disconnect]; 410 } 411 } 373 412 } 374 413 WiredClient/trunk/WCLink.h
r4439 r4455 58 58 59 59 - (void)connect; 60 - (void) close;60 - (void)disconnect; 61 61 - (void)terminate; 62 62 - (void)sendCommand:(NSString *)command; WiredClient/trunk/WCLink.m
r4439 r4455 145 145 146 146 147 - (void) close{147 - (void)disconnect { 148 148 _closing = YES; 149 149 _reading = NO; WiredClient/trunk/WCPublicChat.m
r4439 r4455 214 214 215 215 - (BOOL)windowShouldClose:(id)sender { 216 if([WCSettings boolForKey:WCConfirmDisconnect] && [[self connection] isConnected]) { 217 NSBeginAlertSheet(NSLS(@"Are you sure you want to disconnect?", @"Disconnect dialog title"), 218 NSLS(@"Disconnect", @"Disconnect dialog button"), 219 NSLS(@"Cancel", @"Disconnect dialog button title"), 220 NULL, 221 [self window], 222 self, 223 @selector(disconnectSheetDidEnd:returnCode:contextInfo:), 224 NULL, 225 NULL, 226 NSLS(@"Disconnecting will close any ongoing file transfers.", @"Disconnect dialog description")); 227 228 return NO; 229 } 230 231 return YES; 216 return [self beginConfirmDisconnectSheetModalForWindow:[self window] 217 modalDelegate:self 218 didEndSelector:@selector(terminateSheetDidEnd:returnCode:contextInfo:) 219 contextInfo:NULL]; 232 220 } 233 221 … … 316 304 317 305 if([[self window] isVisible]) { 318 [[NSNotificationCenter defaultCenter] postNotificationName:WCServerConnectionTriggeredEvent eventTag:WCEventsError]; 319 [[error alert] beginSheetModalForWindow:[self window]]; 306 if(![[self connection] isDisconnecting]) { 307 [[NSNotificationCenter defaultCenter] postNotificationName:WCServerConnectionTriggeredEvent eventTag:WCEventsError]; 308 [[error alert] beginSheetModalForWindow:[self window]]; 309 } 320 310 321 311 [self printEvent:[NSSWF:NSLS(@"Lost connection to %@", @"Disconnected chat message"), [[self connection] name]]]; … … 472 462 473 463 474 - (void) disconnectSheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo {464 - (void)terminateSheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo { 475 465 if(returnCode == NSAlertDefaultReturn) 476 466 [self close]; … … 537 527 - (BOOL)validateToolbarItem:(NSToolbarItem *)item { 538 528 SEL selector; 529 BOOL connected; 539 530 540 531 selector = [item action]; 532 connected = [[self connection] isConnected]; 541 533 542 534 if(selector == @selector(disconnect:)) 543 return [NSApp isActive];535 return (connected && ![[self connection] isDisconnecting] && [NSApp isActive]); 544 536 else if(selector == @selector(files:)) 545 return [[self connection] isConnected];537 return connected; 546 538 547 539 return YES; WiredClient/trunk/WCServerConnection.h
r4439 r4455 66 66 BOOL _dismissingWindow; 67 67 BOOL _closingWindow; 68 BOOL _disconnecting; 68 69 BOOL _reconnecting; 69 70 BOOL _hidden; … … 147 148 - (void)unhide; 148 149 150 - (BOOL)isDisconnecting; 149 151 - (BOOL)isReconnecting; 150 152 - (BOOL)isHidden; WiredClient/trunk/WCServerConnection.m
r4439 r4455 430 430 _loginFailed = YES; 431 431 432 [_link close];432 [_link disconnect]; 433 433 } 434 434 } … … 877 877 _sentLogin = NO; 878 878 _loginFailed = NO; 879 _disconnecting = NO; 879 880 880 881 [self _connect]; … … 883 884 884 885 885 - (void)close { 886 [_link close]; 886 - (void)disconnect { 887 _disconnecting = YES; 888 889 [_link disconnect]; 887 890 } 888 891 … … 944 947 945 948 #pragma mark - 949 950 - (BOOL)isDisconnecting { 951 return _disconnecting; 952 } 953 954 946 955 947 956 - (BOOL)isReconnecting { WiredClient/trunk/WCTrackerConnection.m
r4439 r4455 336 336 337 337 338 - (void) close{339 [_link close];338 - (void)disconnect { 339 [_link disconnect]; 340 340 } 341 341
