diff --git a/ChangeLog b/ChangeLog index 0c503b1..54d178c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2014-08-04 Riccardo Mottola + + * English.lproj/ProjectCenter.gorm + * Headers/Protocols/CodeEditorView.h + * Modules/Editors/ProjectCenter/PCEditor.m + * Modules/Editors/ProjectCenter/PCEditorView.h + * Modules/Editors/ProjectCenter/PCEditorView.m + Move GoToLine to the View akin to the NSTextView find panel and + declare it in the editor view protocol. + 2014-08-03 German Arias * Modules/Editors/ProjectCenter/PCEditor.m: Don't use diff --git a/English.lproj/ProjectCenter.gorm/data.classes b/English.lproj/ProjectCenter.gorm/data.classes index 8dcac7c..da02fb2 100644 --- a/English.lproj/ProjectCenter.gorm/data.classes +++ b/English.lproj/ProjectCenter.gorm/data.classes @@ -7,8 +7,7 @@ "findNext:", "findPrevious:", "findShowPanel:", - "openGoToLinePanel:", - "newAction:" + "performGoToLinePanelAction:" ); Super = NSObject; }; diff --git a/English.lproj/ProjectCenter.gorm/objects.gorm b/English.lproj/ProjectCenter.gorm/objects.gorm index 7484996..a3871a3 100644 Binary files a/English.lproj/ProjectCenter.gorm/objects.gorm and b/English.lproj/ProjectCenter.gorm/objects.gorm differ diff --git a/Headers/Protocols/CodeEditorView.h b/Headers/Protocols/CodeEditorView.h index d009c65..1824c12 100644 --- a/Headers/Protocols/CodeEditorView.h +++ b/Headers/Protocols/CodeEditorView.h @@ -1,7 +1,7 @@ /* GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html - Copyright (C) 2010 Free Software Foundation + Copyright (C) 2010-2014 Free Software Foundation Authors: Riccardo Mottola @@ -30,4 +30,7 @@ - (NSObject *)editor; +- (void)performGoToLinePanelAction:(id)sender; +- (void)goToLineNumber:(NSUInteger)lineNumber; + @end diff --git a/Modules/Editors/ProjectCenter/PCEditor.m b/Modules/Editors/ProjectCenter/PCEditor.m index 0e3ceea..3de8e02 100644 --- a/Modules/Editors/ProjectCenter/PCEditor.m +++ b/Modules/Editors/ProjectCenter/PCEditor.m @@ -990,30 +990,8 @@ - (void)scrollToLineNumber:(NSUInteger)lineNumber { - NSUInteger offset; - NSUInteger i; - NSString *line; - NSEnumerator *e; - NSArray *lines; - NSRange range; - - lines = [[_intEditorView string] componentsSeparatedByString: @"\n"]; - e = [lines objectEnumerator]; - - for (offset = 0, i = 1; - (line = [e nextObject]) != nil && i < lineNumber; - i++, offset += [line length] + 1); - - if (line != nil) - { - range = NSMakeRange(offset, [line length]); - } - else - { - range = NSMakeRange([[_intEditorView string] length], 0); - } - [_intEditorView setSelectedRange:range]; - [_intEditorView scrollRangeToVisible:range]; + [_intEditorView goToLineNumber:lineNumber]; + [_extEditorView goToLineNumber:lineNumber]; } @end diff --git a/Modules/Editors/ProjectCenter/PCEditorView.h b/Modules/Editors/ProjectCenter/PCEditorView.h index d58efd4..931d6c6 100644 --- a/Modules/Editors/ProjectCenter/PCEditorView.h +++ b/Modules/Editors/ProjectCenter/PCEditorView.h @@ -4,7 +4,7 @@ Interface declaration of the EditorTextView class for the ProjectManager application. - Copyright (C) 2005-2010 Free Software Foundation + Copyright (C) 2005-2014 Free Software Foundation Saso Kiselkov Riccardo Mottola @@ -50,4 +50,10 @@ - (NSRect)selectionRect; +// ===== +// CodeEditorView protocol +// ===== +- (void)performGoToLinePanelAction:(id)sender; +- (void)goToLineNumber:(NSUInteger)lineNumber; + @end diff --git a/Modules/Editors/ProjectCenter/PCEditorView.m b/Modules/Editors/ProjectCenter/PCEditorView.m index 9489e52..715d9ea 100644 --- a/Modules/Editors/ProjectCenter/PCEditorView.m +++ b/Modules/Editors/ProjectCenter/PCEditorView.m @@ -616,4 +616,42 @@ static int ComputeIndentingOffset(NSString * string, unsigned int start) return _insertionPointRect; } +- (void)usesFindPanel +{ + return YES; +} + +- (void)performGoToLinePanelAction:(id)sender +{ + NSLog(@"perform go to line!"); +} + +- (void)goToLineNumber:(NSUInteger)lineNumber +{ + NSUInteger offset; + NSUInteger i; + NSString *line; + NSEnumerator *e; + NSArray *lines; + NSRange range; + + lines = [[self string] componentsSeparatedByString: @"\n"]; + e = [lines objectEnumerator]; + + for (offset = 0, i = 1; + (line = [e nextObject]) != nil && i < lineNumber; + i++, offset += [line length] + 1); + + if (line != nil) + { + range = NSMakeRange(offset, [line length]); + } + else + { + range = NSMakeRange([[self string] length], 0); + } + [self setSelectedRange:range]; + [self scrollRangeToVisible:range]; +} + @end