Corrections to the outline view and the table view.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@14148 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Gregory John Casamento 2002-07-14 23:44:48 +00:00
parent 1f0664c044
commit 68d111e0de
3 changed files with 39 additions and 22 deletions

View file

@ -1,3 +1,15 @@
2002-07-14 Gregory John Casamento <greg_casamento@yahoo.com>
* Source/NSTableView.m:
[-NSTableView _editNextEditableCellAfterRow:column:] corrected
a problem with the loop which seeks the next editable cell. It
was using incorrect values in the call to isCellEditable in the
second for which was causing an exception to be thrown.
* Source/NSOutlineView.m: ([-editColumn:row:withEvent:select:])
corrected a problem in this method which was causing the cell
to be drawn incorrectly when editing a column other than the
outline column.
Fri Jul 12 12:55:17 2002 Nicola Pero <n.pero@mi.flashnet.it>
Patch from Benhur Stein <benhur-gnustep@inf.ufsm.br>:

View file

@ -1125,7 +1125,6 @@ static NSImage *unexpandable = nil;
row: (int) rowIndex
{
id item = [self itemAtRow: rowIndex];
if ([_delegate respondsToSelector:
@selector(outlineView:shouldEditTableColumn:item:)])
{
@ -1582,6 +1581,7 @@ static NSImage *unexpandable = nil;
// of editing.
if (_dataSource_editable == NO)
{
NSLog(@"Data source not editable...");
return;
}
@ -1677,29 +1677,34 @@ static NSImage *unexpandable = nil;
image = unexpandable;
}
// move the drawing rect over like in the drawRow routine...
level = [self levelForItem: item];
indentationFactor = _indentationPerLevel * level;
drawingRect = [self frameOfCellAtColumn: columnIndex row: rowIndex];
drawingRect.origin.x += indentationFactor + 5 + [image size].width;
drawingRect.size.width -= indentationFactor + 5 + [image size].width;
// create the image cell..
imageCell = [[NSCell alloc] initImageCell: image];
if(_indentationMarkerFollowsCell)
if(tb == [self outlineTableColumn])
{
imageRect.origin.x = drawingRect.origin.x + indentationFactor;
imageRect.origin.y = drawingRect.origin.y;
level = [self levelForItem: item];
indentationFactor = _indentationPerLevel * level;
drawingRect.origin.x += indentationFactor + 5 + [image size].width;
drawingRect.size.width -= indentationFactor + 5 + [image size].width;
// create the image cell..
imageCell = [[NSCell alloc] initImageCell: image];
if(_indentationMarkerFollowsCell)
{
imageRect.origin.x = drawingRect.origin.x + indentationFactor;
imageRect.origin.y = drawingRect.origin.y;
}
else
{
imageRect.origin.x = drawingRect.origin.x;
imageRect.origin.y = drawingRect.origin.y;
}
// draw...
imageRect.size.width = [image size].width;
imageRect.size.height = [image size].height;
[imageCell drawWithFrame: imageRect inView: self];
}
else
{
imageRect.origin.x = drawingRect.origin.x;
imageRect.origin.y = drawingRect.origin.y;
}
// draw...
imageRect.size.width = [image size].width;
imageRect.size.height = [image size].height;
[imageCell drawWithFrame: imageRect inView: self];
if (flag)
{
[_editedCell selectWithFrame: drawingRect

View file

@ -2729,7 +2729,6 @@ _isCellEditable (id delegate, NSArray *tableColumns,
{
{
NSTableColumn *tb;
tb = [tableColumns objectAtIndex: column];
if ([tableView _shouldEditTableColumn: tb
row: row] == NO)
@ -6588,6 +6587,7 @@ byExtendingSelection: (BOOL)flag
column: (int)column
{
int i, j;
if (row > -1)
{
// First look for cells in the same row
@ -6605,7 +6605,7 @@ byExtendingSelection: (BOOL)flag
{
for (j = 0; j < _numberOfColumns; j++)
{
if (_isCellEditable (_delegate, _tableColumns, self, row, i) == YES)
if (_isCellEditable (_delegate, _tableColumns, self, i, j) == YES)
{
[self editColumn: j row: i withEvent: nil select: YES];
return YES;