aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPNarrowDownCompletion.m
diff options
context:
space:
mode:
Diffstat (limited to 'Source/SPNarrowDownCompletion.m')
-rw-r--r--Source/SPNarrowDownCompletion.m22
1 files changed, 16 insertions, 6 deletions
diff --git a/Source/SPNarrowDownCompletion.m b/Source/SPNarrowDownCompletion.m
index 9079954d..4dc2711d 100644
--- a/Source/SPNarrowDownCompletion.m
+++ b/Source/SPNarrowDownCompletion.m
@@ -35,6 +35,7 @@
#import "RegexKitLite.h"
#import "SPTextView.h"
#import "SPQueryDocumentsController.h"
+#import "SPDatabaseStructure.h"
#pragma mark -
#pragma mark attribute definition
@@ -165,12 +166,20 @@
if(suggestions) [suggestions release];
if (filtered) [filtered release];
+ if (databaseStructureRetrieval) [databaseStructureRetrieval release];
[super dealloc];
}
- (void)close
{
+
+ // Invalidate the timer now to prevent retain cycles preventing deallocation
+ if (stateTimer != nil) {
+ [stateTimer invalidate];
+ [stateTimer release];
+ }
+
closeMe = YES;
[theView setCompletionIsOpen:NO];
[super close];
@@ -186,7 +195,7 @@
timeCounter++;
if(timeCounter > 20) {
timeCounter = 0;
- if(![[theView valueForKeyPath:@"mySQLConnection"] isQueryingDatabaseStructure]) {
+ if(![databaseStructureRetrieval isQueryingDatabaseStructure]) {
isQueryingDatabaseStructure = NO;
if(stateTimer) {
[stateTimer invalidate];
@@ -222,7 +231,7 @@
dictMode:(BOOL)mode dbMode:(BOOL)theDbMode tabTriggerMode:(BOOL)tabTriggerMode fuzzySearch:(BOOL)fuzzySearch
backtickMode:(NSInteger)theBackTickMode withDbName:(NSString*)dbName withTableName:(NSString*)tableName
selectedDb:(NSString*)selectedDb caretMovedLeft:(BOOL)caretMovedLeft autoComplete:(BOOL)autoComplete oneColumn:(BOOL)oneColumn
- alias:(NSString*)anAlias isQueryingDBStructure:(BOOL)isQueryingDBStructure
+ alias:(NSString*)anAlias withDBStructureRetriever:(SPDatabaseStructure *)theDatabaseStructure
{
if((self = [self init]))
{
@@ -238,10 +247,6 @@
theAliasName = anAlias;
oneColumnMode = oneColumn;
- isQueryingDatabaseStructure = isQueryingDBStructure;
-
- if(isQueryingDatabaseStructure)
- stateTimer = [[NSTimer scheduledTimerWithTimeInterval:0.07f target:self selector:@selector(updateSyncArrowStatus) userInfo:nil repeats:YES] retain];
fuzzyMode = fuzzySearch;
if(fuzzyMode)
@@ -299,6 +304,11 @@
if(someAdditionalWordCharacters)
[textualInputCharacters addCharactersInString:someAdditionalWordCharacters];
+ databaseStructureRetrieval = [theDatabaseStructure retain];
+ isQueryingDatabaseStructure = [databaseStructureRetrieval isQueryingDatabaseStructure];
+
+ if(isQueryingDatabaseStructure)
+ stateTimer = [[NSTimer scheduledTimerWithTimeInterval:0.07f target:self selector:@selector(updateSyncArrowStatus) userInfo:nil repeats:YES] retain];
}
return self;
}