diff options
author | Bibiko <bibiko@eva.mpg.de> | 2010-02-19 17:12:49 +0000 |
---|---|---|
committer | Bibiko <bibiko@eva.mpg.de> | 2010-02-19 17:12:49 +0000 |
commit | 2583d511db232ca276c1718fbef871880c00625b (patch) | |
tree | 437a157de6eb4ce4677c0ee250ed41c74a3dce36 | |
parent | e82b66825a20ab9abb62a09cc29361af6343648b (diff) | |
download | sequelpro-2583d511db232ca276c1718fbef871880c00625b.tar.gz sequelpro-2583d511db232ca276c1718fbef871880c00625b.tar.bz2 sequelpro-2583d511db232ca276c1718fbef871880c00625b.zip |
• fixed color setting for editing a table cell which is set to NULL if table columns are reordered by the user
• initial transition to insert via - up to now - ^⇧N a [NSNull null] object into the table's data source directly without parsing a possible @"NULL" string
- it's a first test
- and works only for CMCopyTable subclassed tables
-rw-r--r-- | Source/SPTextViewAdditions.m | 9 | ||||
-rw-r--r-- | Source/TableContent.m | 15 |
2 files changed, 15 insertions, 9 deletions
diff --git a/Source/SPTextViewAdditions.m b/Source/SPTextViewAdditions.m index 63a01798..ef0dff38 100644 --- a/Source/SPTextViewAdditions.m +++ b/Source/SPTextViewAdditions.m @@ -390,6 +390,15 @@ */ - (IBAction)insertNULLvalue:(id)sender { + + // If self is an edited table cell insert [NSNull null] directly in the table's data source + // TODO: up to now only for CMCopyTable + if([[[[self delegate] class] description] isEqualToString:@"CMCopyTable"]) { + id aTableView = [self delegate]; + NSUInteger currentEditedColumn = [aTableView editedColumn]; + NSUInteger currentEditedRow = [aTableView editedRow]; + [[aTableView delegate] tableView:aTableView setObjectValue:[NSNull null] forTableColumn:[[aTableView tableColumns] objectAtIndex:currentEditedColumn] row:currentEditedRow]; + } id prefs = [NSUserDefaults standardUserDefaults]; if([self respondsToSelector:@selector(insertText:)]) if([prefs objectForKey:SPNullValue] && [[prefs objectForKey:SPNullValue] length]) diff --git a/Source/TableContent.m b/Source/TableContent.m index 3b22db96..4d878527 100644 --- a/Source/TableContent.m +++ b/Source/TableContent.m @@ -2718,7 +2718,9 @@ // If user wants to edit 'cell' set text color to black and return to avoid // writing in gray if value was NULL - if ( [aTableView editedColumn] == columnIndex && [aTableView editedRow] == rowIndex) { + if ([aTableView editedColumn] != -1 + && [aTableView editedRow] == rowIndex + && [[NSArrayObjectAtIndex([aTableView tableColumns], [aTableView editedColumn]) identifier] integerValue] == columnIndex) { [cell setTextColor:[NSColor blackColor]]; return; } @@ -2744,17 +2746,12 @@ } NSDictionary *column = NSArrayObjectAtIndex(dataColumns, [[aTableColumn identifier] integerValue]); - - if (anObject) { - - // Restore NULLs if necessary - if ([anObject isEqualToString:[prefs objectForKey:SPNullValue]] && [[column objectForKey:@"null"] boolValue]) - anObject = [NSNull null]; + if (anObject) [tableValues replaceObjectInRow:rowIndex column:[[aTableColumn identifier] integerValue] withObject:anObject]; - } else { + else [tableValues replaceObjectInRow:rowIndex column:[[aTableColumn identifier] integerValue] withObject:@""]; - } + } #pragma mark - |