From b98dc4dc89367dd743d5c8e7e20ca481cc4ec58f Mon Sep 17 00:00:00 2001 From: mltownsend Date: Tue, 25 Aug 2009 23:07:20 +0000 Subject: Made it so that SPTableView and SPOutlineView will respond to enter or return being hit when a row is selected and go into edit mode. --- Source/SPOutlineView.h | 33 +++++++++++++++++++++++++++++++++ Source/SPOutlineView.m | 46 ++++++++++++++++++++++++++++++++++++++++++++++ Source/SPTableView.m | 16 ++++++++++++++++ Source/SPUserManager.m | 12 +++++++++--- 4 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 Source/SPOutlineView.h create mode 100644 Source/SPOutlineView.m (limited to 'Source') diff --git a/Source/SPOutlineView.h b/Source/SPOutlineView.h new file mode 100644 index 00000000..c361f788 --- /dev/null +++ b/Source/SPOutlineView.h @@ -0,0 +1,33 @@ +// +// $Id: SPUserManager.m 856 2009-06-12 05:31:39Z mltownsend $ +// +// SPOutlineView.h +// sequel-pro +// +// Created by Mark Townsend on Aug 25, 2009 +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// More info at + + +#import + + +@interface SPOutlineView : NSOutlineView { + +} + +@end diff --git a/Source/SPOutlineView.m b/Source/SPOutlineView.m new file mode 100644 index 00000000..97f8cab3 --- /dev/null +++ b/Source/SPOutlineView.m @@ -0,0 +1,46 @@ +// +// $Id: SPUserManager.m 856 2009-06-12 05:31:39Z mltownsend $ +// +// SPOutlineView.m +// sequel-pro +// +// Created by Mark Townsend on Aug 25, 2009 +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// More info at + + +#import "SPOutlineView.h" + + +@implementation SPOutlineView + +- (BOOL)acceptsFirstResponder +{ + return YES; +} + +-(void)keyDown:(NSEvent *)theEvent +{ + if([self numberOfSelectedRows] == 1 && ([theEvent keyCode] == 36 || [theEvent keyCode] == 76)) + { + [self editColumn:0 row:[self selectedRow] withEvent:nil select:YES]; + } + else { + [super keyDown:theEvent]; + } +} +@end diff --git a/Source/SPTableView.m b/Source/SPTableView.m index bff7a923..f6af2c16 100644 --- a/Source/SPTableView.m +++ b/Source/SPTableView.m @@ -54,4 +54,20 @@ return [self menu]; } +-(BOOL)acceptsFirstResponder +{ + return YES; +} + +- (void)keyDown:(NSEvent *)theEvent +{ + if([self numberOfSelectedRows] == 1 && ([theEvent keyCode] == 36 || [theEvent keyCode] == 76)) + { + [self editColumn:0 row:[self selectedRow] withEvent:nil select:YES]; + } + else { + [super keyDown:theEvent]; + } +} + @end diff --git a/Source/SPUserManager.m b/Source/SPUserManager.m index dbac9ea2..44f499be 100644 --- a/Source/SPUserManager.m +++ b/Source/SPUserManager.m @@ -407,7 +407,10 @@ [treeController addChild:sender]; // Need to figure out how to do this right. I want to be able to have the newly // added item be in edit mode to change the host name. -// [outlineView editColumn:0 row:[outlineView selectedRow] withEvent:nil select:TRUE]; + NSLog(@"selectedRow: %d", [outlineView selectedRow]); + NSIndexPath *indexPath = [treeController selectionIndexPath]; + NSLog(@"selectedChild: %d", [indexPath indexAtPosition:[outlineView selectedRow]]); + [outlineView editColumn:0 row:[outlineView selectedRow] withEvent:nil select:TRUE]; } - (IBAction)removeHost:(id)sender @@ -425,11 +428,14 @@ - (BOOL)validateMenuItem:(NSMenuItem *)menuItem { - if ([menuItem action] == @selector(addHost:) || - [menuItem action] == @selector(removeHost:)) + if ([menuItem action] == @selector(removeHost:)) { return (([[treeController selectedObjects] count] > 0) && [[[treeController selectedObjects] objectAtIndex:0] parent] != nil); + } + else if ([menuItem action] == @selector(addHost:)) + { + return ([[treeController selectedObjects] count] > 0); } return TRUE; } -- cgit v1.2.3