aboutsummaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/SPTableData.m3
-rw-r--r--Source/TablesList.m5
2 files changed, 6 insertions, 2 deletions
diff --git a/Source/SPTableData.m b/Source/SPTableData.m
index 965ec042..520e0b25 100644
--- a/Source/SPTableData.m
+++ b/Source/SPTableData.m
@@ -338,7 +338,8 @@
tableName, [mySQLConnection getLastErrorMessage]]);
// If the current table doesn't exist anymore reload table list
if([mySQLConnection getLastErrorID] == 1146) {
- [tableListInstance updateTables:nil];
+ [[tableListInstance valueForKeyPath:@"tablesListView"] deselectAll:nil];
+ [tableListInstance updateTables:self];
}
}
diff --git a/Source/TablesList.m b/Source/TablesList.m
index a81c6d75..2a9a7657 100644
--- a/Source/TablesList.m
+++ b/Source/TablesList.m
@@ -221,7 +221,10 @@
[tablesListView reloadData];
// if the previous selected table still exists, select it
- if( previousSelectedTable != nil && [tables indexOfObject:previousSelectedTable] < [tables count]) {
+ // but not if the update was called from SPTableData since it calls that method
+ // if a selected table doesn't exist - this happens if a table was deleted/renamed by an other user
+ // or if the table name contains characters which are not supported by the current set encoding
+ if( ![sender isKindOfClass:[SPTableData class]] && previousSelectedTable != nil && [tables indexOfObject:previousSelectedTable] < [tables count]) {
NSInteger itemToReselect = [tables indexOfObject:previousSelectedTable];
tableListIsSelectable = YES;
[tablesListView selectRowIndexes:[NSIndexSet indexSetWithIndex:itemToReselect] byExtendingSelection:NO];