diff options
author | Bibiko <bibiko@eva.mpg.de> | 2009-08-26 11:55:20 +0000 |
---|---|---|
committer | Bibiko <bibiko@eva.mpg.de> | 2009-08-26 11:55:20 +0000 |
commit | 07d42ca087e58f23f64f6cf9dfe212286b750e12 (patch) | |
tree | 66a3d2babe3db958bf781ea4dc6d917d70b59810 /Source | |
parent | 6a8f423169cb76dec7e672ba8e34f5e5196f7283 (diff) | |
download | sequelpro-07d42ca087e58f23f64f6cf9dfe212286b750e12.tar.gz sequelpro-07d42ca087e58f23f64f6cf9dfe212286b750e12.tar.bz2 sequelpro-07d42ca087e58f23f64f6cf9dfe212286b750e12.zip |
• added to "Query Favorite" popup menu:
- "Replace Editor Content" check box menu item; if checked the chosen query will replace the editor's content if not it will insert it (setting will be saved in the prefs)
- Search Text Field to filter the list of names (by using a regular expressions)
- added a tooltip to each menu item displaying the query behind the name
Diffstat (limited to 'Source')
-rw-r--r-- | Source/CustomQuery.h | 6 | ||||
-rw-r--r-- | Source/CustomQuery.m | 37 |
2 files changed, 35 insertions, 8 deletions
diff --git a/Source/CustomQuery.h b/Source/CustomQuery.h index eae2de5c..522cdd0d 100644 --- a/Source/CustomQuery.h +++ b/Source/CustomQuery.h @@ -39,8 +39,13 @@ { IBOutlet id tableDocumentInstance; IBOutlet id tableWindow; + IBOutlet id queryFavoritesButton; + IBOutlet NSMenuItem *queryFavoritesSearchMenuItem; + IBOutlet id queryFavoritesSearchFieldView; + IBOutlet NSSearchField *queryFavoritesSearchField; IBOutlet id queryHistoryButton; + IBOutlet CMTextView *textView; IBOutlet CMCopyTable *customQueryView; IBOutlet id errorText; @@ -122,6 +127,7 @@ - (IBAction)helpSelectHelpTargetMySQL:(id)sender; - (IBAction)helpSelectHelpTargetPage:(id)sender; - (IBAction)helpSelectHelpTargetWeb:(id)sender; +- (IBAction)filterQueryFavorites:(id)sender; // Query actions - (void)performQueries:(NSArray *)queries; diff --git a/Source/CustomQuery.m b/Source/CustomQuery.m index 4e02fd53..b1ac72d0 100644 --- a/Source/CustomQuery.m +++ b/Source/CustomQuery.m @@ -153,8 +153,8 @@ modalDelegate:self didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) contextInfo:@"addNewQueryFavorite"]; - } - else if ([queryFavoritesButton indexOfSelectedItem] == 2) { + } + else if ([queryFavoritesButton indexOfSelectedItem] == 3) { // Open query favorite manager [NSApp beginSheet:[favoritesManager window] modalForWindow:tableWindow @@ -162,9 +162,12 @@ didEndSelector:nil contextInfo:nil]; } - else if ([queryFavoritesButton indexOfSelectedItem] > 3) { + else if ([queryFavoritesButton indexOfSelectedItem] > 5) { // Choose favorite - [textView insertText:[[[prefs objectForKey:@"queryFavorites"] objectAtIndex:([queryFavoritesButton indexOfSelectedItem] - 4)] objectForKey:@"query"]]; + if([prefs boolForKey:@"QueryFavoriteReplacesContent"]) + [textView setSelectedRange:NSMakeRange(0,[[textView string] length])]; + + [textView insertText:[[[prefs objectForKey:@"queryFavorites"] objectAtIndex:([queryFavoritesButton indexOfSelectedItem] - 6)] objectForKey:@"query"]]; } } @@ -1808,13 +1811,17 @@ #pragma mark TextField delegate methods /** - * Called whenever the user changes the name of the new query favorite. + * Called whenever the user changes the name of the new query favorite or + * the user changed the query favorite search string. */ - (void)controlTextDidChange:(NSNotification *)notification { if ([notification object] == queryFavoriteNameTextField) { [saveQueryFavoriteButton setEnabled:[[queryFavoriteNameTextField stringValue] length]]; } + else if ([notification object] == queryFavoritesSearchField) { + [self filterQueryFavorites:nil]; + } } #pragma mark - @@ -2342,15 +2349,16 @@ NSMutableArray *favorites = ([favoritesManager queryFavorites]) ? [favoritesManager queryFavorites] : [prefs objectForKey:@"queryFavorites"]; // Remove all favorites beginning from the end - while([queryFavoritesButton numberOfItems] > 4) + while([queryFavoritesButton numberOfItems] > 6) [queryFavoritesButton removeItemAtIndex:[queryFavoritesButton numberOfItems]-1]; // Re-add favorites and allow menu items with the same name NSMenu *menu = [queryFavoritesButton menu]; - int i = 4; + int i = 6; for (NSDictionary *favorite in favorites) { NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:[favorite objectForKey:@"name"] action:NULL keyEquivalent:@""]; [item setTag:i++]; + [item setToolTip:[favorite objectForKey:@"query"]]; [menu addItem:item]; [item release]; } @@ -2470,18 +2478,31 @@ return self; } +- (IBAction)filterQueryFavorites:(id)sender +{ + int i; + NSMenu *menu = [queryFavoritesButton menu]; + for (i=6; i< [menu numberOfItems]; i++) + [[menu itemAtIndex:i] setHidden:(![[[menu itemAtIndex:i] title] isMatchedByRegex:[NSString stringWithFormat:@"(?i).*%@.*", [queryFavoritesSearchField stringValue]]])]; + +} + - (void)awakeFromNib { // Set the structure and index view's vertical gridlines if required [customQueryView setGridStyleMask:([prefs boolForKey:@"DisplayTableViewVerticalGridlines"]) ? NSTableViewSolidVerticalGridLineMask : NSTableViewGridNone]; + // Add the searchfield to the Query Favorite popup button list + [queryFavoritesSearchMenuItem setView:queryFavoritesSearchFieldView]; + // Populate the query favorites popup button NSMenu *menu = [queryFavoritesButton menu]; - int i = 4; + int i = 6; for (NSDictionary *favorite in [prefs objectForKey:@"queryFavorites"]) { NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:[favorite objectForKey:@"name"] action:NULL keyEquivalent:@""]; [item setTag:i++]; + [item setToolTip:[favorite objectForKey:@"query"]]; [menu addItem:item]; [item release]; } |