Changeset 3582

Show
Ignore:
Timestamp:
02/18/07 16:02:02 (2 years ago)
Author:
timothy
Message:

Adds ICB (Internet Citizen's Band) protocol support. Implemented by Julio M. Merino Vidal (jmmv).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Chat Core.exp

    r3545 r3582  
    1515_MVChatConnectionErrorNotification 
    1616_MVChatConnectionGotBeepNotification 
     17_MVChatConnectionGotImportantMessageNotification 
     18_MVChatConnectionGotInformationalMessageNotification 
    1719_MVChatConnectionGotPrivateMessageNotification 
    1820_MVChatConnectionGotRawMessageNotification 
  • trunk/Chat Core.xcodeproj/project.pbxproj

    r3574 r3582  
    6666                1CF6B82E07122672008ABEFA /* MVSILCChatRoom.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CF6B4970710894D008ABEFA /* MVSILCChatRoom.m */; }; 
    6767                1CF6B82F07122673008ABEFA /* MVSILCChatUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CF6B4990710894D008ABEFA /* MVSILCChatUser.m */; }; 
     68                322F54D10B53F6730023AE39 /* ICBPacket.h in Headers */ = {isa = PBXBuildFile; fileRef = 322F54CF0B53F6730023AE39 /* ICBPacket.h */; }; 
     69                322F54D20B53F6730023AE39 /* ICBPacket.m in Sources */ = {isa = PBXBuildFile; fileRef = 322F54D00B53F6730023AE39 /* ICBPacket.m */; }; 
     70                325F167E0B39A22C008C627B /* MVICBChatConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 325F167C0B39A22C008C627B /* MVICBChatConnection.h */; }; 
     71                325F167F0B39A22C008C627B /* MVICBChatConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 325F167D0B39A22C008C627B /* MVICBChatConnection.m */; }; 
     72                3272C2C90B3DA84900DF650E /* MVICBChatRoom.h in Headers */ = {isa = PBXBuildFile; fileRef = 3272C2C70B3DA84900DF650E /* MVICBChatRoom.h */; }; 
     73                3272C2CA0B3DA84900DF650E /* MVICBChatRoom.m in Sources */ = {isa = PBXBuildFile; fileRef = 3272C2C80B3DA84900DF650E /* MVICBChatRoom.m */; }; 
     74                32C46E1A0B3AB37E00B96B27 /* MVICBChatUser.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C46E180B3AB37E00B96B27 /* MVICBChatUser.h */; }; 
     75                32C46E1B0B3AB37E00B96B27 /* MVICBChatUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C46E190B3AB37E00B96B27 /* MVICBChatUser.m */; }; 
    6876                431261C3072EE37A00720AD1 /* MVSILCFileTransfer.m in Sources */ = {isa = PBXBuildFile; fileRef = 431261C1072EE37A00720AD1 /* MVSILCFileTransfer.m */; }; 
    6977/* End PBXBuildFile section */ 
     
    143151                1CF6B4980710894D008ABEFA /* MVSILCChatUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MVSILCChatUser.h; path = "Chat Core/MVSILCChatUser.h"; sourceTree = "<group>"; }; 
    144152                1CF6B4990710894D008ABEFA /* MVSILCChatUser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MVSILCChatUser.m; path = "Chat Core/MVSILCChatUser.m"; sourceTree = "<group>"; }; 
     153                322F54CF0B53F6730023AE39 /* ICBPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ICBPacket.h; path = "Chat Core/ICBPacket.h"; sourceTree = "<group>"; }; 
     154                322F54D00B53F6730023AE39 /* ICBPacket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ICBPacket.m; path = "Chat Core/ICBPacket.m"; sourceTree = "<group>"; }; 
     155                325F167C0B39A22C008C627B /* MVICBChatConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MVICBChatConnection.h; path = "Chat Core/MVICBChatConnection.h"; sourceTree = "<group>"; }; 
     156                325F167D0B39A22C008C627B /* MVICBChatConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MVICBChatConnection.m; path = "Chat Core/MVICBChatConnection.m"; sourceTree = "<group>"; }; 
     157                3272C2C70B3DA84900DF650E /* MVICBChatRoom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MVICBChatRoom.h; path = "Chat Core/MVICBChatRoom.h"; sourceTree = "<group>"; }; 
     158                3272C2C80B3DA84900DF650E /* MVICBChatRoom.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MVICBChatRoom.m; path = "Chat Core/MVICBChatRoom.m"; sourceTree = "<group>"; }; 
     159                32C46E180B3AB37E00B96B27 /* MVICBChatUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MVICBChatUser.h; path = "Chat Core/MVICBChatUser.h"; sourceTree = "<group>"; }; 
     160                32C46E190B3AB37E00B96B27 /* MVICBChatUser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MVICBChatUser.m; path = "Chat Core/MVICBChatUser.m"; sourceTree = "<group>"; }; 
    145161                431261C0072EE37A00720AD1 /* MVSILCFileTransfer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = MVSILCFileTransfer.h; path = "Chat Core/MVSILCFileTransfer.h"; sourceTree = "<group>"; }; 
    146162                431261C1072EE37A00720AD1 /* MVSILCFileTransfer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = MVSILCFileTransfer.m; path = "Chat Core/MVSILCFileTransfer.m"; sourceTree = "<group>"; }; 
     
    261277                        sourceTree = "<group>"; 
    262278                }; 
     279                32C46E1F0B3AB3BC00B96B27 /* ICB Support */ = { 
     280                        isa = PBXGroup; 
     281                        children = ( 
     282                                322F54CF0B53F6730023AE39 /* ICBPacket.h */, 
     283                                322F54D00B53F6730023AE39 /* ICBPacket.m */, 
     284                                325F167C0B39A22C008C627B /* MVICBChatConnection.h */, 
     285                                325F167D0B39A22C008C627B /* MVICBChatConnection.m */, 
     286                                3272C2C70B3DA84900DF650E /* MVICBChatRoom.h */, 
     287                                3272C2C80B3DA84900DF650E /* MVICBChatRoom.m */, 
     288                                32C46E180B3AB37E00B96B27 /* MVICBChatUser.h */, 
     289                                32C46E190B3AB37E00B96B27 /* MVICBChatUser.m */, 
     290                        ); 
     291                        name = "ICB Support"; 
     292                        sourceTree = "<group>"; 
     293                }; 
    263294                F50B0A9F0170C89301A84BDE /* Sources & Headers */ = { 
    264295                        isa = PBXGroup; 
    265296                        children = ( 
     297                                32C46E1F0B3AB3BC00B96B27 /* ICB Support */, 
    266298                                1C5CBF2D06FF92C90006C5B1 /* IRC Support */, 
    267299                                1C5CBF3006FF93550006C5B1 /* SILC Support */, 
     
    364396                                1C3560060B4CCE95008A93FA /* MVUtilities.h in Headers */, 
    365397                                1C5A491E0B50B7C000BC8CAD /* MVDirectChatConnection.h in Headers */, 
     398                                325F167E0B39A22C008C627B /* MVICBChatConnection.h in Headers */, 
     399                                32C46E1A0B3AB37E00B96B27 /* MVICBChatUser.h in Headers */, 
     400                                3272C2C90B3DA84900DF650E /* MVICBChatRoom.h in Headers */, 
     401                                322F54D10B53F6730023AE39 /* ICBPacket.h in Headers */, 
    366402                        ); 
    367403                        runOnlyForDeploymentPostprocessing = 0; 
     
    490526                                1C0FE8AB0B4F647D00855B9C /* MVDirectClientConnection.m in Sources */, 
    491527                                1C9C133A0B50A7AC005F9F28 /* MVDirectChatConnection.m in Sources */, 
     528                                325F167F0B39A22C008C627B /* MVICBChatConnection.m in Sources */, 
     529                                32C46E1B0B3AB37E00B96B27 /* MVICBChatUser.m in Sources */, 
     530                                3272C2CA0B3DA84900DF650E /* MVICBChatRoom.m in Sources */, 
     531                                322F54D20B53F6730023AE39 /* ICBPacket.m in Sources */, 
    492532                        ); 
    493533                        runOnlyForDeploymentPostprocessing = 0; 
  • trunk/Chat Core/MVChatConnection.h

    r3526 r3582  
    11typedef enum { 
     2        MVChatConnectionICBType = 'icbC', 
    23        MVChatConnectionIRCType = 'ircC', 
    34        MVChatConnectionSILCType = 'silC' 
     
    4647        MVChatConnectionErroneusNicknameError = -12, 
    4748        MVChatConnectionBannedFromServerError = -13, 
    48         MVChatConnectionServerPasswordIncorrectError = -14 
     49        MVChatConnectionServerPasswordIncorrectError = -14, 
     50        MVChatConnectionProtocolError = -15 
    4951} MVChatConnectionError; 
    5052 
     
    6668 
    6769extern NSString *MVChatConnectionGotBeepNotification; 
     70extern NSString *MVChatConnectionGotImportantMessageNotification; 
     71extern NSString *MVChatConnectionGotInformationalMessageNotification; 
    6872extern NSString *MVChatConnectionGotRawMessageNotification; 
    6973extern NSString *MVChatConnectionGotPrivateMessageNotification; 
  • trunk/Chat Core/MVChatConnection.m

    r3555 r3582  
    44#import "MVChatUser.h" 
    55#import "MVChatUserPrivate.h" 
     6#import "MVICBChatConnection.h" 
    67#import "MVIRCChatConnection.h" 
    78#import "MVSILCChatConnection.h" 
     
    2829 
    2930NSString *MVChatConnectionGotBeepNotification = @"MVChatConnectionGotBeepNotification"; 
     31NSString *MVChatConnectionGotImportantMessageNotification = @"MVChatConnectionGotInformationalMessageNotification"; 
     32NSString *MVChatConnectionGotInformationalMessageNotification = @"MVChatConnectionGotInformationalMessageNotification"; 
    3033NSString *MVChatConnectionGotRawMessageNotification = @"MVChatConnectionGotRawMessageNotification"; 
    3134NSString *MVChatConnectionGotPrivateMessageNotification = @"MVChatConnectionGotPrivateMessageNotification"; 
     
    5457+ (BOOL) supportsURLScheme:(NSString *) scheme { 
    5558        if( ! scheme ) return NO; 
    56         return ( [scheme isEqualToString:@"irc"] || [scheme isEqualToString:@"silc"] ); 
     59        return ( [scheme isEqualToString:@"icb"] || [scheme isEqualToString:@"irc"] || [scheme isEqualToString:@"silc"] ); 
    5760} 
    5861 
    5962+ (NSArray *) defaultServerPortsForType:(MVChatConnectionType) type { 
    60         if( type == MVChatConnectionIRCType ) return [MVIRCChatConnection defaultServerPorts]; 
     63        if( type == MVChatConnectionICBType ) return [MVICBChatConnection defaultServerPorts]; 
     64        else if( type == MVChatConnectionIRCType ) return [MVIRCChatConnection defaultServerPorts]; 
    6165        else if( type == MVChatConnectionSILCType ) return [MVSILCChatConnection defaultServerPorts]; 
    6266        return nil; 
     
    96100        [self release]; 
    97101 
    98         if( connectionType == MVChatConnectionIRCType ) { 
     102        if( connectionType == MVChatConnectionICBType ) { 
     103                self = [[MVICBChatConnection allocWithZone:nil] init]; 
     104        } else if( connectionType == MVChatConnectionIRCType ) { 
    99105                self = [[MVIRCChatConnection allocWithZone:nil] init]; 
    100106        } else if ( connectionType == MVChatConnectionSILCType ) { 
     
    109115 
    110116        int connectionType = 0; 
    111         if( [[serverURL scheme] isEqualToString:@"irc"] ) connectionType = MVChatConnectionIRCType; 
     117        if( [[serverURL scheme] isEqualToString:@"icb"] ) connectionType = MVChatConnectionICBType; 
     118        else if( [[serverURL scheme] isEqualToString:@"irc"] ) connectionType = MVChatConnectionIRCType; 
    112119        else if( [[serverURL scheme] isEqualToString:@"silc"] ) connectionType = MVChatConnectionSILCType; 
    113120 
  • trunk/Controllers/JVChatController.m

    r3558 r3582  
    638638- (void) _errorOccurred:(NSNotification *) notification { 
    639639        NSError *error = [[notification userInfo] objectForKey:@"error"]; 
    640         if( [error code] == MVChatConnectionNoSuchUserError ) { 
     640        if( [error code] == MVChatConnectionErroneusNicknameError ) { 
     641                NSString *nickname = [[error userInfo] objectForKey:@"nickname"]; 
     642                NSAlert *alert = [[[NSAlert alloc] init] autorelease]; 
     643                [alert setMessageText:NSLocalizedString( @"Connection error", "connection error alert dialog title" )]; 
     644                [alert setInformativeText:[NSString stringWithFormat:NSLocalizedString( @"Could not connect to server because the requested nickname (%@) was unavailable or invalid.", "connection error alert dialog message" ), nickname]]; 
     645                [alert setAlertStyle:NSInformationalAlertStyle]; 
     646                [alert runModal]; 
     647        } else if( [error code] == MVChatConnectionNoSuchUserError ) { 
    641648                MVChatUser *user = [[error userInfo] objectForKey:@"user"]; 
    642649                JVDirectChatPanel *panel = [self chatViewControllerForUser:user ifExists:YES]; 
     
    648655                        [alert runModal]; 
    649656                } 
     657        } else if( [error code] == MVChatConnectionProtocolError ) { 
     658                NSString *reason = [[error userInfo] objectForKey:@"reason"]; 
     659                NSAlert *alert = [[[NSAlert alloc] init] autorelease]; 
     660                [alert setMessageText:[NSString stringWithFormat:NSLocalizedString( @"Chat protocol error", "malformed packet alert dialog title" )]]; 
     661                [alert setInformativeText:[NSString stringWithFormat:NSLocalizedString( @"Client got a malformed packet: %@", "malformd packet alert dialog message" ), reason]]; 
     662                [alert setAlertStyle:NSInformationalAlertStyle]; 
     663                [alert runModal]; 
    650664        } 
    651665} 
  • trunk/Controllers/MVConnectionsController.m

    r3555 r3582  
    109109#pragma mark - 
    110110 
     111- (MVChatConnectionType) newTypeToConnectionType { 
     112        MVChatConnectionType type; 
     113        switch( [[newType selectedItem] tag] ) { 
     114        case 0: 
     115                type = MVChatConnectionICBType; 
     116                break; 
     117        case 1: 
     118                type = MVChatConnectionIRCType; 
     119                break; 
     120        case 2: 
     121                type = MVChatConnectionSILCType; 
     122                break; 
     123        default: 
     124                NSAssert(NO, @"Unsupported tag type\n"); 
     125                type = nil; 
     126        } 
     127        return type; 
     128} 
     129 
    111130- (id) initWithWindowNibName:(NSString *) windowNibName { 
    112131        if( ( self = [super initWithWindowNibName:@"MVConnections"] ) ) { 
     
    275294        [newServerPassword setObjectValue:@""]; 
    276295 
    277         MVChatConnectionType type = ( [[newType selectedItem] tag] == 1 ? MVChatConnectionIRCType : MVChatConnectionSILCType )
     296        MVChatConnectionType type = [self newTypeToConnectionType]
    278297        if( [[MVChatConnection defaultServerPortsForType:type] count] ) 
    279298                [newPort setObjectValue:[[MVChatConnection defaultServerPortsForType:type] objectAtIndex:0]]; 
     
    284303 
    285304- (IBAction) changeNewConnectionProtocol:(id) sender { 
    286         MVChatConnectionType type = ( [[newType selectedItem] tag] == 1 ? MVChatConnectionIRCType : MVChatConnectionSILCType )
     305        MVChatConnectionType type = [self newTypeToConnectionType]
    287306 
    288307        [newPort reloadData]; 
     
    290309                [newPort setObjectValue:[[MVChatConnection defaultServerPortsForType:type] objectAtIndex:0]]; 
    291310 
    292         if( type == MVChatConnectionIRCType ) { 
     311        if( type == MVChatConnectionICBType ) { 
     312                [sslConnection setEnabled:NO]; 
     313                [newProxy setEnabled:NO]; 
     314        } else if( type == MVChatConnectionIRCType ) { 
    293315                [sslConnection setEnabled:YES]; 
    294316                [newProxy setEnabled:YES]; 
     
    397419        [openConnection orderOut:nil]; 
    398420 
    399         MVChatConnectionType type = ( [[newType selectedItem] tag] == 1 ? MVChatConnectionIRCType : MVChatConnectionSILCType )
     421        MVChatConnectionType type = [self newTypeToConnectionType]
    400422 
    401423        MVChatConnection *connection = [[[MVChatConnection alloc] initWithType:type] autorelease]; 
     
    12951317                return [[[NSUserDefaults standardUserDefaults] arrayForKey:@"JVChatServers"] count]; 
    12961318        } else if( comboBox == newPort ) { 
    1297                 MVChatConnectionType type = ( [[newType selectedItem] tag] == 1 ? MVChatConnectionIRCType : MVChatConnectionSILCType )
     1319                MVChatConnectionType type = [self newTypeToConnectionType]
    12981320                return [[MVChatConnection defaultServerPortsForType:type] count]; 
    12991321        } 
     
    13061328                return [[[NSUserDefaults standardUserDefaults] arrayForKey:@"JVChatServers"] objectAtIndex:index]; 
    13071329        } else if( comboBox == newPort ) { 
    1308                 MVChatConnectionType type = ( [[newType selectedItem] tag] == 1 ? MVChatConnectionIRCType : MVChatConnectionSILCType )
     1330                MVChatConnectionType type = [self newTypeToConnectionType]
    13091331                return [[MVChatConnection defaultServerPortsForType:type] objectAtIndex:index]; 
    13101332        } 
     
    16141636 
    16151637                MVChatConnection *connection = nil; 
    1616                 MVChatConnectionType type = ( ! [(NSString *)[info objectForKey:@"type"] length] ? MVChatConnectionIRCType : ( [[info objectForKey:@"type"] isEqualToString:@"irc"] ? MVChatConnectionIRCType : ( [[info objectForKey:@"type"] isEqualToString:@"silc"] ? MVChatConnectionSILCType : MVChatConnectionIRCType ) ) ); 
     1638 
     1639                MVChatConnectionType type; 
     1640                if( ! [(NSString *)[info objectForKey:@"type"] length] ) 
     1641                    type = MVChatConnectionIRCType; 
     1642                else { 
     1643                        if( [[info objectForKey:@"type"] isEqualToString:@"icb"] ) 
     1644                                type = MVChatConnectionICBType; 
     1645                        else if( [[info objectForKey:@"type"] isEqualToString:@"irc"] ) 
     1646                                type = MVChatConnectionIRCType; 
     1647                    else if( [[info objectForKey:@"type"] isEqualToString:@"silc"] ) 
     1648                        type = MVChatConnectionSILCType; 
     1649                        else 
     1650                                type = MVChatConnectionIRCType; 
     1651                } 
    16171652 
    16181653                if( [info objectForKey:@"url"] ) { 
  • trunk/Languages/Dutch.lproj/MVConnections.nib/info.nib

    r2997 r3582  
    66        <string>39 73 381 300 0 0 1440 878 </string> 
    77        <key>IBFramework Version</key> 
    8         <string>439.0</string> 
     8        <string>454.0</string> 
    99        <key>IBGroupedObjects</key> 
    1010        <dict> 
     
    3131        </array> 
    3232        <key>IBSystem Version</key> 
    33         <string>8C46</string> 
     33        <string>9A321</string> 
    3434</dict> 
    3535</plist> 
  • trunk/Languages/English.lproj/MVConnections.nib/info.nib

    r2867 r3582  
    66        <string>39 73 381 300 0 0 1440 878 </string> 
    77        <key>IBFramework Version</key> 
    8         <string>439.0</string> 
     8        <string>454.0</string> 
    99        <key>IBGroupedObjects</key> 
    1010        <dict> 
     
    2828        <key>IBOpenObjects</key> 
    2929        <array> 
    30                 <integer>776</integer> 
    31                 <integer>337</integer> 
     30                <integer>267</integer> 
    3231        </array> 
    3332        <key>IBSystem Version</key> 
    34         <string>8C46</string> 
     33        <string>9A321</string> 
    3534</dict> 
    3635</plist> 
  • trunk/Languages/French.lproj/MVConnections.nib/info.nib

    r3040 r3582  
    66        <string>39 73 381 300 0 0 1440 878 </string> 
    77        <key>IBFramework Version</key> 
    8         <string>439.0</string> 
     8        <string>454.0</string> 
    99        <key>IBGroupedObjects</key> 
    1010        <dict> 
     
    3434        <key>IBOpenObjects</key> 
    3535        <array> 
    36                 <integer>776</integer> 
     36                <integer>267</integer> 
    3737        </array> 
    3838        <key>IBSystem Version</key> 
    39         <string>8F46</string> 
     39        <string>9A321</string> 
    4040</dict> 
    4141</plist> 
  • trunk/Languages/German.lproj/MVConnections.nib/info.nib

    r3575 r3582  
    66        <string>39 73 381 300 0 0 1440 878 </string> 
    77        <key>IBFramework Version</key> 
    8         <string>446.1</string> 
     8        <string>454.0</string> 
    99        <key>IBLockedObjects</key> 
    1010        <array> 
    1111                <integer>5</integer> 
    1212        </array> 
     13        <key>IBOpenObjects</key> 
     14        <array> 
     15                <integer>267</integer> 
     16        </array> 
    1317        <key>IBSystem Version</key> 
    14         <string>8L2127</string> 
     18        <string>9A321</string> 
    1519</dict> 
    1620</plist> 
  • trunk/Languages/Italian.lproj/MVConnections.nib/info.nib

    r3330 r3582  
    66        <string>39 73 381 300 0 0 1440 878 </string> 
    77        <key>IBFramework Version</key> 
    8         <string>446.1</string> 
     8        <string>454.0</string> 
    99        <key>IBLockedObjects</key> 
    1010        <array> 
     
    1919        <array> 
    2020                <integer>267</integer> 
    21                 <integer>776</integer> 
    2221        </array> 
    2322        <key>IBSystem Version</key> 
    24         <string>8J2135a</string> 
     23        <string>9A321</string> 
    2524</dict> 
    2625</plist> 
  • trunk/Languages/Spanish.lproj/MVConnections.nib/info.nib

    r3441 r3582  
    66        <string>39 75 381 300 0 0 1440 878 </string> 
    77        <key>IBFramework Version</key> 
    8         <string>446.1</string> 
     8        <string>454.0</string> 
    99        <key>IBGroupedObjects</key> 
    1010        <dict> 
     
    2626                <integer>5</integer> 
    2727        </array> 
     28        <key>IBOpenObjects</key> 
     29        <array> 
     30                <integer>267</integer> 
     31        </array> 
    2832        <key>IBSystem Version</key> 
    29         <string>8L2127</string> 
     33        <string>9A321</string> 
    3034</dict> 
    3135</plist> 
  • trunk/Languages/pt_PT.lproj/MVConnections.nib/info.nib

    r3061 r3582  
    66        <string>39 73 381 300 0 0 1440 878 </string> 
    77        <key>IBFramework Version</key> 
    8         <string>443.0</string> 
     8        <string>454.0</string> 
    99        <key>IBGroupedObjects</key> 
    1010        <dict> 
     
    3434        <key>IBOpenObjects</key> 
    3535        <array> 
    36                 <integer>776</integer> 
     36                <integer>267</integer> 
    3737        </array> 
    3838        <key>IBSystem Version</key> 
    39         <string>8F46</string> 
     39        <string>9A321</string> 
    4040</dict> 
    4141</plist> 
  • trunk/Languages/zh_TW.lproj/MVConnections.nib/info.nib

    r3062 r3582  
    66        <string>39 73 381 300 0 0 1440 878 </string> 
    77        <key>IBFramework Version</key> 
    8         <string>443.0</string> 
     8        <string>454.0</string> 
    99        <key>IBLockedObjects</key> 
    1010        <array> 
    1111                <integer>5</integer> 
    1212        </array> 
     13        <key>IBOpenObjects</key> 
     14        <array> 
     15                <integer>267</integer> 
     16        </array> 
    1317        <key>IBSystem Version</key> 
    14         <string>8F46</string> 
     18        <string>9A321</string> 
    1519</dict> 
    1620</plist> 
  • trunk/Panels/JVChatConsolePanel.m

    r3573 r3582  
    2323                _ignorePRIVMSG = [[NSUserDefaults standardUserDefaults] boolForKey:@"JVChatConsolePanelIgnoreUserChatMessages"]; 
    2424 
     25                [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector( _gotImportantMessage: ) name:MVChatConnectionGotImportantMessageNotification object:connection]; 
     26                [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector( _gotInformationalMessage: ) name:MVChatConnectionGotInformationalMessageNotification object:connection]; 
    2527                [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector( _gotRawMessage: ) name:MVChatConnectionGotRawMessageNotification object:connection]; 
    2628                [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector( clearConsole: ) name:MVChatConnectionWillConnectNotification object:connection]; 
     
    647649 
    648650@implementation JVChatConsolePanel (JVChatConsolePanelPrivate) 
     651- (void) _gotImportantMessage:(NSNotification *) notification { 
     652        if( _paused ) return; 
     653        [self addMessageToDisplay:[[notification userInfo] objectForKey:@"message"] asOutboundMessage:NO]; 
     654} 
     655 
     656- (void) _gotInformationalMessage:(NSNotification *) notification { 
     657        if( _paused ) return; 
     658        [self addMessageToDisplay:[[notification userInfo] objectForKey:@"message"] asOutboundMessage:NO]; 
     659} 
     660 
    649661- (void) _gotRawMessage:(NSNotification *) notification { 
    650662        if( _paused ) return;