The current cond format render code is extremely slow when using the new color formats and duplicate/unique entries.
The idea is to create the cond formta render information for the whole cond format range at once which brings the algorithm to O(n) instead of O(n^2).
This should be the best we can do before w use a more radical idea to store the render information.
Making it visible in my cond format search.
Making this an EasyHack.
Changes to be done:
The current conditional format code evaluates for every cell the condition
again. The right way is to cache the result for one paint run. So add a method
in conditio.[ch]xx that signals the conditional formats that the cell data
should be cached between these two calls for color scales, data bars and the
unique and duplicate data. Then use these methods in fillinfo.cxx before and
after the cell render information are collected.
Markus Mohrhard committed a patch related to this issue.
It has been pushed to "master":
kill O(N^2) algorithm generating cond format render information, fdo#54396
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:
Affected users are encouraged to test the fix and report feedback.
Migrating Whiteboard tags to Keywords: (EasyHack DifficultyBeginner SkillCpp )