Changeset 2463

Show
Ignore:
Timestamp:
03/13/05 23:21:32 (4 years ago)
Author:
timothy
Message:

Preliminary Smart Transcript support.

  • Command-Option-N makes a new Smart Transcript.
  • The edit settings sheet appears, you can only edit the Smart Transcript settings once. There will be a edit button later. To change settings now, make a new one.
  • The Smart Transcripts aren't remembered across launches, or when you close the panel. This will change later.
  • The setting name isn't reflected in the drawer or tab bar yet.
  • Some Smart Transcript criterion isn't relevant. There will be some changes made here later.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Colloquy.xcode/project.pbxproj

    r2441 r2463  
    800800                                1C7EF5C006B346E50037F173, 
    801801                                1C7EF5C106B346E50037F173, 
     802                                1CF4D2F007E5489D00DB421A, 
     803                                1CF4D30207E5497400DB421A, 
    802804                        ); 
    803805                        isa = PBXGroup; 
     
    14261428                        }; 
    14271429                }; 
     1430                1C70377C07E49F25005CEA40 = { 
     1431                        fileEncoding = 4; 
     1432                        isa = PBXFileReference; 
     1433                        lastKnownFileType = sourcecode.c.h; 
     1434                        path = JVSmartTranscriptPanel.h; 
     1435                        refType = 4; 
     1436                        sourceTree = "<group>"; 
     1437                }; 
     1438                1C70377D07E49F25005CEA40 = { 
     1439                        fileEncoding = 4; 
     1440                        isa = PBXFileReference; 
     1441                        lastKnownFileType = sourcecode.c.objc; 
     1442                        path = JVSmartTranscriptPanel.m; 
     1443                        refType = 4; 
     1444                        sourceTree = "<group>"; 
     1445                }; 
     1446                1C70377F07E49F25005CEA40 = { 
     1447                        fileRef = 1C70377D07E49F25005CEA40; 
     1448                        isa = PBXBuildFile; 
     1449                        settings = { 
     1450                        }; 
     1451                }; 
     1452                1C703EF307E4B956005CEA40 = { 
     1453                        children = ( 
     1454                                1C703EF407E4B956005CEA40, 
     1455                        ); 
     1456                        isa = PBXVariantGroup; 
     1457                        name = JVSmartTranscriptFilterSheet.nib; 
     1458                        path = ""; 
     1459                        refType = 4; 
     1460                        sourceTree = "<group>"; 
     1461                }; 
     1462                1C703EF407E4B956005CEA40 = { 
     1463                        isa = PBXFileReference; 
     1464                        lastKnownFileType = wrapper.nib; 
     1465                        name = English; 
     1466                        path = Languages/English.lproj/JVSmartTranscriptFilterSheet.nib; 
     1467                        refType = 4; 
     1468                        sourceTree = "<group>"; 
     1469                }; 
     1470                1C703EF507E4B956005CEA40 = { 
     1471                        fileRef = 1C703EF307E4B956005CEA40; 
     1472                        isa = PBXBuildFile; 
     1473                        settings = { 
     1474                        }; 
     1475                }; 
    14281476                1C7055C40519E54C00A8FE6E = { 
    14291477                        isa = PBXFileReference; 
     
    16001648                1C7C77E507DBD4E600FB5F83 = { 
    16011649                        fileRef = 1C7C76ED07DBA1D000FB5F83; 
    1602                         isa = PBXBuildFile; 
    1603                         settings = { 
    1604                         }; 
    1605                 }; 
    1606                 1C7E023C06B42C470037F173 = { 
    1607                         children = ( 
    1608                                 1C7E023D06B42C470037F173, 
    1609                         ); 
    1610                         isa = PBXVariantGroup; 
    1611                         name = JVTranscriptSelectSheet.nib; 
    1612                         path = ""; 
    1613                         refType = 4; 
    1614                         sourceTree = "<group>"; 
    1615                 }; 
    1616                 1C7E023D06B42C470037F173 = { 
    1617                         isa = PBXFileReference; 
    1618                         lastKnownFileType = wrapper.nib; 
    1619                         name = English; 
    1620                         path = Languages/English.lproj/JVTranscriptSelectSheet.nib; 
    1621                         refType = 4; 
    1622                         sourceTree = "<group>"; 
    1623                 }; 
    1624                 1C7E023E06B42C470037F173 = { 
    1625                         fileRef = 1C7E023C06B42C470037F173; 
    16261650                        isa = PBXBuildFile; 
    16271651                        settings = { 
     
    21532177                                1CD6C414051DFA1D00A8FE10, 
    21542178                                1CD6C413051DFA1C00A8FE10, 
     2179                                1C70377D07E49F25005CEA40, 
     2180                                1C70377C07E49F25005CEA40, 
    21552181                                1CCB279E04FE93FE00A8FE6E, 
    21562182                                1CCB279D04FE93FE00A8FE6E, 
     
    23882414                                1C7EF5C206B346E50037F173, 
    23892415                                1C7EF5C306B346E50037F173, 
    2390                                 1C7E023E06B42C470037F173, 
    23912416                                1CF627CB07558F79005DFCFA, 
    23922417                                1C0A4C9C0799BDB00093B702, 
     
    23962421                                1C7C76EB07DBA1C100FB5F83, 
    23972422                                1C7C76EC07DBA1C100FB5F83, 
     2423                                1C703EF507E4B956005CEA40, 
     2424                                1CF4D2F107E5489D00DB421A, 
     2425                                1CF4D30307E5497400DB421A, 
     2426                                1CF4D38907E54C0C00DB421A, 
    23982427                        ); 
    23992428                        isa = PBXResourcesBuildPhase; 
     
    28782907                                1C66913A07BFA76D008400F7, 
    28792908                                1CE3C4F807E13F4C004931E6, 
     2909                                1C70377F07E49F25005CEA40, 
    28802910                        ); 
    28812911                        isa = PBXSourcesBuildPhase; 
     
    47174747                        shellPath = /bin/sh; 
    47184748                        shellScript = "touch Resources/Styles\ntouch Resources/Emoticons\n"; 
     4749                }; 
     4750                1CF4D2F007E5489D00DB421A = { 
     4751                        isa = PBXFileReference; 
     4752                        lastKnownFileType = image.png; 
     4753                        name = smartTranscriptTab.png; 
     4754                        path = Resources/smartTranscriptTab.png; 
     4755                        refType = 4; 
     4756                        sourceTree = "<group>"; 
     4757                }; 
     4758                1CF4D2F107E5489D00DB421A = { 
     4759                        fileRef = 1CF4D2F007E5489D00DB421A; 
     4760                        isa = PBXBuildFile; 
     4761                        settings = { 
     4762                        }; 
     4763                }; 
     4764                1CF4D30207E5497400DB421A = { 
     4765                        isa = PBXFileReference; 
     4766                        lastKnownFileType = image.png; 
     4767                        name = smartTranscriptTabActivity.png; 
     4768                        path = Resources/smartTranscriptTabActivity.png; 
     4769                        refType = 4; 
     4770                        sourceTree = "<group>"; 
     4771                }; 
     4772                1CF4D30307E5497400DB421A = { 
     4773                        fileRef = 1CF4D30207E5497400DB421A; 
     4774                        isa = PBXBuildFile; 
     4775                        settings = { 
     4776                        }; 
     4777                }; 
     4778                1CF4D38807E54C0C00DB421A = { 
     4779                        isa = PBXFileReference; 
     4780                        lastKnownFileType = image.png; 
     4781                        name = smartTranscript.png; 
     4782                        path = Resources/smartTranscript.png; 
     4783                        refType = 4; 
     4784                        sourceTree = "<group>"; 
     4785                }; 
     4786                1CF4D38907E54C0C00DB421A = { 
     4787                        fileRef = 1CF4D38807E54C0C00DB421A; 
     4788                        isa = PBXBuildFile; 
     4789                        settings = { 
     4790                        }; 
    47194791                }; 
    47204792                1CF4E51D0698E9FB00986498 = { 
     
    51565228                                1C9982040603F097006C6417, 
    51575229                                0A3187FA067ECEB600271E42, 
    5158                                 1C7E023C06B42C470037F173
     5230                                1C703EF307E4B956005CEA40
    51595231                        ); 
    51605232                        isa = PBXGroup; 
     
    52525324                                CB66DEA10631F8160034F76E, 
    52535325                                1C6075E005138ED600A8FE6E, 
     5326                                1CF4D38807E54C0C00DB421A, 
    52545327                                1CF9BB9A04FBE96D00A8FE6E, 
    52555328                                1C705701051A830200A8FE6E, 
  • trunk/JVChatController.h

    r2308 r2463  
    88@class JVDirectChatPanel; 
    99@class JVChatTranscriptPanel; 
     10@class JVSmartTranscriptPanel; 
    1011@class JVChatConsolePanel; 
    1112@class KAInternalIgnoreRule; 
     
    2021} 
    2122+ (JVChatController *) defaultManager; 
    22  
     23+ (NSMenu *) smartTranscriptMenu; 
     24+ (void) refreshSmartTranscriptMenu; 
     25         
    2326- (NSSet *) allChatWindowControllers; 
    2427- (JVChatWindowController *) newChatWindowController; 
     
    3639- (JVChatConsolePanel *) chatConsoleForConnection:(MVChatConnection *) connection ifExists:(BOOL) exists; 
    3740 
     41- (JVSmartTranscriptPanel *) newSmartTranscript; 
     42 
    3843- (void) disposeViewController:(id <JVChatViewController>) controller; 
    3944- (void) detachViewController:(id <JVChatViewController>) controller; 
  • trunk/JVChatController.m

    r2435 r2463  
    1010#import "JVNotificationController.h" 
    1111#import "JVChatTranscriptPanel.h" 
     12#import "JVSmartTranscriptPanel.h" 
    1213#import "JVDirectChatPanel.h" 
    1314#import "JVChatRoomPanel.h" 
     
    2021 
    2122static JVChatController *sharedInstance = nil; 
     23static NSMenu *smartTranscriptMenu = nil; 
    2224 
    2325@interface JVChatController (JVChatControllerPrivate) 
     
    3234        extern JVChatController *sharedInstance; 
    3335        return ( sharedInstance ? sharedInstance : ( sharedInstance = [[self alloc] init] ) ); 
     36} 
     37 
     38+ (NSMenu *) smartTranscriptMenu { 
     39        extern NSMenu *smartTranscriptMenu; 
     40        [self refreshSmartTranscriptMenu]; 
     41        return smartTranscriptMenu; 
     42} 
     43 
     44+ (void) refreshSmartTranscriptMenu { 
     45        extern NSMenu *smartTranscriptMenu; 
     46        if( ! smartTranscriptMenu ) smartTranscriptMenu = [[NSMenu alloc] initWithTitle:@""]; 
     47 
     48        NSMenuItem *menuItem = nil; 
     49        NSEnumerator *enumerator = [[[[smartTranscriptMenu itemArray] copy] autorelease] objectEnumerator]; 
     50        while( ( menuItem = [enumerator nextObject] ) ) 
     51                [smartTranscriptMenu removeItem:menuItem]; 
     52 
     53        NSURL *url = nil; 
     54        NSString *item = nil; 
     55        NSMutableArray *items = [NSMutableArray array]; 
     56 
     57/*      NSEnumerator *nameEnumerator = [items objectEnumerator]; 
     58        NSImage *icon = [[[NSImage imageNamed:@"room"] copy] autorelease]; 
     59        [icon setScalesWhenResized:YES]; 
     60        [icon setSize:NSMakeSize( 16., 16. )]; 
     61        enumerator = [rooms objectEnumerator]; 
     62        while( ( url = [enumerator nextObject] ) && ( item = [nameEnumerator nextObject] ) ) { 
     63                menuItem = [[[NSMenuItem alloc] initWithTitle:item action:@selector( _connectToFavorite: ) keyEquivalent:@""] autorelease]; 
     64                [menuItem setImage:icon]; 
     65                [menuItem setTarget:self]; 
     66                [menuItem setRepresentedObject:url]; 
     67                [smartTranscriptMenu addItem:menuItem]; 
     68        } */ 
     69 
     70        if( ! [items count] ) { 
     71                menuItem = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString( @"No Smart Transcripts", "no smart transcripts menu title" ) action:NULL keyEquivalent:@""] autorelease]; 
     72                [smartTranscriptMenu addItem:menuItem]; 
     73        } 
     74 
     75        [smartTranscriptMenu addItem:[NSMenuItem separatorItem]]; 
     76 
     77        menuItem = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString( @"New Smart Transcript...", "new smart transcript menu title" ) action:@selector( _newSmartTranscript: ) keyEquivalent:@"N"] autorelease]; 
     78        [menuItem setKeyEquivalentModifierMask:(NSCommandKeyMask | NSAlternateKeyMask)]; 
     79        [menuItem setTarget:[JVChatController defaultManager]]; 
     80        [smartTranscriptMenu addItem:menuItem]; 
    3481} 
    3582 
     
    198245                [_chatControllers addObject:ret]; 
    199246                [self _addViewControllerToPreferedWindowController:ret andFocus:YES]; 
     247        } 
     248        return [[ret retain] autorelease]; 
     249} 
     250 
     251#pragma mark - 
     252 
     253- (JVSmartTranscriptPanel *) newSmartTranscript { 
     254        JVSmartTranscriptPanel *ret = nil; 
     255        if( ( ret = [[[JVSmartTranscriptPanel alloc] initWithSettings:nil] autorelease] ) ) { 
     256                [_chatControllers addObject:ret]; 
     257                [self _addViewControllerToPreferedWindowController:ret andFocus:YES]; 
     258                [ret editSettings:nil]; 
    200259        } 
    201260        return [[ret retain] autorelease]; 
     
    457516} 
    458517 
     518- (IBAction) _newSmartTranscript:(id) sender { 
     519        [[JVChatController defaultManager] newSmartTranscript]; 
     520} 
    459521@end 
    460522 
  • trunk/JVDirectChatPanel.h

    r2371 r2463  
    77@class JVMutableChatMessage; 
    88@class JVBuddy; 
     9 
     10extern NSString *JVChatMessageWasProcessedNotification; 
    911 
    1012@interface JVDirectChatPanel : JVChatTranscriptPanel { 
  • trunk/JVDirectChatPanel.m

    r2452 r2463  
    100100static NSString *JVToolbarSendFileItemIdentifier = @"JVToolbarSendFileItem"; 
    101101 
     102NSString *JVChatMessageWasProcessedNotification = @"JVChatMessageWasProcessedNotification"; 
     103 
    102104@interface JVDirectChatPanel (JVDirectChatPrivate) <ABImageClient> 
    103105- (NSString *) _selfCompositeName; 
     
    756758                _newMessageCount--;              
    757759        } 
     760 
     761        [[NSNotificationCenter defaultCenter] postNotificationName:JVChatMessageWasProcessedNotification object:self userInfo:[NSDictionary dictionaryWithObject:newMessage forKey:@"message"]]; 
    758762 
    759763        [self _setCurrentMessage:nil]; 
  • trunk/Languages/Dutch.lproj/Colloquy.nib/info.nib

    r2241 r2463  
    1717        </array> 
    1818        <key>IBSystem Version</key> 
    19         <string>7S215</string> 
     19        <string>7W77</string> 
    2020</dict> 
    2121</plist> 
  • trunk/Languages/English.lproj/Colloquy.nib/info.nib

    r2241 r2463  
    1717        </array> 
    1818        <key>IBSystem Version</key> 
    19         <string>7S215</string> 
     19        <string>7W77</string> 
    2020</dict> 
    2121</plist> 
  • trunk/Languages/German.lproj/Colloquy.nib/info.nib

    r2241 r2463  
    1717        </array> 
    1818        <key>IBSystem Version</key> 
    19         <string>7S215</string> 
     19        <string>7W77</string> 
    2020</dict> 
    2121</plist> 
  • trunk/MVApplicationController.m

    r2437 r2463  
    321321 
    322322        [[[[[[NSApplication sharedApplication] mainMenu] itemAtIndex:1] submenu] itemWithTag:20] setSubmenu:[MVConnectionsController favoritesMenu]]; 
     323        [[[[[[NSApplication sharedApplication] mainMenu] itemAtIndex:1] submenu] itemWithTag:30] setSubmenu:[JVChatController smartTranscriptMenu]]; 
    323324 
    324325        NSRange range = NSRangeFromString( [[NSUserDefaults standardUserDefaults] stringForKey:@"JVFileTransferPortRange"] );