diff options
author | rowanbeentje <rowan@beent.je> | 2010-03-08 00:20:24 +0000 |
---|---|---|
committer | rowanbeentje <rowan@beent.je> | 2010-03-08 00:20:24 +0000 |
commit | d638ce370f202cb9d8338eeb3f981d9f70f548ff (patch) | |
tree | 98158d357adb872e73346e72a1bb6658da7dd70b | |
parent | 4c46e5ed3e78002f7f3c791c545f63556d6c8028 (diff) | |
download | sequelpro-d638ce370f202cb9d8338eeb3f981d9f70f548ff.tar.gz sequelpro-d638ce370f202cb9d8338eeb3f981d9f70f548ff.tar.bz2 sequelpro-d638ce370f202cb9d8338eeb3f981d9f70f548ff.zip |
- Move history popup construction to the main thread, fixing crashes probably caused by non-thread-safe menu interaction. This addresses http://log.sequelpro.com/view/19
-rw-r--r-- | Source/CustomQuery.h | 1 | ||||
-rw-r--r-- | Source/CustomQuery.m | 13 |
2 files changed, 12 insertions, 2 deletions
diff --git a/Source/CustomQuery.h b/Source/CustomQuery.h index e73f70da..526010ad 100644 --- a/Source/CustomQuery.h +++ b/Source/CustomQuery.h @@ -225,6 +225,7 @@ - (NSUInteger)numberOfQueries; - (NSString *)buildHistoryString; +- (void)addHistoryEntry:(NSString *)entryString; - (void)historyItemsHaveBeenUpdated:(id)manager; diff --git a/Source/CustomQuery.m b/Source/CustomQuery.m index 2992d373..2e26f08e 100644 --- a/Source/CustomQuery.m +++ b/Source/CustomQuery.m @@ -713,8 +713,7 @@ // add query to history if(!reloadingExistingResult && [usedQuery length]) - [[SPQueryController sharedQueryController] addHistory:usedQuery forFileURL:[tableDocumentInstance fileURL]]; - + [self performSelectorOnMainThread:@selector(addHistoryEntry:) withObject:usedQuery waitUntilDone:NO]; // Error checking if ( [mySQLConnection queryCancelled] || ([errors length] && !queryIsTableSorter)) { @@ -2886,6 +2885,16 @@ { return [[[SPQueryController sharedQueryController] historyForFileURL:[tableDocumentInstance fileURL]] componentsJoinedByString:@";\n"]; } + +/** + * Add a query string to the file/global history, via the query controller. + * Single argument allows calls on the main thread. + */ +- (void)addHistoryEntry:(NSString *)entryString +{ + [[SPQueryController sharedQueryController] addHistory:entryString forFileURL:[tableDocumentInstance fileURL]]; +} + /* * This method is called as part of Key Value Observing which is used to watch for prefernce changes which effect the interface. */ |