View Issue Details

IDProjectCategoryView StatusLast Update
0023660LazarusLCLpublic2013-01-23 16:30
ReporterIan Goddard Assigned ToBart Broersma  
PrioritynormalSeverityminorReproducibilityN/A
Status resolvedResolutionfixed 
Product Version1.0.4 
Summary0023660: TStringGrid option goAutoAddRows has restricted functionality
DescriptionASAICS the auto-add rows only adds rows if (a) the existing last row has at least one non-empty cell and (b) the user uses the down-arrow key to attempt to move down. The following use cases need to be dealt with:

1. The user wishes to ensure the grid has all the rows needed before entering data. In this case it should be possible to add rows irrespective of whether the last row has a non-empty cell.

2. The user wishes to use tab rather than arrow keys for navigation. A new row should be added if auto advance is set to right and down (or laft and down) and the user presses tab at the appropriate end of the row. A new row should also be added if auto advance is set to down and the user presses tab anywhere on the last row.

3. The user wishes to use the mouse for navigation. If the user clicks on the space below the last row and the cursor is not on the last row it will move down to the last row. It may seem intuitive to the user that if the cursor is already on the last row another row should be added and the cursor moved to that. This last case is more marginal but should be considered.
TagsNo tags attached.
Fixed in Revisionr39864, r39938, r39940
LazTarget-
WidgetsetGTK 2
Attached Files

Relationships

related to 0023652 resolvedJesus Reyes Adding stringgrid row causes onValidate event to fail 

Activities

Bart Broersma

2013-01-16 16:13

developer   ~0064921

Can you check with r39864.
I implemented using Tab key for goAutoAddRows option.

It only works if goTabs is in options.
And it only adds a row when you are in the last cell (which I think is more intuitive, it behaves just like editing tables in MS Word or OpenOffice).

If this part is OK I will implement the "don't bother if the row is empty or not" issue.

I won't implement the "mouse-part" of this request.

Ian Goddard

2013-01-16 16:42

reporter   ~0064922

Hi, Bart. I can't find r39864; there seems to be no issue with that number. Is it a patch?

I have goTabs set but it doesn't add rows. However I'm using the standard 1.0.4 for deb package so perhaps it hasn't worked through to the release yet.

I agree about intuitive in the last /row/ (not necessarily the last /cell/, the user might not have data for all the cells so no cause to go to a specific one). There is a possibility that aaLeftUp or aaRightUp might be set so the user could try to tab upwards. However I think that can be treated as too pathological a case to implement; it would certainly be be trickier.

Vojtech Cihak

2013-01-16 18:25

reporter   ~0064923

It is a SVN revision. You can download the development version and compile Lazarus yourself.
http://wiki.freepascal.org/Getting_Lazarus#Using_the_command_line

Bart Broersma

2013-01-23 15:29

developer   ~0065103

In r39938 I implemented goTabIgnoreAutoAdvance option.
If set (and goTabs in Options), then Tab key traverses grid like in aaRightDown mode, much like tables in common wordprocessors.

Bart Broersma

2013-01-23 15:33

developer   ~0065104

Last edited: 2013-01-23 15:38

@Ian: you can try a snapshot from http://freepascal.dfmk.hu/test/lazarus/ (deb file) and test. With todays snapshot you can test the "Tab adds a Row" feature.

Bart Broersma

2013-01-23 16:30

developer   ~0065105

I introduced the goIgnoreRowContentForAutoAddRows option in r39940.
If set then AutoAddRows will add a row even if last row is empty.
The then added row will not be removed if it is empty when user moves the cursor up.

Please test and close if OK.

Issue History

Date Modified Username Field Change
2013-01-16 12:32 Ian Goddard New Issue
2013-01-16 12:32 Ian Goddard Widgetset => GTK 2
2013-01-16 13:37 Bart Broersma Status new => assigned
2013-01-16 13:37 Bart Broersma Assigned To => Bart Broersma
2013-01-16 16:13 Bart Broersma LazTarget => -
2013-01-16 16:13 Bart Broersma Note Added: 0064921
2013-01-16 16:13 Bart Broersma Status assigned => feedback
2013-01-16 16:42 Ian Goddard Note Added: 0064922
2013-01-16 18:25 Vojtech Cihak Note Added: 0064923
2013-01-16 18:48 Juha Manninen Relationship added related to 0023652
2013-01-23 15:29 Bart Broersma Note Added: 0065103
2013-01-23 15:33 Bart Broersma Note Added: 0065104
2013-01-23 15:38 Bart Broersma Note Edited: 0065104
2013-01-23 15:38 Bart Broersma Note Edited: 0065104
2013-01-23 16:30 Bart Broersma Fixed in Revision => r39864, r39938, r39940
2013-01-23 16:30 Bart Broersma Status feedback => resolved
2013-01-23 16:30 Bart Broersma Resolution open => fixed
2013-01-23 16:30 Bart Broersma Note Added: 0065105