diff options
author | Bibiko <bibiko@eva.mpg.de> | 2009-04-28 12:38:04 +0000 |
---|---|---|
committer | Bibiko <bibiko@eva.mpg.de> | 2009-04-28 12:38:04 +0000 |
commit | a2f339ecc420468f54cbf55d70f380bbf0d64151 (patch) | |
tree | a93776907cb3906d50e599056f1d3c48d53060b3 /Source | |
parent | ec07828f39fbcb415ded908326a082ac63a293d7 (diff) | |
download | sequelpro-a2f339ecc420468f54cbf55d70f380bbf0d64151.tar.gz sequelpro-a2f339ecc420468f54cbf55d70f380bbf0d64151.tar.bz2 sequelpro-a2f339ecc420468f54cbf55d70f380bbf0d64151.zip |
• MySQL Help improved:
- added history: go back/forward
- window now has auto save name MYSQL_HELP_WINDOW
- disabled contextual menu for safety reasons (temporarily)
- some minor stuff
Diffstat (limited to 'Source')
-rw-r--r-- | Source/CustomQuery.h | 3 | ||||
-rw-r--r-- | Source/CustomQuery.m | 59 |
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 - |