- Open the attached XLSX file. - Change A1 to 2. A10:A11 should alternate background colors based on A1 being odd/even. => No changes shown in A10:A11. - Scroll away and back. => Colors in A10:A11 are finally updated. Observed using LO 6.0.0.3 & 5.2.0.4 / Windows 7. No issue using LO 5.1.0.3. => regression No issue when opening the same file saved as XLS or ODS.
Created attachment 139679 [details] Sample XLSX
Bibisected to the following commit using repo bibisect-win32-5.2. Adding Cc: to Markus Mohrhard. author Markus Mohrhard <markus.mohrhard@googlemail.com> 2016-03-26 13:11:53 +0100 committer Markus Mohrhard <markus.mohrhard@googlemail.com> 2016-03-26 16:59:20 +0100 switch to a listener based cond format update, tdf#95437
And the commit link: https://cgit.freedesktop.org/libreoffice/core/commit/?id=88a0c7d01b7dfd085a0569030f97cc7de0f0d106
It seems that when ScConditionEntry::StartListening() is called during XLSX import, the ranges aren't there yet. My idea is that in the following function: void CondFormat::finalizeImport() https://opengrok.libreoffice.org/xref/core/sc/source/filter/oox/condformatbuffer.cxx#1052 ...move the following line: mpFormat->SetRange(maModel.maRanges); ...so it precedes this one: maRules.forEachMem( &CondFormatRule::finalizeImport ); Based on a quick test that seems to fix the issue, but not sure if there's more to it.
(In reply to Aron Budea from comment #4) > It seems that when ScConditionEntry::StartListening() is called during XLSX > import, the ranges aren't there yet. > > My idea is that in the following function: > void CondFormat::finalizeImport() > https://opengrok.libreoffice.org/xref/core/sc/source/filter/oox/ > condformatbuffer.cxx#1052 > > ...move the following line: > mpFormat->SetRange(maModel.maRanges); > > ...so it precedes this one: > maRules.forEachMem( &CondFormatRule::finalizeImport ); > > Based on a quick test that seems to fix the issue, but not sure if there's > more to it. I think it should fix all cases. XLSX does not allow some of the complicated formulas that would require us to move the formula calculation after the import.
Aron Budea committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=26b51c9550ef300e7685fc41eb9cde4dbbc11265 for listeners the range needs to be set before the formula, tdf#115530 It will be available in 6.1.0. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Aron Budea committed a patch related to this issue. It has been pushed to "libreoffice-6-0": http://cgit.freedesktop.org/libreoffice/core/commit/?id=2e06dfb831a93b8207cc4e0f43221ef5eeb1853b&h=libreoffice-6-0 for listeners the range needs to be set before the formula, tdf#115530 It will be available in 6.0.2. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Markus Mohrhard committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=dc0cdf9396af7cd0d4517fac102a604b99834e68 add test for tdf#115530 It will be available in 6.1.0. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Aron Budea committed a patch related to this issue. It has been pushed to "libreoffice-5-4": http://cgit.freedesktop.org/libreoffice/core/commit/?id=56e0895730fa289d72333d7b432122292e37b4c4&h=libreoffice-5-4 for listeners the range needs to be set before the formula, tdf#115530 It will be available in 5.4.6. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.