diff options
Diffstat (limited to 'Source/SPCustomQuery.h')
-rw-r--r-- | Source/SPCustomQuery.h | 236 |
1 files changed, 236 insertions, 0 deletions
diff --git a/Source/SPCustomQuery.h b/Source/SPCustomQuery.h new file mode 100644 index 00000000..5c95aeb8 --- /dev/null +++ b/Source/SPCustomQuery.h @@ -0,0 +1,236 @@ +// +// $Id$ +// +// SPCustomQuery.h +// sequel-pro +// +// Created by lorenz textor (lorenz@textor.ch) on Wed May 01 2002. +// Copyright (c) 2002-2003 Lorenz Textor. All rights reserved. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// More info at <http://code.google.com/p/sequel-pro/> + +#import <Cocoa/Cocoa.h> +#import <MCPKit/MCPKit.h> +#import <WebKit/WebKit.h> + +#import "CMCopyTable.h" +#import "SPTextView.h" +#import "RegexKitLite.h" + +#define SP_HELP_TOC_SEARCH_STRING @"contents" +#define SP_HELP_SEARCH_IN_MYSQL 0 +#define SP_HELP_SEARCH_IN_PAGE 1 +#define SP_HELP_SEARCH_IN_WEB 2 +#define SP_HELP_GOBACK_BUTTON 0 +#define SP_HELP_SHOW_TOC_BUTTON 1 +#define SP_HELP_GOFORWARD_BUTTON 2 +#define SP_HELP_NOT_AVAILABLE @"__no_help_available" + +#define SP_SAVE_ALL_FAVORTITE_MENUITEM_TAG 100001 +#define SP_SAVE_SELECTION_FAVORTITE_MENUITEM_TAG 100000 +#define SP_FAVORITE_HEADER_MENUITEM_TAG 200000 +#define SP_HISTORY_COPY_MENUITEM_TAG 300000 +#define SP_HISTORY_SAVE_MENUITEM_TAG 300001 +#define SP_HISTORY_CLEAR_MENUITEM_TAG 300002 + +@class SPQueryFavoriteManager, SPDataStorage, BWSplitView; + +@interface SPCustomQuery : NSObject +{ + IBOutlet id tableDocumentInstance; + IBOutlet id tablesListInstance; + + IBOutlet id queryFavoritesButton; + IBOutlet NSMenuItem *queryFavoritesSearchMenuItem; + IBOutlet NSMenuItem *queryFavoritesSaveAsMenuItem; + IBOutlet NSMenuItem *queryFavoritesSaveAllMenuItem; + IBOutlet id queryFavoritesSearchFieldView; + IBOutlet NSSearchField *queryFavoritesSearchField; + + IBOutlet NSWindow *queryFavoritesSheet; + IBOutlet NSButton *saveQueryFavoriteButton; + IBOutlet NSTextField *queryFavoriteNameTextField; + IBOutlet id saveQueryFavoriteGlobal; + + IBOutlet id queryHistoryButton; + IBOutlet NSMenuItem *queryHistorySearchMenuItem; + IBOutlet id queryHistorySearchFieldView; + IBOutlet NSSearchField *queryHistorySearchField; + IBOutlet NSMenuItem *clearHistoryMenuItem; + IBOutlet NSMenuItem *saveHistoryMenuItem; + IBOutlet NSMenuItem *copyHistoryMenuItem; + IBOutlet NSPopUpButton *encodingPopUp; + + IBOutlet SPTextView *textView; + IBOutlet CMCopyTable *customQueryView; + IBOutlet NSScrollView *customQueryScrollView; + IBOutlet id errorText; + IBOutlet id affectedRowsText; + IBOutlet id valueSheet; + IBOutlet id valueTextField; + IBOutlet id runSelectionButton; + IBOutlet id runAllButton; + IBOutlet id multipleLineEditingButton; + + IBOutlet NSMenuItem *runSelectionMenuItem; + IBOutlet NSMenuItem *runAllMenuItem; + IBOutlet NSMenuItem *shiftLeftMenuItem; + IBOutlet NSMenuItem *shiftRightMenuItem; + IBOutlet NSMenuItem *completionListMenuItem; + IBOutlet NSMenuItem *editorFontMenuItem; + IBOutlet NSMenuItem *autoindentMenuItem; + IBOutlet NSMenuItem *autopairMenuItem; + IBOutlet NSMenuItem *autohelpMenuItem; + IBOutlet NSMenuItem *autouppercaseKeywordsMenuItem; + IBOutlet NSMenuItem *commentCurrentQueryMenuItem; + IBOutlet NSMenuItem *commentLineOrSelectionMenuItem; + IBOutlet NSMenuItem *previousHistoryMenuItem; + IBOutlet NSMenuItem *nextHistoryMenuItem; + + IBOutlet NSWindow *helpWebViewWindow; + IBOutlet WebView *helpWebView; + IBOutlet NSSearchField *helpSearchField; + IBOutlet NSSearchFieldCell *helpSearchFieldCell; + IBOutlet NSSegmentedControl *helpNavigator; + IBOutlet NSSegmentedControl *helpTargetSelector; + + IBOutlet NSButton *queryInfoButton; + IBOutlet BWSplitView *queryInfoPaneSplitView; + + SPQueryFavoriteManager *favoritesManager; + + NSUserDefaults *prefs; + MCPConnection *mySQLConnection; + + NSString *usedQuery; + NSRange currentQueryRange; + NSArray *currentQueryRanges; + NSRange oldThreadedQueryRange; + + BOOL selectionButtonCanBeEnabled; + NSString *mySQLversion; + NSTableColumn *sortColumn; + + NSUInteger queryStartPosition; + + NSUInteger helpTarget; + WebHistory *helpHistory; + NSString *helpHTMLTemplate; + + SPDataStorage *resultData; + pthread_mutex_t resultDataLock; + NSInteger resultDataCount; + NSArray *cqColumnDefinition; + NSString *lastExecutedQuery; + NSInteger editedRow; + NSRect editedScrollViewRect; + + BOOL isWorking; + BOOL tableRowsSelectable; + BOOL reloadingExistingResult; + BOOL queryIsTableSorter; + BOOL isDesc; + NSNumber *sortField; + + NSIndexSet *selectionIndexToRestore; + NSRect selectionViewportToRestore; + + NSString *fieldIDQueryString; + + NSUInteger numberOfQueries; + NSUInteger queryTextViewStartPosition; + + NSInteger currentHistoryOffsetIndex; + BOOL historyItemWasJustInserted; +} + +// IBAction methods +- (IBAction)runAllQueries:(id)sender; +- (void) runAllQueriesCallback; +- (IBAction)runSelectedQueries:(id)sender; +- (IBAction)chooseQueryFavorite:(id)sender; +- (IBAction)chooseQueryHistory:(id)sender; +- (IBAction)closeSheet:(id)sender; +- (IBAction)gearMenuItemSelected:(id)sender; +- (IBAction)showHelpForCurrentWord:(id)sender; +- (IBAction)showHelpForSearchString:(id)sender; +- (IBAction)helpSegmentDispatcher:(id)sender; +- (IBAction)helpTargetDispatcher:(id)sender; +- (IBAction)helpSearchFindNextInPage:(id)sender; +- (IBAction)helpSearchFindPreviousInPage:(id)sender; +- (IBAction)helpSelectHelpTargetMySQL:(id)sender; +- (IBAction)helpSelectHelpTargetPage:(id)sender; +- (IBAction)helpSelectHelpTargetWeb:(id)sender; +- (IBAction)filterQueryFavorites:(id)sender; +- (IBAction)filterQueryHistory:(id)sender; +- (IBAction)saveQueryHistory:(id)sender; +- (IBAction)copyQueryHistory:(id)sender; +- (IBAction)clearQueryHistory:(id)sender; +- (IBAction)showCompletionList:(id)sender; +- (IBAction)toggleQueryInfoPaneCollapse:(id)sender; + +// Query actions +- (void)performQueries:(NSArray *)queries withCallback:(SEL)customQueryCallbackMethod; +- (void)performQueriesTask:(NSDictionary *)taskArguments; +- (NSString *)queryAtPosition:(NSUInteger)position lookBehind:(BOOL *)doLookBehind; +- (NSRange)queryRangeAtPosition:(NSUInteger)position lookBehind:(BOOL *)doLookBehind; +- (NSRange)queryTextRangeForQuery:(NSInteger)anIndex startPosition:(NSUInteger)position; +- (void) updateStatusInterfaceWithDetails:(NSDictionary *)errorDetails; + +// Accessors +- (NSArray *)currentResult; +- (void)processResultIntoDataStorage:(MCPStreamingResult *)theResult; + +// Retrieving and setting table state +- (void) updateTableView; +- (NSIndexSet *) resultSelectedRowIndexes; +- (NSRect) resultViewport; +- (void) setResultSelectedRowIndexesToRestore:(NSIndexSet *)theIndexSet; +- (void) setResultViewportToRestore:(NSRect)theViewport; +- (void) storeCurrentResultViewForRestoration; +- (void) clearResultViewDetailsToRestore; + +// MySQL Help +- (void)showAutoHelpForCurrentWord:(id)sender; +- (NSString *)getHTMLformattedMySQLHelpFor:(NSString *)searchString calledByAutoHelp:(BOOL)autoHelp; +- (void)showHelpFor:(NSString *)aString addToHistory:(BOOL)addToHistory calledByAutoHelp:(BOOL)autoHelp; +- (void)helpTargetValidation; +- (void)openMySQLonlineDocumentationWithString:(NSString *)searchString; +- (NSWindow *)helpWebViewWindow; +- (void)setMySQLversion:(NSString *)theVersion; + +// Task interaction +- (void) startDocumentTaskForTab:(NSNotification *)aNotification; +- (void) endDocumentTaskForTab:(NSNotification *)aNotification; + +// Other +- (void)setConnection:(MCPConnection *)theConnection; +- (void)doPerformQueryService:(NSString *)query; +- (void)doPerformLoadQueryService:(NSString *)query; +- (void)selectCurrentQuery; +- (void)commentOut; +- (void)commentOutCurrentQueryTakingSelection:(BOOL)takeSelection; +- (NSString *)usedQuery; +- (NSString *)argumentForRow:(NSUInteger)rowIndex ofTable:(NSString *)tableForColumn andDatabase:(NSString *)database; +- (NSUInteger)numberOfQueries; + +- (NSString *)buildHistoryString; +- (void)addHistoryEntry:(NSString *)entryString; + +- (void)historyItemsHaveBeenUpdated:(id)manager; + +@end |