From f6ae8533374461cb00133d4cdaaed1c4172c0940 Mon Sep 17 00:00:00 2001 From: Bibiko Date: Fri, 29 Oct 2010 23:56:40 +0000 Subject: =?UTF-8?q?=E2=80=A2=20Custom=20Query=20and=20Content=20table=20ed?= =?UTF-8?q?iting=20-=20fixed=20issue=20for=20tab=20navigating=20if=20the?= =?UTF-8?q?=20table=20is=20already=20in=20the=20edit=20mode=20-=20!!=20FOR?= =?UTF-8?q?=20SAFETY=20reasons=20disabled=20enter/return/tab=20enters=20th?= =?UTF-8?q?e=20edit=20mode=20!!=20to=20avoid=20crashes=20until=20we=20foun?= =?UTF-8?q?d=20a=20better=20solution=20due=20to=20the=20non-waiting=20fiel?= =?UTF-8?q?d=20editor=20sheets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Source/SPCopyTable.m | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) (limited to 'Source/SPCopyTable.m') diff --git a/Source/SPCopyTable.m b/Source/SPCopyTable.m index c8a32f00..513421a0 100644 --- a/Source/SPCopyTable.m +++ b/Source/SPCopyTable.m @@ -738,27 +738,36 @@ NSInteger MENU_EDIT_COPY_AS_SQL = 2003; // RETURN or ENTER invoke editing mode for selected row // by calling tableView:shouldEditTableColumn: to validate - if([self numberOfSelectedRows] == 1 && ([theEvent keyCode] == 36 || [theEvent keyCode] == 76)) { - for(id item in [self tableColumns]) { - // Run in fieldEditorMode? - if(![[self delegate] tableView:self shouldEditTableColumn:item row:[self selectedRow]]) - ; - else { - [self editColumn:0 row:[self selectedRow] withEvent:nil select:YES]; - break; + // TODO: find a better solution HansJB + if([self numberOfSelectedRows] == 1 && ([theEvent keyCode] == 36 || [theEvent keyCode] == 76)) { + if([[self delegate] isKindOfClass:[SPCustomQuery class]] || [[self delegate] isKindOfClass:[SPTableContent class]]) { + ; + } else { + for(id item in [self tableColumns]) { + // Run in fieldEditorMode? + if(![[self delegate] tableView:self shouldEditTableColumn:item row:[self selectedRow]]) + ; + else { + [self editColumn:0 row:[self selectedRow] withEvent:nil select:YES]; + break; + } } } - return; } - + // Check if ESCAPE is hit and use it to cancel row editing if supported - else if ([theEvent keyCode] == 53 && [[self delegate] respondsToSelector:@selector(cancelRowEditing)]) + if ([theEvent keyCode] == 53 && [[self delegate] respondsToSelector:@selector(cancelRowEditing)]) { if ([[self delegate] cancelRowEditing]) return; } - + + // TODO: find a better solution HansJB + else if ([theEvent keyCode] == 48 && ([[self delegate] isKindOfClass:[SPCustomQuery class]] + || [[self delegate] isKindOfClass:[SPTableContent class]])) { + return; + } [super keyDown:theEvent]; } -- cgit v1.2.3