Changeset 3544
- Timestamp:
- 01/07/07 20:01:50 (2 years ago)
- Files:
-
- trunk/Controllers/JVChatWindowController.m (modified) (1 diff)
- trunk/Controllers/JVTabbedChatWindowController.m (modified) (1 diff)
- trunk/Controllers/MVBuddyListController.h (modified) (1 diff)
- trunk/Controllers/MVBuddyListController.m (modified) (6 diffs)
- trunk/Controllers/MVConnectionsController.m (modified) (1 diff)
- trunk/Languages/Dutch.lproj/MVBuddyList.nib/classes.nib (modified) (1 diff)
- trunk/Languages/Dutch.lproj/MVBuddyList.nib/info.nib (modified) (2 diffs)
- trunk/Languages/Dutch.lproj/MVBuddyList.nib/keyedobjects.nib (modified) (previous)
- trunk/Languages/English.lproj/MVBuddyList.nib/classes.nib (modified) (1 diff)
- trunk/Languages/English.lproj/MVBuddyList.nib/info.nib (modified) (2 diffs)
- trunk/Languages/English.lproj/MVBuddyList.nib/keyedobjects.nib (modified) (previous)
- trunk/Languages/French.lproj/MVBuddyList.nib/classes.nib (modified) (1 diff)
- trunk/Languages/French.lproj/MVBuddyList.nib/info.nib (modified) (2 diffs)
- trunk/Languages/French.lproj/MVBuddyList.nib/keyedobjects.nib (modified) (previous)
- trunk/Languages/German.lproj/MVBuddyList.nib/classes.nib (modified) (1 diff)
- trunk/Languages/German.lproj/MVBuddyList.nib/info.nib (modified) (2 diffs)
- trunk/Languages/German.lproj/MVBuddyList.nib/keyedobjects.nib (modified) (previous)
- trunk/Languages/Italian.lproj/MVBuddyList.nib/classes.nib (modified) (1 diff)
- trunk/Languages/Italian.lproj/MVBuddyList.nib/info.nib (modified) (2 diffs)
- trunk/Languages/Italian.lproj/MVBuddyList.nib/keyedobjects.nib (modified) (previous)
- trunk/Languages/Spanish.lproj/MVBuddyList.nib/classes.nib (modified) (1 diff)
- trunk/Languages/Spanish.lproj/MVBuddyList.nib/info.nib (modified) (2 diffs)
- trunk/Languages/Spanish.lproj/MVBuddyList.nib/keyedobjects.nib (modified) (previous)
- trunk/Languages/pt_PT.lproj/MVBuddyList.nib/classes.nib (modified) (1 diff)
- trunk/Languages/pt_PT.lproj/MVBuddyList.nib/info.nib (modified) (2 diffs)
- trunk/Languages/pt_PT.lproj/MVBuddyList.nib/keyedobjects.nib (modified) (previous)
- trunk/Languages/zh_TW.lproj/MVBuddyList.nib/classes.nib (modified) (1 diff)
- trunk/Languages/zh_TW.lproj/MVBuddyList.nib/info.nib (modified) (2 diffs)
- trunk/Languages/zh_TW.lproj/MVBuddyList.nib/keyedobjects.nib (modified) (previous)
- trunk/Panels/JVDirectChatPanel.h (modified) (1 diff)
- trunk/Panels/JVDirectChatPanel.m (modified) (5 diffs)
- trunk/Panels/MVChatUserAdditions.m (modified) (2 diffs)
- trunk/Plug-Ins/Standard Commands/JVStandardCommands.m (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Controllers/JVChatWindowController.m
r3471 r3544 962 962 NSArray *results = [[MVChatPluginManager defaultManager] makePluginsPerformInvocation:invocation]; 963 963 if( [results count] ) { 964 [menu addItem:[NSMenuItem separatorItem]]; 964 if( [menu numberOfItems ] && ! [[[menu itemArray] lastObject] isSeparatorItem] ) 965 [menu addItem:[NSMenuItem separatorItem]]; 965 966 966 967 NSArray *items = nil; trunk/Controllers/JVTabbedChatWindowController.m
r3471 r3544 287 287 NSArray *results = [[MVChatPluginManager defaultManager] makePluginsPerformInvocation:invocation]; 288 288 if( [results count] ) { 289 [menu addItem:[NSMenuItem separatorItem]]; 289 if( [menu numberOfItems ] && ! [[[menu itemArray] lastObject] isSeparatorItem] ) 290 [menu addItem:[NSMenuItem separatorItem]]; 290 291 291 292 NSArray *items = nil; trunk/Controllers/MVBuddyListController.h
r3492 r3544 18 18 @private 19 19 IBOutlet MVTableView *buddies; 20 IBOutlet NSMenu *actionMenu;21 20 IBOutlet NSButton *sendMessageButton; 21 IBOutlet NSButton *actionButton; 22 22 IBOutlet NSButton *infoButton; 23 23 trunk/Controllers/MVBuddyListController.m
r3500 r3544 1 1 #import "MVBuddyListController.h" 2 2 3 #import "JVBuddy.h" 3 4 #import "JVChatController.h" 5 #import "JVDetailCell.h" 6 #import "JVInspectorController.h" 7 #import "JVNotificationController.h" 8 #import "MVChatUserAdditions.h" 4 9 #import "MVConnectionsController.h" 5 10 #import "MVFileTransferController.h" 6 #import "JVNotificationController.h"7 #import "JVInspectorController.h"8 11 #import "MVTableView.h" 9 #import "JVDetailCell.h"10 12 11 13 static MVBuddyListController *sharedInstance = nil; … … 17 19 - (void) _setBuddiesNeedSortAnimated; 18 20 - (void) _sortBuddiesAnimated:(id) sender; 21 - (NSMenu *) _menuForBuddy:(JVBuddy *) buddy; 19 22 @end 20 23 … … 386 389 - (IBAction) sendFileToSelectedBuddy:(id) sender { 387 390 if( [buddies selectedRow] == -1 ) return; 388 BOOL passive = [[NSUserDefaults standardUserDefaults] boolForKey:@"JVSendFilesPassively"];389 391 JVBuddy *buddy = [_buddyOrder objectAtIndex:[buddies selectedRow]]; 390 392 MVChatUser *user = [buddy activeUser]; 391 if( [user type] != MVChatRemoteUserType ) return; 392 393 NSOpenPanel *panel = [NSOpenPanel openPanel]; 394 [panel setResolvesAliases:YES]; 395 [panel setCanChooseFiles:YES]; 396 [panel setCanChooseDirectories:NO]; 397 [panel setAllowsMultipleSelection:YES]; 398 399 NSView *view = [[NSView alloc] initWithFrame:NSMakeRect( 0., 0., 200., 28. )]; 400 [view setAutoresizingMask:( NSViewWidthSizable | NSViewMaxXMargin )]; 401 402 NSButton *passiveButton = [[NSButton alloc] initWithFrame:NSMakeRect( 0., 6., 200., 18. )]; 403 [[passiveButton cell] setButtonType:NSSwitchButton]; 404 [passiveButton setState:passive]; 405 [passiveButton setTitle:NSLocalizedString( @"Send File Passively", "send files passively file send open dialog button" )]; 406 [passiveButton sizeToFit]; 407 408 NSRect frame = [view frame]; 409 frame.size.width = NSWidth( [passiveButton frame] ); 410 411 [view setFrame:frame]; 412 [view addSubview:passiveButton]; 413 [passiveButton release]; 414 415 [panel setAccessoryView:view]; 416 [view release]; 417 418 if( [panel runModalForTypes:nil] == NSOKButton ) { 419 NSEnumerator *enumerator = [[panel filenames] objectEnumerator]; 420 passive = [passiveButton state]; 421 NSString *path = nil; 422 while( ( path = [enumerator nextObject] ) ) 423 [[MVFileTransferController defaultController] addFileTransfer:[user sendFile:path passively:passive]]; 424 } 393 [user sendFile:sender]; 425 394 } 426 395 … … 737 706 738 707 - (NSMenu *) tableView:(MVTableView *) tableView menuForTableColumn:(NSTableColumn *) tableColumn row:(int) row { 739 if( tableView != buddies ) return nil; 740 741 NSMenu *menu = [actionMenu copyWithZone:[self zone]]; 708 if( tableView != buddies || row == -1 || row >= (int)[_buddyOrder count] ) return nil; 742 709 JVBuddy *buddy = [_buddyOrder objectAtIndex:row]; 743 744 NSMethodSignature *signature = [NSMethodSignature methodSignatureWithReturnAndArgumentTypes:@encode( NSArray * ), @encode( id ), @encode( id ), nil]; 745 NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; 746 id view = nil; 747 748 [invocation setSelector:@selector( contextualMenuItemsForObject:inView: )]; 749 [invocation setArgument:&buddy atIndex:2]; 750 [invocation setArgument:&view atIndex:3]; 751 752 NSArray *results = [[MVChatPluginManager defaultManager] makePluginsPerformInvocation:invocation]; 753 if( [results count] ) { 754 [menu addItem:[NSMenuItem separatorItem]]; 755 756 NSArray *items = nil; 757 NSMenuItem *item = nil; 758 NSEnumerator *enumerator = [results objectEnumerator]; 759 while( ( items = [enumerator nextObject] ) ) { 760 if( ! [items respondsToSelector:@selector( objectEnumerator )] ) continue; 761 NSEnumerator *ienumerator = [items objectEnumerator]; 762 while( ( item = [ienumerator nextObject] ) ) 763 if( [item isKindOfClass:[NSMenuItem class]] ) [menu addItem:item]; 764 } 765 766 if( [[[menu itemArray] lastObject] isSeparatorItem] ) 767 [menu removeItem:[[menu itemArray] lastObject]]; 768 } 769 770 return [menu autorelease]; 710 return [self _menuForBuddy:buddy]; 771 711 } 772 712 … … 802 742 [sendMessageButton setEnabled:enabled]; 803 743 [infoButton setEnabled:enabled]; 744 [actionButton setEnabled:enabled]; 745 746 if( [buddies selectedRow] != -1 ) { 747 JVBuddy *buddy = [_buddyOrder objectAtIndex:[buddies selectedRow]]; 748 [actionButton setMenu:[self _menuForBuddy:buddy]]; 749 } else { 750 [actionButton setMenu:nil]; 751 } 752 804 753 [[JVInspectorController sharedInspector] inspectObject:[self objectToInspect]]; 805 754 } … … 1084 1033 [list release]; 1085 1034 } 1035 1036 - (NSMenu *) _menuForBuddy:(JVBuddy *) buddy { 1037 NSMenu *menu = [[NSMenu alloc] initWithTitle:@""]; 1038 NSMenuItem *item = nil; 1039 1040 NSArray *standardItems = [[buddy activeUser] standardMenuItems]; 1041 NSEnumerator *enumerator = [standardItems objectEnumerator]; 1042 while( ( item = [enumerator nextObject] ) ) { 1043 if( [item action] == @selector( addBuddy: ) ) 1044 continue; 1045 if( [item action] == @selector( toggleIgnore: ) ) 1046 continue; 1047 [menu addItem:item]; 1048 } 1049 1050 NSMethodSignature *signature = [NSMethodSignature methodSignatureWithReturnAndArgumentTypes:@encode( NSArray * ), @encode( id ), @encode( id ), nil]; 1051 NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; 1052 id view = nil; 1053 1054 [invocation setSelector:@selector( contextualMenuItemsForObject:inView: )]; 1055 [invocation setArgument:&buddy atIndex:2]; 1056 [invocation setArgument:&view atIndex:3]; 1057 1058 NSArray *results = [[MVChatPluginManager defaultManager] makePluginsPerformInvocation:invocation]; 1059 if( [results count] ) { 1060 if( [menu numberOfItems ] && ! [[[menu itemArray] lastObject] isSeparatorItem] ) 1061 [menu addItem:[NSMenuItem separatorItem]]; 1062 1063 NSArray *items = nil; 1064 NSMenuItem *item = nil; 1065 NSEnumerator *enumerator = [results objectEnumerator]; 1066 while( ( items = [enumerator nextObject] ) ) { 1067 if( ! [items respondsToSelector:@selector( objectEnumerator )] ) continue; 1068 NSEnumerator *ienumerator = [items objectEnumerator]; 1069 while( ( item = [ienumerator nextObject] ) ) 1070 if( [item isKindOfClass:[NSMenuItem class]] ) [menu addItem:item]; 1071 } 1072 1073 if( [[[menu itemArray] lastObject] isSeparatorItem] ) 1074 [menu removeItem:[[menu itemArray] lastObject]]; 1075 } 1076 1077 return [menu autorelease]; 1078 } 1086 1079 @end 1087 1080 trunk/Controllers/MVConnectionsController.m
r3524 r3544 1115 1115 NSArray *results = [[MVChatPluginManager defaultManager] makePluginsPerformInvocation:invocation]; 1116 1116 if( [results count] ) { 1117 [menu addItem:[NSMenuItem separatorItem]]; 1117 if( [menu numberOfItems ] && ! [[[menu itemArray] lastObject] isSeparatorItem] ) 1118 [menu addItem:[NSMenuItem separatorItem]]; 1118 1119 1119 1120 NSArray *items = nil; trunk/Languages/Dutch.lproj/MVBuddyList.nib/classes.nib
r3501 r3544 28 28 LANGUAGE = ObjC; 29 29 OUTLETS = { 30 action Menu = NSMenu;30 actionButton = NSButton; 31 31 addButton = NSButton; 32 32 buddies = MVTableView; trunk/Languages/Dutch.lproj/MVBuddyList.nib/info.nib
r3501 r3544 9 9 <key>148</key> 10 10 <string>552 603 220 194 0 0 1280 832 </string> 11 <key>168</key>12 <string>460 587 132 99 0 0 1440 878 </string>13 11 </dict> 14 12 <key>IBFramework Version</key> … … 18 16 <key>IBOpenObjects</key> 19 17 <array> 20 <integer>115</integer> 21 <integer>80</integer> 18 <integer>41</integer> 22 19 </array> 23 20 <key>IBSystem Version</key> trunk/Languages/English.lproj/MVBuddyList.nib/classes.nib
r3488 r3544 28 28 LANGUAGE = ObjC; 29 29 OUTLETS = { 30 action Menu = NSMenu;30 actionButton = NSButton; 31 31 addButton = NSButton; 32 32 buddies = MVTableView; trunk/Languages/English.lproj/MVBuddyList.nib/info.nib
r3488 r3544 8 8 <dict> 9 9 <key>148</key> 10 <string>552 603 220 194 0 0 1280 832 </string> 11 <key>168</key> 12 <string>460 587 132 99 0 0 1440 878 </string> 10 <string>636 649 234 226 0 0 1440 878 </string> 13 11 </dict> 14 12 <key>IBFramework Version</key> … … 18 16 <key>IBOpenObjects</key> 19 17 <array> 18 <integer>80</integer> 20 19 <integer>115</integer> 21 <integer> 80</integer>22 <integer> 168</integer>20 <integer>148</integer> 21 <integer>41</integer> 23 22 </array> 24 23 <key>IBSystem Version</key> trunk/Languages/French.lproj/MVBuddyList.nib/classes.nib
r3501 r3544 28 28 LANGUAGE = ObjC; 29 29 OUTLETS = { 30 action Menu = NSMenu;30 actionButton = NSButton; 31 31 addButton = NSButton; 32 32 buddies = MVTableView; trunk/Languages/French.lproj/MVBuddyList.nib/info.nib
r3501 r3544 9 9 <key>148</key> 10 10 <string>552 603 220 194 0 0 1280 832 </string> 11 <key>168</key>12 <string>460 587 132 99 0 0 1440 878 </string>13 11 </dict> 14 12 <key>IBFramework Version</key> … … 18 16 <key>IBOpenObjects</key> 19 17 <array> 20 <integer>115</integer>21 <integer>80</integer>22 18 <integer>41</integer> 23 19 </array> trunk/Languages/German.lproj/MVBuddyList.nib/classes.nib
r3501 r3544 28 28 LANGUAGE = ObjC; 29 29 OUTLETS = { 30 action Menu = NSMenu;30 actionButton = NSButton; 31 31 addButton = NSButton; 32 32 buddies = MVTableView; trunk/Languages/German.lproj/MVBuddyList.nib/info.nib
r3501 r3544 9 9 <key>148</key> 10 10 <string>552 603 220 194 0 0 1280 832 </string> 11 <key>168</key>12 <string>460 587 132 99 0 0 1440 878 </string>13 11 </dict> 14 12 <key>IBFramework Version</key> … … 19 17 <array> 20 18 <integer>115</integer> 19 <integer>41</integer> 21 20 </array> 22 21 <key>IBSystem Version</key> trunk/Languages/Italian.lproj/MVBuddyList.nib/classes.nib
r3501 r3544 28 28 LANGUAGE = ObjC; 29 29 OUTLETS = { 30 action Menu = NSMenu;30 actionButton = NSButton; 31 31 addButton = NSButton; 32 32 buddies = MVTableView; trunk/Languages/Italian.lproj/MVBuddyList.nib/info.nib
r3501 r3544 9 9 <key>148</key> 10 10 <string>552 603 220 194 0 0 1280 832 </string> 11 <key>168</key>12 <string>460 587 173 99 0 0 1440 878 </string>13 11 </dict> 14 12 <key>IBFramework Version</key> … … 18 16 <key>IBOpenObjects</key> 19 17 <array> 20 <integer>168</integer> 21 <integer>115</integer> 18 <integer>41</integer> 22 19 </array> 23 20 <key>IBSystem Version</key> trunk/Languages/Spanish.lproj/MVBuddyList.nib/classes.nib
r3501 r3544 28 28 LANGUAGE = ObjC; 29 29 OUTLETS = { 30 action Menu = NSMenu;30 actionButton = NSButton; 31 31 addButton = NSButton; 32 32 buddies = MVTableView; trunk/Languages/Spanish.lproj/MVBuddyList.nib/info.nib
r3501 r3544 9 9 <key>148</key> 10 10 <string>552 603 220 194 0 0 1280 832 </string> 11 <key>168</key>12 <string>460 587 177 99 0 0 1440 878 </string>13 11 </dict> 14 12 <key>IBFramework Version</key> … … 18 16 <key>IBOpenObjects</key> 19 17 <array> 20 <integer>115</integer>21 <integer>168</integer>22 18 <integer>41</integer> 23 <integer>80</integer>24 19 </array> 25 20 <key>IBSystem Version</key> trunk/Languages/pt_PT.lproj/MVBuddyList.nib/classes.nib
r3501 r3544 28 28 LANGUAGE = ObjC; 29 29 OUTLETS = { 30 action Menu = NSMenu;30 actionButton = NSButton; 31 31 addButton = NSButton; 32 32 buddies = MVTableView; trunk/Languages/pt_PT.lproj/MVBuddyList.nib/info.nib
r3501 r3544 9 9 <key>148</key> 10 10 <string>552 603 220 194 0 0 1280 832 </string> 11 <key>168</key>12 <string>460 587 132 99 0 0 1440 878 </string>13 11 </dict> 14 12 <key>IBFramework Version</key> … … 18 16 <key>IBOpenObjects</key> 19 17 <array> 20 <integer>115</integer>21 <integer>80</integer>22 18 <integer>41</integer> 23 19 </array> trunk/Languages/zh_TW.lproj/MVBuddyList.nib/classes.nib
r3501 r3544 28 28 LANGUAGE = ObjC; 29 29 OUTLETS = { 30 action Menu = NSMenu;30 actionButton = NSButton; 31 31 addButton = NSButton; 32 32 buddies = MVTableView; trunk/Languages/zh_TW.lproj/MVBuddyList.nib/info.nib
r3501 r3544 9 9 <key>148</key> 10 10 <string>552 603 220 194 0 0 1280 832 </string> 11 <key>168</key>12 <string>460 587 132 99 0 0 1440 878 </string>13 11 </dict> 14 12 <key>IBFramework Version</key> … … 16 14 <key>IBLockedObjects</key> 17 15 <array/> 16 <key>IBOpenObjects</key> 17 <array> 18 <integer>41</integer> 19 </array> 18 20 <key>IBSystem Version</key> 19 21 <string>9A321</string> trunk/Panels/JVDirectChatPanel.h
r3072 r3544 45 45 - (id) initWithTarget:(id) target; 46 46 - (id) target; 47 - (MVChatUser *) user; 47 48 - (NSURL *) url; 48 49 trunk/Panels/JVDirectChatPanel.m
r3539 r3544 1 #import "JVDirectChatPanel.h" 2 3 #import "JVBuddy.h" 1 4 #import "JVChatController.h" 5 #import "JVChatEvent.h" 6 #import "JVChatMessage.h" 7 #import "JVChatRoomMember.h" 8 #import "JVChatRoomPanel.h" 9 #import "JVChatTranscript.h" 10 #import "JVChatUserInspector.h" 11 #import "JVEmoticonSet.h" 12 #import "JVMarkedScroller.h" 13 #import "JVNotificationController.h" 14 #import "JVSQLChatTranscript.h" 15 #import "JVSpeechController.h" 16 #import "JVSplitView.h" 17 #import "JVStyle.h" 18 #import "JVStyleView.h" 19 #import "JVTabbedChatWindowController.h" 2 20 #import "KAIgnoreRule.h" 3 #import "JVTabbedChatWindowController.h" 4 #import "JVStyle.h" 5 #import "JVEmoticonSet.h" 6 #import "JVChatRoomPanel.h" 7 #import "JVChatRoomMember.h" 8 #import "JVChatTranscript.h" 9 #import "JVSQLChatTranscript.h" 10 #import "JVChatMessage.h" 11 #import "JVChatEvent.h" 12 #import "JVNotificationController.h" 21 #import "MVBuddyListController.h" 22 #import "MVChatUserAdditions.h" 13 23 #import "MVConnectionsController.h" 14 #import "JVDirectChatPanel.h"15 #import "MVBuddyListController.h"16 24 #import "MVFileTransferController.h" 17 #import " JVBuddy.h"25 #import "MVMenuButton.h" 18 26 #import "MVTextView.h" 19 #import "MVMenuButton.h" 20 #import "JVMarkedScroller.h" 21 #import "JVSplitView.h" 22 #import "JVStyleView.h" 27 #import "NSAttributedStringMoreAdditions.h" 23 28 #import "NSBundleAdditions.h" 24 29 #import "NSURLAdditions.h" 25 #import "NSAttributedStringMoreAdditions.h"26 #import "JVSpeechController.h"27 #import "JVChatUserInspector.h"28 30 29 31 static NSSet *actionVerbs = nil; … … 334 336 } 335 337 338 - (MVChatUser *) user { 339 if( [[self target] isKindOfClass:[MVChatUser class]] ) 340 return [self target]; 341 if( [[self target] isKindOfClass:[MVDirectChatConnection class]] ) 342 return [(MVDirectChatConnection *)[self target] user]; 343 return nil; 344 } 345 336 346 - (NSURL *) url { 337 347 NSString *server = [[[self connection] url] absoluteString]; … … 407 417 408 418 - (NSMenu *) menu { 409 NSMenu *menu = [[ [NSMenu alloc] initWithTitle:@""] autorelease];419 NSMenu *menu = [[NSMenu alloc] initWithTitle:@""]; 410 420 NSMenuItem *item = nil; 411 421 412 item = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString( @"Get Info", "get info contextual menu item title" ) action:@selector( getInfo: ) keyEquivalent:@""] autorelease]; 413 [item setTarget:self]; 414 [menu addItem:item]; 415 416 /* item = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString( @"Add to Favorites", "add to favorites contextual menu") action:@selector( addToFavorites: ) keyEquivalent:@""] autorelease]; 417 [item setTarget:self]; 418 [menu addItem:item]; */ 419 420 if( ! [[MVBuddyListController sharedBuddyList] buddyForUser:[self target]] ) { 421 item = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString( @"Add To Buddy List", "add to buddy list contextual menu") action:@selector( addBuddy: ) keyEquivalent:@""] autorelease]; 422 [item setTarget:self]; 423 [menu addItem:item]; 424 } 425 426 item = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString( @"Send File...", "send file contextual menu") action:@selector( _sendFile: ) keyEquivalent:@""] autorelease]; 427 [item setTarget:self]; 428 [menu addItem:item]; 422 NSArray *standardItems = [[self user] standardMenuItems]; 423 NSEnumerator *enumerator = [standardItems objectEnumerator]; 424 while( ( item = [enumerator nextObject] ) ) 425 if( [item action] != @selector( startDirectChat: ) ) 426 [menu addItem:item]; 429 427 430 428 [menu addItem:[NSMenuItem separatorItem]]; 431 429 432 430 if( [[[self windowController] allChatViewControllers] count] > 1 ) { 433 item = [[ [NSMenuItem alloc] initWithTitle:NSLocalizedString( @"Detach From Window", "detach from window contextual menu item title" ) action:@selector( detachView: ) keyEquivalent:@""] autorelease];431 item = [[NSMenuItem alloc] initWithTitle:NSLocalizedString( @"Detach From Window", "detach from window contextual menu item title" ) action:@selector( detachView: ) keyEquivalent:@""]; 434 432 [item setRepresentedObject:self]; 435 433 [item setTarget:[JVChatController defaultController]]; 436 434 [menu addItem:item]; 437 } 438 439 item = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString( @"Close", "close contextual menu item title" ) action:@selector( close: ) keyEquivalent:@""] autorelease]; 435 [item release]; 436 } 437 438 if( [[self target] isKindOfClass:[MVDirectChatConnection class]] ) { 439 item = [[NSMenuItem alloc] initWithTitle:NSLocalizedString( @"Disconnect", "disconnect contextual menu item title" ) action:@selector( disconnect ) keyEquivalent:@""]; 440 [item setTarget:[self target]]; 441 [menu addItem:item]; 442 [item release]; 443 } 444 445 item = [[NSMenuItem alloc] initWithTitle:NSLocalizedString( @"Close", "close contextual menu item title" ) action:@selector( close: ) keyEquivalent:@""]; 440 446 [item setTarget:self]; 441 447 [menu addItem:item]; 442 443 return menu; 448 [item release]; 449 450 return [menu autorelease]; 444 451 } 445 452 … … 1366 1373 [toolbarItem setImage:[NSImage imageNamed:@"fileSend"]]; 1367 1374 1368 [toolbarItem setTarget: self];1369 [toolbarItem setAction:@selector( _sendFile: )];1375 [toolbarItem setTarget:[self user]]; 1376 [toolbarItem setAction:@selector( sendFile: )]; 1370 1377 1371 1378 return [toolbarItem autorelease]; … … 1737 1744 } 1738 1745 1739 - (IBAction) _sendFile:(id) sender {1740 BOOL passive = [[NSUserDefaults standardUserDefaults] boolForKey:@"JVSendFilesPassively"];1741 NSString *path = nil;1742 NSOpenPanel *panel = [NSOpenPanel openPanel];1743 [panel setResolvesAliases:YES];1744 [panel setCanChooseFiles:YES];1745 [panel setCanChooseDirectories:NO];1746 [panel setAllowsMultipleSelection:YES];1747 1748 NSView *view = [[[NSView alloc] initWithFrame:NSMakeRect( 0., 0., 200., 28. )] autorelease];1749 [view setAutoresizingMask:( NSViewWidthSizable | NSViewMaxXMargin )];1750 1751 NSButton *passiveButton = [[[NSButton alloc] initWithFrame:NSMakeRect( 0., 6., 200., 18. )] autorelease];1752 [[passiveButton cell] setButtonType:NSSwitchButton];1753 [passiveButton setState:passive];1754 [passiveButton setTitle:NSLocalizedString( @"Send File Passively", "send files passively file send open dialog button" )];1755 [passiveButton sizeToFit];1756 1757 NSRect frame = [view frame];1758 frame.size.width = NSWidth( [passiveButton frame] );1759 1760 [view setFrame:frame];1761 [view addSubview:passiveButton];1762 1763 [panel setAccessoryView:view];1764 1765 if( [panel runModalForTypes:nil] == NSOKButton ) {1766 NSEnumerator *enumerator = [[panel filenames] objectEnumerator];1767 passive = [passiveButton state];1768 while( ( path = [enumerator nextObject] ) )1769 [[MVFileTransferController defaultController] addFileTransfer:[[self target] sendFile:path passively:passive]];1770 }1771 }1772 1773 1746 - (void) _setCurrentMessage:(JVMutableChatMessage *) message { 1774 1747 [_currentMessage setObjectSpecifier:nil]; trunk/Panels/MVChatUserAdditions.m
r3543 r3544 131 131 [panel setAllowsMultipleSelection:YES]; 132 132 133 NSView *view = [[ [NSView alloc] initWithFrame:NSMakeRect( 0., 0., 200., 28. )] autorelease];133 NSView *view = [[NSView alloc] initWithFrame:NSMakeRect( 0., 0., 200., 28. )]; 134 134 [view setAutoresizingMask:( NSViewWidthSizable | NSViewMaxXMargin )]; 135 135 136 NSButton *passiveButton = [[ [NSButton alloc] initWithFrame:NSMakeRect( 0., 6., 200., 18. )] autorelease];136 NSButton *passiveButton = [[NSButton alloc] initWithFrame:NSMakeRect( 0., 6., 200., 18. )]; 137 137 [[passiveButton cell] setButtonType:NSSwitchButton]; 138 138 [passiveButton setState:passive]; … … 145 145 [view setFrame:frame]; 146 146 [view addSubview:passiveButton]; 147 [passiveButton release]; 147 148 148 149 [panel setAccessoryView:view]; 150 [view release]; 149 151 150 152 if( [panel runModalForTypes:nil] == NSOKButton ) { trunk/Plug-Ins/Standard Commands/JVStandardCommands.m
r3539 r3544 433 433 434 434 if( ! [path length] ) { 435 NSOpenPanel *panel = [NSOpenPanel openPanel]; 436 [panel setResolvesAliases:YES]; 437 [panel setCanChooseFiles:YES]; 438 [panel setCanChooseDirectories:NO]; 439 [panel setAllowsMultipleSelection:YES]; 440 if( [panel runModalForTypes:nil] == NSOKButton ) { 441 NSEnumerator *enumerator = [[panel filenames] objectEnumerator]; 442 while( ( path = [enumerator nextObject] ) ) 443 [[MVFileTransferController defaultController] addFileTransfer:[user sendFile:path passively:passive]]; 444 } 435 [user sendFile:nil]; 445 436 } else [[MVFileTransferController defaultController] addFileTransfer:[user sendFile:path passively:passive]]; 437 446 438 return YES; 447 439 }
