aboutsummaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/CustomQuery.h3
-rw-r--r--Source/CustomQuery.m59
2 files changed, 54 insertions, 8 deletions
diff --git a/Source/CustomQuery.h b/Source/CustomQuery.h
index 66c5e965..3e3b51ea 100644
--- a/Source/CustomQuery.h
+++ b/Source/CustomQuery.h
@@ -80,6 +80,7 @@
int queryStartPosition;
int helpTarget;
+ WebHistory *helpHistory;
}
@@ -116,7 +117,7 @@
- (NSArray *)currentResult;
// MySQL Help
-- (void)showHelpFor:(NSString *)aString;
+- (void)showHelpFor:(NSString *)aString setHistory:(BOOL)setHistory;
- (NSString *)getHTMLHelpFor:(NSString *)aString;
- (void)helpTargetValidation;
diff --git a/Source/CustomQuery.m b/Source/CustomQuery.m
index b7de8b76..b3602941 100644
--- a/Source/CustomQuery.m
+++ b/Source/CustomQuery.m
@@ -1366,7 +1366,7 @@ traps enter key and
/*
* Retrieve and show the data for "HELP 'aString'".
*/
-- (void)showHelpFor:(NSString *)aString
+- (void)showHelpFor:(NSString *)aString setHistory:(BOOL)setHistory
{
NSString * helpString = [self getHTMLHelpFor:aString];
// Order out the Help window if not visible
@@ -1384,8 +1384,18 @@ traps enter key and
} else {
mySQLversion = [[NSString stringWithString:version] retain];
}
-
+ // init Help view
[helpWebViewWindow setTitle:[NSString stringWithFormat:@"%@ (%@ %@)", NSLocalizedString(@"MySQL Help", @"mysql help"), NSLocalizedString(@"version", @"version"), [mySQLversion substringToIndex:3]]];
+ [helpWebView setMaintainsBackForwardList:YES];
+ [[helpWebView backForwardList] setCapacity:20];
+ if([[helpWebView backForwardList] backListCount] < 1)
+ {
+ [helpNavigator setEnabled:NO forSegment:0];
+ [helpNavigator setEnabled:NO forSegment:2];
+ } else {
+ [helpNavigator setEnabled:[[helpWebView backForwardList] backListCount] forSegment:0];
+ [helpNavigator setEnabled:[[helpWebView backForwardList] forwardListCount] forSegment:2];
+ }
[helpWebViewWindow orderFront:helpWebView];
helpTarget = 2; // set default to search in MySQL help
[self helpTargetValidation];
@@ -1393,6 +1403,14 @@ traps enter key and
if(![helpString length]) return;
+ if(setHistory)
+ {
+ WebHistoryItem *aWebHistoryItem = [[WebHistoryItem alloc] initWithURLString:[NSString stringWithFormat:@"applewebdata://%@", aString] title:aString lastVisitedTimeInterval:[[NSDate date] timeIntervalSinceDate:[NSDate distantFuture]]];
+ [[helpWebView backForwardList] addItem:aWebHistoryItem];
+ }
+ [helpNavigator setEnabled:[[helpWebView backForwardList] backListCount] forSegment:0];
+ [helpNavigator setEnabled:[[helpWebView backForwardList] forwardListCount] forSegment:2];
+
[[helpWebView mainFrame] loadHTMLString:helpString baseURL:nil];
@@ -1413,6 +1431,8 @@ traps enter key and
break;
case 1: // online
// Open MySQL Documentation search in browser
+ if(![searchTerm length])
+ break;
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:
[[NSString stringWithFormat:
MYSQL_DEV_SEARCH_URL,
@@ -1427,7 +1447,7 @@ traps enter key and
// stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]]];
break;
case 2: // MySQL
- [self showHelpFor:searchTerm];
+ [self showHelpFor:searchTerm setHistory:YES];
break;
}
}
@@ -1439,7 +1459,7 @@ traps enter key and
{
NSString *aString = [[textView string] substringWithRange:[textView getRangeForCurrentWord]];
// if(![aString length]) return;
- [self showHelpFor:aString];
+ [self showHelpFor:aString setHistory:YES];
}
/*
@@ -1464,10 +1484,25 @@ traps enter key and
{
switch([helpNavigator selectedSegment])
{
+ case 0:
+ if([[helpWebView backForwardList] backListCount]) {
+ [self showHelpFor:[[[[helpWebView backForwardList] backItem] URLString] lastPathComponent] setHistory:NO];
+ [[helpWebView backForwardList] goBack];
+ }
+ break;
case 1: // TOC
- [self showHelpFor:@"contents"];
- break;
+ [self showHelpFor:@"contents" setHistory:YES];
+ break;
+ case 2:
+ if([[helpWebView backForwardList] forwardListCount]) {
+ [self showHelpFor:[[[[helpWebView backForwardList] forwardItem] URLString] lastPathComponent] setHistory:NO];
+ [[helpWebView backForwardList] goForward];
+ }
+ break;
}
+ [helpNavigator setEnabled:[[helpWebView backForwardList] backListCount] forSegment:0];
+ [helpNavigator setEnabled:[[helpWebView backForwardList] forwardListCount] forSegment:2];
+
}
/*
@@ -1673,8 +1708,11 @@ traps enter key and
{
int navigationType = [[actionInformation objectForKey:WebActionNavigationTypeKey] intValue];
if([[[request URL] scheme] isEqualToString:@"applewebdata"]){
- [self showHelpFor:[[[request URL] path] substringWithRange:NSMakeRange(1,[[[request URL] path] length]-1)]];
+ [self showHelpFor:[[[request URL] path] substringWithRange:NSMakeRange(1,[[[request URL] path] length]-1)] setHistory:YES];
[listener ignore];
+ // WebHistoryItem *aWebHistoryItem = [[WebHistoryItem alloc] initWithURLString:[[request URL] absoluteString] title:[[request URL] path] lastVisitedTimeInterval:[[NSDate date] timeIntervalSinceDate:[NSDate distantFuture]]];
+ // [[helpWebView backForwardList] addItem:aWebHistoryItem];
+
} else {
if (navigationType == WebNavigationTypeOther) {
[listener use];
@@ -1689,6 +1727,13 @@ traps enter key and
}
}
+/*
+ * Up to now no contextual menu in helpWebView
+ */
+- (NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element defaultMenuItems:(NSArray *)defaultMenuItems
+{
+ return nil;
+}
#pragma mark -