Changeset 4465
- Timestamp:
- 02/01/07 11:32:29 (2 years ago)
- Files:
-
- Footagehead/trunk/English.lproj/MainMenu.nib/classes.nib (modified) (3 diffs)
- Footagehead/trunk/English.lproj/MainMenu.nib/info.nib (modified) (1 diff)
- Footagehead/trunk/English.lproj/MainMenu.nib/keyedobjects.nib (modified) (previous)
- Footagehead/trunk/English.lproj/MainMenu.nib/objects.nib (modified) (previous)
- Footagehead/trunk/English.lproj/ReleaseNotes.rtf (modified) (1 diff)
- Footagehead/trunk/FHController.h (modified) (2 diffs)
- Footagehead/trunk/FHController.m (modified) (8 diffs)
- Footagehead/trunk/FHFeedHandler.m (modified) (6 diffs)
- Footagehead/trunk/FHHandler.m (modified) (1 diff)
- Footagehead/trunk/FHLHAHandler.m (modified) (1 diff)
- Footagehead/trunk/FHSettings.h (modified) (1 diff)
- Footagehead/trunk/FHSettings.m (modified) (1 diff)
- Footagehead/trunk/Footagehead.xcodeproj/project.pbxproj (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
Footagehead/trunk/English.lproj/MainMenu.nib/classes.nib
r3944 r4465 24 24 setAsDesktopPicture = id; 25 25 slideshow = id; 26 toggleStatusBar = id; 26 27 zoom = id; 27 28 }; … … 29 30 LANGUAGE = ObjC; 30 31 OUTLETS = { 32 "_contentBox" = NSBox; 31 33 "_fileTableColumn" = NSTableColumn; 32 34 "_fullscreenImageView" = FHImageView; … … 54 56 "_scrollView" = NSScrollView; 55 57 "_splitView" = WISplitView; 58 "_statusBox" = NSBox; 56 59 "_tableView" = WITableView; 60 "_toggleStatusBarMenuItem" = NSMenuItem; 61 "_viewMenu" = NSMenu; 57 62 "_zoomButton" = NSButton; 58 63 }; Footagehead/trunk/English.lproj/MainMenu.nib/info.nib
r4095 r4465 4 4 <dict> 5 5 <key>IBDocumentLocation</key> 6 <string>8 91 10395 374 0 0 1920 1178 </string>6 <string>860 245 395 374 0 0 1920 1178 </string> 7 7 <key>IBEditorPositions</key> 8 8 <dict> 9 9 <key>29</key> 10 <string> 373 800 31744 0 0 1920 1178 </string>10 <string>854 978 365 44 0 0 1920 1178 </string> 11 11 <key>592</key> 12 12 <string>118 501 223 118 0 0 1280 1002 </string> 13 13 </dict> 14 14 <key>IBFramework Version</key> 15 <string>44 3.0</string>15 <string>446.1</string> 16 16 <key>IBOldestOS</key> 17 17 <integer>3</integer> 18 18 <key>IBOpenObjects</key> 19 19 <array> 20 <integer>29</integer> 21 <integer>21</integer> 20 22 <integer>302</integer> 21 23 </array> 22 24 <key>IBSystem Version</key> 23 <string>8 I127</string>25 <string>8L127</string> 24 26 </dict> 25 27 </plist> Footagehead/trunk/English.lproj/ReleaseNotes.rtf
r4369 r4465 425 425 \f0\b \cf3 \ 426 426 \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural 427 \cf2 1.2.2 427 \cf2 1.2.3 428 \f1\b0 \cf0 \ 429 - Add support for LHA/LZH/tar formats\ 430 431 \f0\b \cf2 \ 432 1.2.2 428 433 \f1\b0 \cf0 \ 429 434 - Fix a bug that prevented auto switch from working\ Footagehead/trunk/FHController.h
r4085 r4465 33 33 IBOutlet NSMenuItem *_openSpotlightMenuItem; 34 34 35 IBOutlet NSMenu *_viewMenu; 36 IBOutlet NSMenuItem *_toggleStatusBarMenuItem; 37 38 IBOutlet NSBox *_contentBox; 39 IBOutlet NSBox *_statusBox; 40 35 41 IBOutlet WISplitView *_splitView; 36 42 IBOutlet NSView *_leftView; … … 111 117 - (IBAction)setAsDesktopPicture:(id)sender; 112 118 - (IBAction)delete:(id)sender; 119 - (IBAction)toggleStatusBar:(id)sender; 113 120 114 121 @end Footagehead/trunk/FHController.m
r4368 r4465 72 72 - (void)_updateFullscreenStatus; 73 73 - (void)_updateTableView; 74 75 - (void)_toggleStatusBar:(BOOL)show; 74 76 75 77 @end … … 788 790 } 789 791 792 793 794 #pragma mark - 795 796 - (void)_toggleStatusBar:(BOOL)show { 797 NSRect windowFrame, contentFrame; 798 float height; 799 800 windowFrame = [[self window] frame]; 801 contentFrame = [_contentBox frame]; 802 height = [_statusBox frame].size.height; 803 804 if(show) { 805 contentFrame.origin.y = height; 806 windowFrame.origin.y -= height; 807 windowFrame.size.height += height; 808 } else { 809 contentFrame.origin.y = 0.0; 810 windowFrame.origin.y += height; 811 windowFrame.size.height -= height; 812 } 813 814 [_statusBox setHidden:!show]; 815 [_contentBox setFrameOrigin:contentFrame.origin]; 816 817 NSLog(@"1 %@", NSStringFromRect([_contentBox frame])); 818 819 [[[self window] contentView] setAutoresizesSubviews:NO]; 820 // [_contentBox setAutoresizingMask:NSViewNotSizable]; 821 [[self window] setFrame:windowFrame display:YES animate:YES]; 822 // [_contentBox setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; 823 [[[self window] contentView] setAutoresizesSubviews:YES]; 824 825 NSLog(@"2 %@", NSStringFromRect([_contentBox frame])); 826 } 827 790 828 @end 791 829 … … 847 885 // --- set up URL panel 848 886 [_openURLPopUpButton selectItemWithTag:[FHSettings intForKey:FHHTMLImageType]]; 887 888 // --- set up status bar 889 if(![FHSettings boolForKey:FHShowStatusBar]) 890 [self _toggleStatusBar:NO]; 849 891 850 892 // --- create locks … … 1114 1156 1115 1157 return handled; 1158 } 1159 1160 1161 1162 - (void)menuNeedsUpdate:(NSMenu *)menu { 1163 if(menu == _viewMenu) { 1164 [_toggleStatusBarMenuItem setTitle:![FHSettings boolForKey:FHShowStatusBar] 1165 ? NSLS(@"Show Status Bar", @"Menu item title") 1166 : NSLS(@"Hide Status Bar", @"Menu item title")]; 1167 } 1116 1168 } 1117 1169 … … 1183 1235 [_openURLPanel close]; 1184 1236 1185 if(returnCode == NS RunStoppedResponse) {1237 if(returnCode == NSAlertDefaultReturn) { 1186 1238 [FHSettings setInt:[_openURLPopUpButton tagOfSelectedItem] forKey:FHHTMLImageType]; 1187 1239 … … 1209 1261 [_openSpotlightPanel close]; 1210 1262 1211 if(returnCode == NS RunStoppedResponse) {1263 if(returnCode == NSAlertDefaultReturn) { 1212 1264 url = [[WIURL alloc] initWithScheme:@"spotlight" host:@"localhost" port:0]; 1213 1265 [url setPath:[NSSWF:@"/%@", [_openSpotlightTextView string]]]; … … 1519 1571 [_screenPanel close]; 1520 1572 1521 if(returnCode == NS RunStoppedResponse) {1573 if(returnCode == NSAlertDefaultReturn) { 1522 1574 // --- save in prefs 1523 1575 [FHSettings setInt:[_screenPopUpButton indexOfSelectedItem] forKey:FHFullscreenScreen]; … … 1621 1673 1622 1674 1675 - (IBAction)toggleStatusBar:(id)sender { 1676 BOOL show; 1677 1678 show = [FHSettings boolForKey:FHShowStatusBar]; 1679 1680 [self _toggleStatusBar:!show]; 1681 1682 [FHSettings setBool:!show forKey:FHShowStatusBar]; 1683 } 1684 1685 1686 1623 1687 #pragma mark - 1624 1688 Footagehead/trunk/FHFeedHandler.m
r3400 r4465 32 32 #import "FHHTMLParser.h" 33 33 34 @interface FHFeedHandler(Private)35 36 34 enum FHFeedParseMode { 37 35 FHFeedParseHeader, … … 41 39 42 40 43 - (void)parse; 44 - (void)parseImageHeaderInTree:(CFXMLTreeRef)imageTree; 41 @interface FHFeedHandler(Private) 42 43 - (void)_parse; 44 - (void)_parseImageHeaderInTree:(CFXMLTreeRef)imageTree; 45 45 46 46 @end 47 47 48 48 49 @implementation FHFeedHandler 50 51 + (Class)handlerForURL:(WIURL *)url { 52 NSString *host; 53 54 host = [url host]; 55 56 if([host hasSuffix:@"flickr.com"]) 57 return [FHFlickrHandler class]; 58 59 return self; 60 } 61 62 63 64 #pragma mark - 65 66 - (id)initHandlerWithURL:(WIURL *)url feed:(CFXMLTreeRef)feed { 67 CFXMLNodeRef node; 68 NSString *name; 69 FHFeedFormat format; 70 71 format = FHFeedUnknown; 72 73 if(CFTreeGetChildCount(feed) >= 2) { 74 node = CFXMLTreeGetNode(CFTreeGetChildAtIndex(feed, 1)); 75 name = (NSString *) CFXMLNodeGetString(node); 76 77 if([name isEqualToString:@"rss"]) 78 format = FHFeedRSS; 79 else if([name isEqualToString:@"feed"]) 80 format = FHFeedAtom; 81 } 82 83 return [self initHandlerWithURL:url feed:feed format:format]; 84 } 85 86 87 88 - (id)initHandlerWithURL:(WIURL *)url feed:(CFXMLTreeRef)feed format:(FHFeedFormat)format { 89 CFXMLTreeRef rssTree; 90 91 self = [super initHandlerWithURL:url]; 92 93 _feed = (CFXMLTreeRef) CFRetain(feed); 94 _format = format; 95 96 if(_format == FHFeedRSS) { 97 rssTree = [self treeWithName:@"rss" inTree:_feed]; 98 99 if(!rssTree) 100 rssTree = [self treeWithName:@"rdf:RDF" inTree:_feed]; 101 102 if(!rssTree) { 103 [self release]; 104 105 return NULL; 106 } 107 108 _contentTree = [self treeWithName:@"channel" inTree:rssTree]; 109 110 if(!_contentTree) 111 _contentTree = [self treeWithName:@"rss:channel" inTree:rssTree]; 112 113 if(!_contentTree) { 114 [self release]; 115 116 return NULL; 117 } 118 } 119 120 [self parse]; 121 122 return self; 123 } 124 125 126 127 - (void)dealloc { 128 CFRelease(_feed); 129 130 [super dealloc]; 131 } 132 133 134 135 #pragma mark - 136 - (void)parse { 49 @implementation FHFeedHandler(Private) 50 51 - (void)_parse { 137 52 NSMutableDictionary *items; 138 53 NSString *dividerKey, *name, *itemName; … … 160 75 if(mode == FHFeedParseHeader) { 161 76 if([name isEqualTo:@"image"]) 162 [self parseImageHeaderInTree:tree];77 [self _parseImageHeaderInTree:tree]; 163 78 164 79 [_header setObject:[self valueOfTree:tree] forKey:name]; … … 184 99 185 100 186 - (void) parseImageHeaderInTree:(CFXMLTreeRef)imageTree {101 - (void)_parseImageHeaderInTree:(CFXMLTreeRef)imageTree { 187 102 NSString *name; 188 103 CFXMLTreeRef tree; … … 197 112 name = (NSString *) CFXMLNodeGetString(node); 198 113 199 [_header setObject: [self valueOfTree:tree] forKey:[@"image" stringByAppendingString:name]]; 200 } 114 [_header setObject:[self valueOfTree:tree] forKey:[@"image" stringByAppendingString:name]]; 115 } 116 } 117 118 @end 119 120 121 @implementation FHFeedHandler 122 123 + (Class)handlerForURL:(WIURL *)url { 124 NSString *host; 125 126 host = [url host]; 127 128 if([host hasSuffix:@"flickr.com"]) 129 return [FHFlickrHandler class]; 130 131 return self; 201 132 } 202 133 … … 205 136 #pragma mark - 206 137 138 - (id)initHandlerWithURL:(WIURL *)url feed:(CFXMLTreeRef)feed { 139 CFXMLNodeRef node; 140 NSString *name; 141 FHFeedFormat format; 142 143 format = FHFeedUnknown; 144 145 if(CFTreeGetChildCount(feed) >= 2) { 146 node = CFXMLTreeGetNode(CFTreeGetChildAtIndex(feed, 1)); 147 name = (NSString *) CFXMLNodeGetString(node); 148 149 if([name isEqualToString:@"rss"]) 150 format = FHFeedRSS; 151 else if([name isEqualToString:@"feed"]) 152 format = FHFeedAtom; 153 } 154 155 return [self initHandlerWithURL:url feed:feed format:format]; 156 } 157 158 159 160 - (id)initHandlerWithURL:(WIURL *)url feed:(CFXMLTreeRef)feed format:(FHFeedFormat)format { 161 CFXMLTreeRef rssTree; 162 163 self = [super initHandlerWithURL:url]; 164 165 _feed = (CFXMLTreeRef) CFRetain(feed); 166 _format = format; 167 168 if(_format == FHFeedRSS) { 169 rssTree = [self treeWithName:@"rss" inTree:_feed]; 170 171 if(!rssTree) 172 rssTree = [self treeWithName:@"rdf:RDF" inTree:_feed]; 173 174 if(!rssTree) { 175 [self release]; 176 177 return NULL; 178 } 179 180 _contentTree = [self treeWithName:@"channel" inTree:rssTree]; 181 182 if(!_contentTree) 183 _contentTree = [self treeWithName:@"rss:channel" inTree:rssTree]; 184 185 if(!_contentTree) { 186 [self release]; 187 188 return NULL; 189 } 190 } 191 192 [self _parse]; 193 194 return self; 195 } 196 197 198 199 - (void)dealloc { 200 CFRelease(_feed); 201 202 [super dealloc]; 203 } 204 205 206 207 #pragma mark - 207 208 208 209 - (NSString *)itemDividerKey { Footagehead/trunk/FHHandler.m
r4418 r4465 65 65 } 66 66 67 68 67 return classes; 69 68 } Footagehead/trunk/FHLHAHandler.m
r4419 r4465 37 37 types = [[NSArray alloc] initWithObjects: 38 38 @"lha", @"LHA", 39 @"lzh", @"LZH",40 39 NULL]; 41 40 } Footagehead/trunk/FHSettings.h
r3944 r4465 44 44 #define FHHTMLImageOnlyInline 1 45 45 #define FHHTMLImageOnlyLinks 2 46 #define FHShowStatusBar @"FHShowStatusBar" 46 47 47 48 @end Footagehead/trunk/FHSettings.m
r3944 r4465 53 53 [NSNumber numberWithInt:FHHTMLImageBothInlineAndLinks], 54 54 FHHTMLImageType, 55 [NSNumber numberWithBool:YES], 56 FHShowStatusBar, 55 57 NULL]; 56 58 } Footagehead/trunk/Footagehead.xcodeproj/project.pbxproj
r4418 r4465 256 256 containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; 257 257 proxyType = 1; 258 remoteGlobalIDString = 778F0B450B64C46900E3CD47 /* lha */;258 remoteGlobalIDString = 778F0B450B64C46900E3CD47; 259 259 remoteInfo = lha; 260 260 }; … … 845 845 77EAADD8084B546D006C9F69 /* FHURLHandler.m */, 846 846 77EAADD9084B546D006C9F69 /* FHURLHandler.h */, 847 A519AA32084BA91B00EFF2EA /* FHFeedHandler.m */, 848 A519AA33084BA91B00EFF2EA /* FHFeedHandler.h */, 847 849 A519AA10084BA8FB00EFF2EA /* Feed Handlers */, 848 850 A5B1F9AA067BCF0100111D0A /* FHHTMLHandler.m */, … … 857 859 isa = PBXGroup; 858 860 children = ( 859 A519AA32084BA91B00EFF2EA /* FHFeedHandler.m */,860 A519AA33084BA91B00EFF2EA /* FHFeedHandler.h */,861 861 77EAC0D3084C6D1F006C9F69 /* FHFlickrHandler.m */, 862 862 77EAC0D2084C6D1F006C9F69 /* FHFlickrHandler.h */,
