diff options
author | Max <dmoagx@users.noreply.github.com> | 2017-12-29 22:03:36 +0100 |
---|---|---|
committer | Max <dmoagx@users.noreply.github.com> | 2018-01-20 02:42:36 +0100 |
commit | 0b096429fee59f72d0191a05d56d3b06229afd4e (patch) | |
tree | 488c9db2f9208efb7373db9cd855303bad984292 /Source | |
parent | 8b221eea83db0d56afeaad52a0b5cdd9a20816ae (diff) | |
download | sequelpro-0b096429fee59f72d0191a05d56d3b06229afd4e.tar.gz sequelpro-0b096429fee59f72d0191a05d56d3b06229afd4e.tar.bz2 sequelpro-0b096429fee59f72d0191a05d56d3b06229afd4e.zip |
merge some smaller classes (part of #2789)
Diffstat (limited to 'Source')
-rw-r--r-- | Source/SPCharsetCollationHelper.m | 2 | ||||
-rw-r--r-- | Source/SPContentFilterManager.h | 6 | ||||
-rw-r--r-- | Source/SPFieldEditorController.h | 7 | ||||
-rw-r--r-- | Source/SPFieldEditorController.m | 10 | ||||
-rw-r--r-- | Source/SPGotoDatabaseController.m | 2 | ||||
-rw-r--r-- | Source/SPQueryFavoriteManager.m | 1 | ||||
-rw-r--r-- | Source/SPTableInfo.m | 2 | ||||
-rw-r--r-- | Source/SPTableRelations.m | 51 | ||||
-rw-r--r-- | Source/SPTableRelationsDelegate.h | 35 | ||||
-rw-r--r-- | Source/SPTableRelationsDelegate.m | 87 | ||||
-rw-r--r-- | Source/SPTableTriggers.m | 59 | ||||
-rw-r--r-- | Source/SPTableTriggersDelegate.h | 33 | ||||
-rw-r--r-- | Source/SPTableTriggersDelegate.m | 100 |
13 files changed, 124 insertions, 271 deletions
diff --git a/Source/SPCharsetCollationHelper.m b/Source/SPCharsetCollationHelper.m index 72387597..487c8a0b 100644 --- a/Source/SPCharsetCollationHelper.m +++ b/Source/SPCharsetCollationHelper.m @@ -33,7 +33,7 @@ #import "SPServerSupport.h" #import "SPDatabaseData.h" -@interface SPCharsetCollationHelper (Hidden) +@interface SPCharsetCollationHelper () - (void)charsetButtonClicked:(id)sender; - (void)collationButtonClicked:(id)sender; diff --git a/Source/SPContentFilterManager.h b/Source/SPContentFilterManager.h index 96e864ed..3c170bfc 100644 --- a/Source/SPContentFilterManager.h +++ b/Source/SPContentFilterManager.h @@ -31,12 +31,6 @@ @class SPDatabaseDocument; @class SPSplitView; -@interface NSObject (SPContentFilterManagerDelegate) - -- (void)contentFiltersHaveBeenUpdated:(id)manager; - -@end - @interface SPContentFilterManager : NSWindowController <NSOpenSavePanelDelegate> { #ifndef SP_CODA /* ivars */ diff --git a/Source/SPFieldEditorController.h b/Source/SPFieldEditorController.h index 0c0d0a0e..2c47aee6 100644 --- a/Source/SPFieldEditorController.h +++ b/Source/SPFieldEditorController.h @@ -254,3 +254,10 @@ - (void)setDoGroupDueToChars; @end + +@protocol SPFieldEditorControllerDelegate <NSObject> + +@optional +- (void)processFieldEditorResult:(id)data contextInfo:(NSDictionary*)contextInfo; + +@end diff --git a/Source/SPFieldEditorController.m b/Source/SPFieldEditorController.m index b79355b5..ba16da73 100644 --- a/Source/SPFieldEditorController.m +++ b/Source/SPFieldEditorController.m @@ -47,12 +47,6 @@ typedef enum { HexSegment } FieldEditorSegment; -@interface SPFieldEditorController (SPFieldEditorControllerDelegate) - -- (void)processFieldEditorResult:(id)data contextInfo:(NSDictionary*)contextInfo; - -@end - @implementation SPFieldEditorController @synthesize editedFieldInfo; @@ -672,7 +666,9 @@ typedef enum { else if ( [callerInstance isKindOfClass:[SPTableContent class]] ) [(SPTableContent*)callerInstance processFieldEditorResult:returnData contextInfo:contextInfo]; #else - [callerInstance processFieldEditorResult:returnData contextInfo:contextInfo]; + if([callerInstance respondsToSelector:@selector(processFieldEditorResult:contextInfo:)]) { + [(id <SPFieldEditorControllerDelegate>)callerInstance processFieldEditorResult:returnData contextInfo:contextInfo]; + } #endif } } diff --git a/Source/SPGotoDatabaseController.m b/Source/SPGotoDatabaseController.m index 61ec8962..96a81ca8 100644 --- a/Source/SPGotoDatabaseController.m +++ b/Source/SPGotoDatabaseController.m @@ -30,7 +30,7 @@ #import "SPGotoDatabaseController.h" -@interface SPGotoDatabaseController (Private) +@interface SPGotoDatabaseController () /** Update the list of matched names * @param filter The string to be matched. diff --git a/Source/SPQueryFavoriteManager.m b/Source/SPQueryFavoriteManager.m index 76fdf288..36e5dd26 100644 --- a/Source/SPQueryFavoriteManager.m +++ b/Source/SPQueryFavoriteManager.m @@ -477,6 +477,7 @@ [prefs setObject:[self queryFavoritesForFileURL:nil] forKey:SPQueryFavorites]; // Inform all opened documents to update the query favorites list +#warning This should be done using notifications for(id doc in [SPAppDelegate orderedDocuments]) if([[doc valueForKeyPath:@"customQueryInstance"] respondsToSelector:@selector(queryFavoritesHaveBeenUpdated:)]) [[doc valueForKeyPath:@"customQueryInstance"] queryFavoritesHaveBeenUpdated:self]; diff --git a/Source/SPTableInfo.m b/Source/SPTableInfo.m index ce9546d9..6846639f 100644 --- a/Source/SPTableInfo.m +++ b/Source/SPTableInfo.m @@ -37,7 +37,7 @@ #import "SPTableTextFieldCell.h" #import "SPAppController.h" -@interface SPTableInfo (PrivateAPI) +@interface SPTableInfo () - (NSString *)_getUserDefinedDateStringFromMySQLDate:(NSString *)mysqlDate; diff --git a/Source/SPTableRelations.m b/Source/SPTableRelations.m index 20059fbb..6b959430 100644 --- a/Source/SPTableRelations.m +++ b/Source/SPTableRelations.m @@ -541,6 +541,57 @@ static NSString *SPRelationOnDeleteKey = @"on_delete"; } #pragma mark - +#pragma mark TextField delegate methods + +- (void)controlTextDidChange:(NSNotification *)notification +{ + // Make sure the user does not enter a taken name, using the quickly-generated incomplete list + if ([notification object] == constraintName) { + NSString *userValue = [[constraintName stringValue] lowercaseString]; + + // Make field red and disable add button + if ([takenConstraintNames containsObject:userValue]) { + [constraintName setTextColor:[NSColor redColor]]; + [confirmAddRelationButton setEnabled:NO]; + } + else { + [constraintName setTextColor:[NSColor controlTextColor]]; + [confirmAddRelationButton setEnabled:YES]; + } + } +} + +#pragma mark - +#pragma mark Tableview delegate methods + +/** + * Called whenever the relations table view selection changes. + */ +- (void)tableViewSelectionDidChange:(NSNotification *)notification +{ + [removeRelationButton setEnabled:([relationsTableView numberOfSelectedRows] > 0)]; +} + +/* + * Double-click action on table cells - for the time being, return + * NO to disable editing. + */ +- (BOOL)tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)rowIndex +{ + if ([tableDocumentInstance isWorking]) return NO; + + return NO; +} + +/** + * Disable row selection while the document is working. + */ +- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)rowIndex +{ + return ![tableDocumentInstance isWorking]; +} + +#pragma mark - #pragma mark Private API /** diff --git a/Source/SPTableRelationsDelegate.h b/Source/SPTableRelationsDelegate.h deleted file mode 100644 index 79b1e914..00000000 --- a/Source/SPTableRelationsDelegate.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// SPTableRelationsDelegate.h -// sequel-pro -// -// Created by Stuart Connolly (stuconnolly.com) on March 28, 2017. -// Copyright (c) 2017 Stuart Connolly. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person -// obtaining a copy of this software and associated documentation -// files (the "Software"), to deal in the Software without -// restriction, including without limitation the rights to use, -// copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following -// conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -// OTHER DEALINGS IN THE SOFTWARE. -// -// More info at <https://github.com/sequelpro/sequelpro> - -#import "SPTableRelations.h" - -@interface SPTableRelations (SPTableRelationsDelegate) - -@end diff --git a/Source/SPTableRelationsDelegate.m b/Source/SPTableRelationsDelegate.m deleted file mode 100644 index bf083318..00000000 --- a/Source/SPTableRelationsDelegate.m +++ /dev/null @@ -1,87 +0,0 @@ -// -// SPTableRelationsDelegate.m -// sequel-pro -// -// Created by Stuart Connolly (stuconnolly.com) on March 28, 2017. -// Copyright (c) 2017 Stuart Connolly. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person -// obtaining a copy of this software and associated documentation -// files (the "Software"), to deal in the Software without -// restriction, including without limitation the rights to use, -// copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following -// conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -// OTHER DEALINGS IN THE SOFTWARE. -// -// More info at <https://github.com/sequelpro/sequelpro> - -#import "SPTableRelationsDelegate.h" -#import "SPDatabaseDocument.h" - -@implementation SPTableRelations (SPTableRelationsDelegate) - -#pragma mark - -#pragma mark TextField delegate methods - -- (void)controlTextDidChange:(NSNotification *)notification -{ - // Make sure the user does not enter a taken name, using the quickly-generated incomplete list - if ([notification object] == constraintName) { - NSString *userValue = [[constraintName stringValue] lowercaseString]; - - // Make field red and disable add button - if ([takenConstraintNames containsObject:userValue]) { - [constraintName setTextColor:[NSColor redColor]]; - [confirmAddRelationButton setEnabled:NO]; - } - else { - [constraintName setTextColor:[NSColor controlTextColor]]; - [confirmAddRelationButton setEnabled:YES]; - } - } -} - -#pragma mark - -#pragma mark Tableview delegate methods - -/** - * Called whenever the relations table view selection changes. - */ -- (void)tableViewSelectionDidChange:(NSNotification *)notification -{ - [removeRelationButton setEnabled:([relationsTableView numberOfSelectedRows] > 0)]; -} - -/* - * Double-click action on table cells - for the time being, return - * NO to disable editing. - */ -- (BOOL)tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)rowIndex -{ - if ([tableDocumentInstance isWorking]) return NO; - - return NO; -} - -/** - * Disable row selection while the document is working. - */ -- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)rowIndex -{ - return ![tableDocumentInstance isWorking]; -} - -@end diff --git a/Source/SPTableTriggers.m b/Source/SPTableTriggers.m index 23911279..97b9e459 100644 --- a/Source/SPTableTriggers.m +++ b/Source/SPTableTriggers.m @@ -657,6 +657,65 @@ static SPTriggerEventTag TagForEvent(NSString *mysql); } #pragma mark - +#pragma mark Tableview delegate methods + +/** + * Called whenever the triggers table view selection changes. + */ +- (void)tableViewSelectionDidChange:(NSNotification *)notification +{ + [removeTriggerButton setEnabled:([triggersTableView numberOfSelectedRows] > 0)]; +} + +/** + * Alter the colour of cells displaying NULL values + */ +- (void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)rowIndex +{ + if (![cell respondsToSelector:@selector(setTextColor:)]) { + return; + } + + id value = [[triggerData objectAtIndex:rowIndex] objectForKey:[tableColumn identifier]]; + + [cell setTextColor:[value isNSNull] ? [NSColor lightGrayColor] : [NSColor blackColor]]; +} + +/** + * Double-click action on table cells - for the time being, return NO to disable editing. + */ +- (BOOL)tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)rowIndex +{ + if ([tableDocumentInstance isWorking]) return NO; + + // Start Edit panel + if (((NSInteger)[triggerData count] > rowIndex) && [triggerData objectAtIndex:rowIndex]) { + [self _editTriggerAtIndex:rowIndex]; + } + + return NO; +} + +/** + * Disable row selection while the document is working. + */ +- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)rowIndex +{ + return (![tableDocumentInstance isWorking]); +} + +#pragma mark - +#pragma mark Textfield delegate methods + +/** + * Toggles the enabled state of confirm add trigger button based on the editing of the trigger's name. + */ +- (void)controlTextDidChange:(NSNotification *)notification +{ + [self _toggleConfirmAddTriggerButtonEnabled]; +} + +#pragma mark - - (void)dealloc { diff --git a/Source/SPTableTriggersDelegate.h b/Source/SPTableTriggersDelegate.h deleted file mode 100644 index 9ba3ae2d..00000000 --- a/Source/SPTableTriggersDelegate.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// SPTableTriggersDelegate.h -// sequel-pro -// -// Created by Stuart Connolly (stuconnolly.com) on February 21, 2013. -// Copyright (c) 2013 Stuart Connolly. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person -// obtaining a copy of this software and associated documentation -// files (the "Software"), to deal in the Software without -// restriction, including without limitation the rights to use, -// copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following -// conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -// OTHER DEALINGS IN THE SOFTWARE. - -#import "SPTableTriggers.h" - -@interface SPTableTriggers (SPTableTriggersDelegate) - -@end diff --git a/Source/SPTableTriggersDelegate.m b/Source/SPTableTriggersDelegate.m deleted file mode 100644 index 87308551..00000000 --- a/Source/SPTableTriggersDelegate.m +++ /dev/null @@ -1,100 +0,0 @@ -// -// SPTableTriggersDelegate.m -// sequel-pro -// -// Created by Stuart Connolly (stuconnolly.com) on February 21, 2013. -// Copyright (c) 2013 Stuart Connolly. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person -// obtaining a copy of this software and associated documentation -// files (the "Software"), to deal in the Software without -// restriction, including without limitation the rights to use, -// copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following -// conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -// OTHER DEALINGS IN THE SOFTWARE. - -#import "SPTableTriggersDelegate.h" -#import "SPDatabaseDocument.h" - -@interface SPTableTriggers () - -- (void)_editTriggerAtIndex:(NSInteger)index; -- (void)_toggleConfirmAddTriggerButtonEnabled; - -@end - -@implementation SPTableTriggers (SPTableTriggersDelegate) - -#pragma mark - -#pragma mark Tableview delegate methods - -/** - * Called whenever the triggers table view selection changes. - */ -- (void)tableViewSelectionDidChange:(NSNotification *)notification -{ - [removeTriggerButton setEnabled:([triggersTableView numberOfSelectedRows] > 0)]; -} - -/** - * Alter the colour of cells displaying NULL values - */ -- (void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)rowIndex -{ - if (![cell respondsToSelector:@selector(setTextColor:)]) { - return; - } - - id value = [[triggerData objectAtIndex:rowIndex] objectForKey:[tableColumn identifier]]; - - [cell setTextColor:[value isNSNull] ? [NSColor lightGrayColor] : [NSColor blackColor]]; -} - -/** - * Double-click action on table cells - for the time being, return NO to disable editing. - */ -- (BOOL)tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)rowIndex -{ - if ([tableDocumentInstance isWorking]) return NO; - - // Start Edit panel - if (((NSInteger)[triggerData count] > rowIndex) && [triggerData objectAtIndex:rowIndex]) { - [self _editTriggerAtIndex:rowIndex]; - } - - return NO; -} - -/** - * Disable row selection while the document is working. - */ -- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)rowIndex -{ - return (![tableDocumentInstance isWorking]); -} - -#pragma mark - -#pragma mark Textfield delegate methods - -/** - * Toggles the enabled state of confirm add trigger button based on the editing of the trigger's name. - */ -- (void)controlTextDidChange:(NSNotification *)notification -{ - [self _toggleConfirmAddTriggerButtonEnabled]; -} - -@end |