}
- (void) loadRequest:(NSURLRequest *)request {
+ pushed_ = true;
[webview_ loadRequest:request];
}
[self view:sender didSetFrame:frame];
}
-- (NSURLRequest *) webView:(WebView *)sender resource:(id)identifier willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse fromDataSource:(WebDataSource *)dataSource {
- return [self _addHeadersToRequest:request];
-}
-
-- (WebView *) webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request {
- if ([[[request URL] scheme] isEqualToString:@"apptapp"])
- return nil;
- [self setBackButtonTitle:title_];
- BrowserView *browser = [[[BrowserView alloc] initWithBook:book_ database:database_] autorelease];
- [browser setDelegate:delegate_];
- [book_ pushPage:browser];
- [browser loadRequest:[self _addHeadersToRequest:request]];
- return [browser webView];
-}
-
-- (void) webView:(WebView *)sender willClickElement:(id)element {
- if (![element respondsToSelector:@selector(href)])
- return;
- NSString *href = [element href];
- if (href == nil)
- return;
+- (void) getAppTapp:(NSString *)href {
if ([href hasPrefix:@"apptapp://package/"]) {
NSString *name = [href substringFromIndex:18];
Package *package = [database_ packageWithName:name];
}
}
+- (void) webView:(WebView *)sender willClickElement:(id)element {
+ if (![element respondsToSelector:@selector(href)])
+ return;
+ NSString *href = [element href];
+ if (href == nil)
+ return;
+ if ([href hasPrefix:@"apptapp://package/"])
+ [self getAppTapp:href];
+}
+
+- (NSURLRequest *) webView:(WebView *)sender resource:(id)identifier willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse fromDataSource:(WebDataSource *)dataSource {
+ if ([[[request URL] scheme] isEqualToString:@"apptapp"]) {
+ [self getAppTapp:[[request URL] absoluteString]];
+ return nil;
+ }
+
+ if (!pushed_) {
+ pushed_ = true;
+ [book_ pushPage:self];
+ }
+
+ return [self _addHeadersToRequest:request];
+}
+
+- (WebView *) webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request {
+ if (request != nil && [[[request URL] scheme] isEqualToString:@"apptapp"])
+ return nil;
+ else {
+ [self setBackButtonTitle:title_];
+
+ BrowserView *browser = [[[BrowserView alloc] initWithBook:book_ database:database_] autorelease];
+ [browser setDelegate:delegate_];
+
+ if (request != nil) {
+ [browser loadRequest:[self _addHeadersToRequest:request]];
+ [book_ pushPage:browser];
+ }
+
+ return [browser webView];
+ }
+}
+
- (void) webView:(WebView *)sender didReceiveTitle:(NSString *)title forFrame:(WebFrame *)frame {
title_ = [title retain];
[self setTitle:title];
- (void) resetViewAnimated:(BOOL)animated {
}
+- (void) setPushed:(bool)pushed {
+ pushed_ = pushed;
+}
+
@end
/* }}} */
return @"Packages";
}
+- (void) setDelegate:(id)delegate {
+ [super setDelegate:delegate];
+ [packages_ setDelegate:delegate];
+ [sources_ setDelegate:delegate];
+}
+
@end
/* }}} */
/* Search View {{{ */