OSDN Git Service

MacGUI: Implements a part of the NSTableView delegate in ChapterTitles so that pressi...
authorritsuka <ritsuka@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Wed, 4 Jun 2008 18:54:56 +0000 (18:54 +0000)
committerritsuka <ritsuka@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Wed, 4 Jun 2008 18:54:56 +0000 (18:54 +0000)
git-svn-id: svn://localhost/HandBrake/trunk@1492 b64f7644-9d1e-0410-96f1-a4d463321fa5

macosx/ChapterTitles.m
macosx/Controller.mm

index c58a0a0..cc2d50c 100644 (file)
     
     return cellEntry;
 }
+
+/* Method to edit the next chapter when the user presses Return. We have to use
+a timer to avoid interfering with the chain of events that handles the edit. */
+- (void)controlTextDidEndEditing: (NSNotification *) notification
+{
+    NSTableView *chapterTable = [notification object];
+    NSInteger column = [chapterTable editedColumn];
+    NSInteger row = [chapterTable editedRow];
+    int textMovement;
+
+    // Edit the cell in the next row, same column
+    row++;
+    textMovement = [[[notification userInfo] objectForKey:@"NSTextMovement"] intValue];
+    if( textMovement == NSReturnTextMovement && row < [chapterTable numberOfRows] )
+    {
+        NSArray *info = [NSArray arrayWithObjects:chapterTable,
+            [NSNumber numberWithInteger:column], [NSNumber numberWithInteger:row], nil];
+        /* The delay is unimportant; editNextRow: won't be called until the responder
+        chain finishes because the event loop containing the timer is on this thread */
+        [self performSelector:@selector(editNextRow:) withObject:info afterDelay:0.0];
+    }
+}
+
+- (void)editNextRow: (id) objects
+{
+    NSTableView *chapterTable = [objects objectAtIndex:0];
+    NSInteger column = [[objects objectAtIndex:1] integerValue];
+    NSInteger row = [[objects objectAtIndex:2] integerValue];
+
+    if( row >= 0 && row < [chapterTable numberOfRows] )
+    {
+        [chapterTable selectRow:row byExtendingSelection:NO];
+        [chapterTable editColumn:column row:row withEvent:nil select:YES];
+    }
+}
 @end
index b217858..f8d7085 100644 (file)
@@ -90,6 +90,7 @@ static NSString *        ChooseSourceIdentifier             = @"Choose Source It
        
     fChapterTitlesDelegate = [[ChapterTitles alloc] init];
     [fChapterTable setDataSource:fChapterTitlesDelegate];
+    [fChapterTable setDelegate:fChapterTitlesDelegate];
     
     /* Call UpdateUI every 1/2 sec */
     [[NSRunLoop currentRunLoop] addTimer: [NSTimer