Changeset 4759
- Timestamp:
- 05/13/07 01:32:31 (1 year ago)
- Files:
-
- WiredClient/trunk/English.lproj/Preferences.nib/info.nib (modified) (1 diff)
- WiredClient/trunk/English.lproj/Preferences.nib/keyedobjects.nib (modified) (previous)
- WiredClient/trunk/English.lproj/ReleaseNotes.rtf (modified) (1 diff)
- WiredClient/trunk/WCPreferences.m (modified) (26 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
WiredClient/trunk/English.lproj/Preferences.nib/info.nib
r4631 r4759 16 16 </array> 17 17 <key>IBSystem Version</key> 18 <string>8L2127</string> 19 <key>IBUserGuides</key> 20 <dict> 21 <key>5</key> 22 <dict> 23 <key>guideLocations</key> 24 <array> 25 <string>Horizontal:234.000000</string> 26 </array> 27 <key>guidesLocked</key> 28 <false/> 29 </dict> 30 </dict> 18 <string>8P2137</string> 31 19 </dict> 32 20 </plist> WiredClient/trunk/English.lproj/ReleaseNotes.rtf
r4751 r4759 40 40 - Add function to overwrite existing file when starting a transfer\ 41 41 - Show ETA and path for transfers in user info\ 42 - Make preferences apply directly upon changing them\ 42 43 - Localization updates 43 44 \f0\b \cf2 \ WiredClient/trunk/WCPreferences.m
r4751 r4759 36 36 @interface WCPreferences(Private) 37 37 38 - (void)_addTouchActionsToSubviewsInView:(NSView *)view; 39 38 40 - (void)_validate; 39 41 … … 46 48 - (void)_loadSettings; 47 49 - (void)_saveSettings; 50 48 51 - (void)_selectBookmark; 49 52 - (void)_unselectBookmark; 50 - (void)_ updateEvents;53 - (void)_selectEvent; 51 54 - (void)_touchEvents; 52 55 - (void)_selectTrackerBookmark; 53 56 - (void)_unselectTrackerBookmark; 54 57 55 - (void)_setIcon:(NSImage *)icon;56 57 58 @end 58 59 59 60 60 61 @implementation WCPreferences(Private) 62 63 - (void)_addTouchActionsToSubviewsInView:(NSView *)view { 64 NSEnumerator *enumerator, *tabViewEnumerator; 65 NSTabViewItem *tabViewItem; 66 id subview; 67 68 enumerator = [[view subviews] objectEnumerator]; 69 70 while((subview = [enumerator nextObject])) { 71 if([subview isKindOfClass:[NSTabView class]]) { 72 tabViewEnumerator = [[subview tabViewItems] objectEnumerator]; 73 74 while((tabViewItem = [tabViewEnumerator nextObject])) { 75 [self _addTouchActionsToSubviewsInView:[tabViewItem view]]; 76 } 77 } else { 78 if([subview isKindOfClass:[NSControl class]]) { 79 if(![subview target]) { 80 [subview setTarget:self]; 81 [subview setAction:@selector(touch:)]; 82 } 83 } 84 85 [self _addTouchActionsToSubviewsInView:subview]; 86 } 87 } 88 } 89 90 91 92 #pragma mark - 61 93 62 94 - (void)_validate { … … 406 438 407 439 // --- events 408 [self _ updateEvents];440 [self _selectEvent]; 409 441 410 442 // --- files … … 426 458 427 459 - (void)_saveSettings { 460 NSMutableDictionary *event; 461 NSImage *image; 462 NSString *string; 463 NSData *data; 464 int tag; 465 428 466 // --- general 429 467 if(![[_nickTextField stringValue] isEqualToString:[WCSettings objectForKey:WCNick]]) { … … 435 473 [WCSettings setObject:[_statusTextField stringValue] forKey:WCStatus]; 436 474 [[NSNotificationCenter defaultCenter] postNotificationName:WCStatusDidChange]; 475 } 476 477 image = [_iconImageView image]; 478 479 if(image) { 480 data = [[NSBitmapImageRep imageRepWithData:[image TIFFRepresentation]] representationUsingType:NSPNGFileType properties:NULL]; 481 string = [data base64EncodedString]; 482 } else { 483 string = @""; 484 } 485 486 if(![string isEqualToString:[WCSettings objectForKey:WCCustomIcon]]) { 487 [WCSettings setObject:string forKey:WCCustomIcon]; 488 [[NSNotificationCenter defaultCenter] postNotificationName:WCIconDidChange]; 437 489 } 438 490 … … 476 528 [WCSettings setObject:[_previewTextColorWell color] forKey:WCPreviewTextColor]; 477 529 [WCSettings setObject:[_previewBackgroundColorWell color] forKey:WCPreviewBackgroundColor]; 478 479 // --- bookmarks480 [self _unselectBookmark];481 530 482 531 // --- chat … … 494 543 495 544 // --- events 496 [self _updateEvents]; 545 tag = [_eventsPopUpButton tagOfSelectedItem]; 546 event = [[WCSettings eventForTag:tag] mutableCopy]; 547 [event setInt:tag forKey:WCEventsEvent]; 548 [event setBool:[_playSoundButton state] forKey:WCEventsPlaySound]; 549 [event setObject:[_soundsPopUpButton titleOfSelectedItem] forKey:WCEventsSound]; 550 [event setBool:[_bounceInDockButton state] forKey:WCEventsBounceInDock]; 551 [event setBool:[_postInChatButton state] forKey:WCEventsPostInChat]; 552 [event setBool:[_showDialogButton state] forKey:WCEventsShowDialog]; 553 [WCSettings setEvent:event forTag:tag]; 554 [event release]; 497 555 498 556 // --- files … … 504 562 [WCSettings setBool:[_removeTransfersButton state] forKey:WCRemoveTransfers]; 505 563 506 // --- trackers507 [self _unselectTrackerBookmark];508 509 564 [[NSNotificationCenter defaultCenter] postNotificationName:WCPreferencesDidChange object:self]; 510 565 } 511 566 512 567 568 569 #pragma mark - 513 570 514 571 - (void)_selectBookmark { … … 616 673 617 674 618 - (void)_updateEvents { 619 NSMutableDictionary *newEvent; 620 NSDictionary *event; 621 int tag; 622 BOOL on; 623 624 if(_selectedEvent > 0) { 625 newEvent = [[WCSettings eventForTag:_selectedEvent] mutableCopy]; 626 [newEvent setInt:_selectedEvent forKey:WCEventsEvent]; 627 [newEvent setBool:[_playSoundButton state] forKey:WCEventsPlaySound]; 628 [newEvent setObject:[_soundsPopUpButton titleOfSelectedItem] forKey:WCEventsSound]; 629 [newEvent setBool:[_bounceInDockButton state] forKey:WCEventsBounceInDock]; 630 [newEvent setBool:[_postInChatButton state] forKey:WCEventsPostInChat]; 631 [newEvent setBool:[_showDialogButton state] forKey:WCEventsShowDialog]; 632 [WCSettings setEvent:newEvent forTag:_selectedEvent]; 633 [newEvent release]; 634 } 675 - (void)_selectEvent { 676 NSDictionary *event; 677 int tag; 678 BOOL on; 635 679 636 680 tag = [_eventsPopUpButton tagOfSelectedItem]; … … 652 696 653 697 [self _touchEvents]; 654 655 _selectedEvent = tag;656 698 } 657 699 … … 714 756 715 757 [trackerBookmark release]; 716 }717 718 719 720 #pragma mark -721 722 - (void)_setIcon:(NSImage *)icon {723 NSData *data;724 725 icon = [icon scaledImageWithSize:NSMakeSize(32.0, 32.0)];726 727 data = [[NSBitmapImageRep imageRepWithData:[icon TIFFRepresentation]] representationUsingType:NSPNGFileType properties:NULL];728 [WCSettings setObject:[data base64EncodedString] forKey:WCCustomIcon];729 730 [[NSNotificationCenter defaultCenter] postNotificationName:WCIconDidChange];731 732 [_iconImageView setImage:icon];733 758 } 734 759 … … 803 828 [[self window] center]; 804 829 830 [self _addTouchActionsToSubviewsInView:[[self window] contentView]]; 831 805 832 [self _loadSettings]; 806 833 [self _selectTab:@"General"]; 807 834 808 [_interfaceTabView selectFirstTabViewItem: NULL];809 [_chatTabView selectFirstTabViewItem: NULL];835 [_interfaceTabView selectFirstTabViewItem:self]; 836 [_chatTabView selectFirstTabViewItem:self]; 810 837 } 811 838 … … 813 840 814 841 - (void)windowWillClose:(NSNotification *)notification { 815 [self _saveSettings]; 842 [self _unselectBookmark]; 843 [self _unselectTrackerBookmark]; 816 844 } 817 845 … … 908 936 #pragma mark - 909 937 938 - (IBAction)showWindow:(id)sender { 939 [[self window] setTitle:[[_preferencesTabView selectedTabViewItem] label]]; 940 941 [super showWindow:self]; 942 } 943 944 945 946 #pragma mark - 947 910 948 - (void)selectToolbarItem:(id)sender { 911 949 NSTabViewItem *item; … … 919 957 920 958 921 - (void)changeChatFont:(id)sender { 922 NSFont *font; 923 924 font = [sender convertFont:[WCSettings objectForKey:WCChatFont]]; 925 [WCSettings setObject:font forKey:WCChatFont]; 926 [_chatFontTextField setStringValue:[font displayNameWithSize]]; 927 } 928 929 930 931 - (void)changeChatUserListFont:(id)sender { 932 NSFont *font; 933 934 font = [sender convertFont:[WCSettings objectForKey:WCChatUserListFont]]; 935 [WCSettings setObject:font forKey:WCChatUserListFont]; 936 [_chatUserListFontTextField setStringValue:[font displayNameWithSize]]; 937 } 938 939 940 941 - (void)changeMessagesFont:(id)sender { 942 NSFont *font; 943 944 font = [sender convertFont:[WCSettings objectForKey:WCMessagesFont]]; 945 [WCSettings setObject:font forKey:WCMessagesFont]; 946 [_messagesFontTextField setStringValue:[font displayNameWithSize]]; 947 } 948 949 950 951 - (void)changeMessagesListFont:(id)sender { 952 NSFont *font; 953 954 font = [sender convertFont:[WCSettings objectForKey:WCMessagesListFont]]; 955 [WCSettings setObject:font forKey:WCMessagesListFont]; 956 [_messagesListFontTextField setStringValue:[font displayNameWithSize]]; 957 } 958 959 960 961 - (void)changeNewsFont:(id)sender { 962 NSFont *font; 963 964 font = [sender convertFont:[WCSettings objectForKey:WCNewsFont]]; 965 [WCSettings setObject:font forKey:WCNewsFont]; 966 [_newsFontTextField setStringValue:[font displayNameWithSize]]; 967 968 font = [[NSFontManager sharedFontManager] convertFont:font toHaveTrait:NSBoldFontMask]; 969 [WCSettings setObject:font forKey:WCNewsTitlesFont]; 970 } 971 972 973 974 - (void)changeFilesFont:(id)sender { 975 NSFont *font; 976 977 font = [sender convertFont:[WCSettings objectForKey:WCFilesFont]]; 978 [WCSettings setObject:font forKey:WCFilesFont]; 979 [_filesFontTextField setStringValue:[font displayNameWithSize]]; 980 } 981 982 983 984 - (void)changePreviewFont:(id)sender { 985 NSFont *font; 986 987 font = [sender convertFont:[WCSettings objectForKey:WCPreviewFont]]; 988 [WCSettings setObject:font forKey:WCPreviewFont]; 989 [_previewFontTextField setStringValue:[font displayNameWithSize]]; 990 } 991 992 993 994 #pragma mark - 995 996 - (IBAction)showWindow:(id)sender { 997 [[self window] setTitle:[[_preferencesTabView selectedTabViewItem] label]]; 998 999 [super showWindow:self]; 959 - (void)touch:(id)sender { 960 [self _saveSettings]; 1000 961 } 1001 962 … … 1003 964 1004 965 - (IBAction)icon:(id)sender { 1005 [self _s etIcon:[_iconImageView image]];966 [self _saveSettings]; 1006 967 } 1007 968 … … 1034 995 image = [NSImage imageWithData:data]; 1035 996 1036 if(image) 1037 [self _setIcon:image]; 997 if(image) { 998 [_iconImageView setImage:[image scaledImageWithSize:NSMakeSize(32.0, 32.0)]]; 999 1000 [self _saveSettings]; 1001 } 1038 1002 } 1039 1003 } … … 1043 1007 - (IBAction)clearIcon:(id)sender { 1044 1008 [_iconImageView setImage:NULL]; 1045 1046 [WCSettings setObject:@"" forKey:WCCustomIcon]; 1047 [[NSNotificationCenter defaultCenter] postNotificationName:WCIconDidChange]; 1009 1010 [self _saveSettings]; 1048 1011 } 1049 1012 … … 1093 1056 1094 1057 1058 - (void)changeChatFont:(id)sender { 1059 NSFont *font; 1060 1061 font = [sender convertFont:[WCSettings objectForKey:WCChatFont]]; 1062 [WCSettings setObject:font forKey:WCChatFont]; 1063 [_chatFontTextField setStringValue:[font displayNameWithSize]]; 1064 1065 [self _saveSettings]; 1066 } 1067 1068 1069 1070 - (void)changeChatUserListFont:(id)sender { 1071 NSFont *font; 1072 1073 font = [sender convertFont:[WCSettings objectForKey:WCChatUserListFont]]; 1074 [WCSettings setObject:font forKey:WCChatUserListFont]; 1075 [_chatUserListFontTextField setStringValue:[font displayNameWithSize]]; 1076 1077 [self _saveSettings]; 1078 } 1079 1080 1081 1082 - (void)changeMessagesFont:(id)sender { 1083 NSFont *font; 1084 1085 font = [sender convertFont:[WCSettings objectForKey:WCMessagesFont]]; 1086 [WCSettings setObject:font forKey:WCMessagesFont]; 1087 [_messagesFontTextField setStringValue:[font displayNameWithSize]]; 1088 1089 [self _saveSettings]; 1090 } 1091 1092 1093 1094 - (void)changeMessagesListFont:(id)sender { 1095 NSFont *font; 1096 1097 font = [sender convertFont:[WCSettings objectForKey:WCMessagesListFont]]; 1098 [WCSettings setObject:font forKey:WCMessagesListFont]; 1099 [_messagesListFontTextField setStringValue:[font displayNameWithSize]]; 1100 1101 [self _saveSettings]; 1102 } 1103 1104 1105 1106 - (void)changeNewsFont:(id)sender { 1107 NSFont *font; 1108 1109 font = [sender convertFont:[WCSettings objectForKey:WCNewsFont]]; 1110 [WCSettings setObject:font forKey:WCNewsFont]; 1111 [_newsFontTextField setStringValue:[font displayNameWithSize]]; 1112 1113 [WCSettings setObject:[font boldFont] forKey:WCNewsTitlesFont]; 1114 1115 [self _saveSettings]; 1116 } 1117 1118 1119 1120 - (void)changeFilesFont:(id)sender { 1121 NSFont *font; 1122 1123 font = [sender convertFont:[WCSettings objectForKey:WCFilesFont]]; 1124 [WCSettings setObject:font forKey:WCFilesFont]; 1125 [_filesFontTextField setStringValue:[font displayNameWithSize]]; 1126 1127 [self _saveSettings]; 1128 } 1129 1130 1131 1132 - (void)changePreviewFont:(id)sender { 1133 NSFont *font; 1134 1135 font = [sender convertFont:[WCSettings objectForKey:WCPreviewFont]]; 1136 [WCSettings setObject:font forKey:WCPreviewFont]; 1137 [_previewFontTextField setStringValue:[font displayNameWithSize]]; 1138 1139 [self _saveSettings]; 1140 } 1141 1142 1143 1095 1144 - (IBAction)showColorPanel:(id)sender { 1096 1145 NSColorPanel *colorPanel; … … 1104 1153 colorPanel = [NSColorPanel sharedColorPanel]; 1105 1154 [colorPanel setTarget:self]; 1106 [colorPanel setAction:@selector( selectHighlightColor:)];1155 [colorPanel setAction:@selector(changeHighlightColor:)]; 1107 1156 [colorPanel setColor:NSColorFromString([[WCSettings highlightAtIndex:row] objectForKey:WCHighlightsColor])]; 1108 1157 [colorPanel makeKeyAndOrderFront:self]; … … 1111 1160 1112 1161 1113 - ( IBAction)selectHighlightColor:(id)sender {1162 - (void)changeHighlightColor:(id)sender { 1114 1163 NSMutableDictionary *highlight; 1115 1164 int row; … … 1127 1176 1128 1177 [_highlightsTableView reloadData]; 1178 1179 [self _saveSettings]; 1129 1180 } 1130 1181 } … … 1133 1184 1134 1185 - (IBAction)selectEvent:(id)sender { 1135 [self _ updateEvents];1186 [self _selectEvent]; 1136 1187 } 1137 1188 … … 1143 1194 if(sender == _playSoundButton && [_playSoundButton state]) 1144 1195 [NSSound playSoundNamed:[_soundsPopUpButton titleOfSelectedItem]]; 1196 1197 [self _saveSettings]; 1145 1198 } 1146 1199 … … 1149 1202 - (IBAction)selectSound:(id)sender { 1150 1203 [NSSound playSoundNamed:[_soundsPopUpButton titleOfSelectedItem]]; 1204 1205 [self _saveSettings]; 1151 1206 } 1152 1207 … … 1172 1227 1173 1228 - (void)downloadFolderPanelDidEnd:(NSOpenPanel *)openPanel returnCode:(int)returnCode contextInfo:(void *)contextInfo { 1174 if(returnCode == NSOKButton) 1229 if(returnCode == NSOKButton) { 1175 1230 [_downloadFolderTextField setStringValue:[[openPanel filename] stringByAbbreviatingWithTildeInPath]]; 1231 1232 [self _saveSettings]; 1233 } 1176 1234 } 1177 1235
