Bug 88704 - possible regression introduced by "fdo#88551 no need to update content from field when activating grid cell"
Summary: possible regression introduced by "fdo#88551 no need to update content from f...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Base (show other bugs)
(earliest affected) Master
Hardware: All All
: medium normal
Assignee: Not Assigned
Depends on:
Blocks: Database-Forms
  Show dependency treegraph
Reported: 2015-01-22 13:53 UTC by Lionel Elie Mamane
Modified: 2020-10-11 21:00 UTC (History)
0 users

See Also:
Crash report or crash signature:
Regression By:


Note You need to log in before you can comment on or make changes to this bug.
Description Lionel Elie Mamane 2015-01-22 13:53:29 UTC
AKA http://cgit.freedesktop.org/libreoffice/core/commit/?id=08bdb40656898fc484f5200b63610a31369ddd87

InitController is also called from DbGridControl::RowModified, and there it seems it makes sense to call pColumn->UpdateFromField (that is, the content of the removed InitController).

This makes the whole issue rather more complicated, since there are other implementors of InitController (derived classes of EditBrowseBox)... Need to understand things better.

Although... RowModified is called from:

1) DbGridControl::FieldValueChanged, but there pColumn->UpdateFromField is called right before!

2) RowSetEventListener::rowsChanged
   there, makes sense to call, could be missing now

3) DbGridControl::SetCurrent
   but there the xUpdateCursor->moveToInsertRow() or
   m_pDataCursor->moveToBookmark already took care
   (through value changed events) to update the column's values
   no need to do it again

4) DbGridControl::AdjustDataSource

5) DbGridControl::AdjustDataSource a second time
   right after SetCurrent, see above... <sigh>

6) DbGridControl::Undo

7) DbGridControl::resetCurrentRow
   where the comment explicitly says RowModified will update the controller...

8) DbGridControl::SaveRow
   ok, makes sense to reload

Looking at DbGridControl in isolation, we could stick the previous content of InitController into RowModified, but need to look at the other implementers of InitController for a complete understanding.