Bug 50463 - Allow overlaying conditional formats
Summary: Allow overlaying conditional formats
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
unspecified
Hardware: Other All
: medium normal
Assignee: Markus Mohrhard
URL:
Whiteboard:
Keywords:
: 40530 (view as bug list)
Depends on:
Blocks: 50460
  Show dependency treegraph
 
Reported: 2012-05-29 06:46 UTC by Markus Mohrhard
Modified: 2012-10-06 00:21 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Mohrhard 2012-05-29 06:46:57 UTC
Currently only one ScConditionalFormat is allowed per cell because they are stored by index in ScPattrArray. We should move to a concept that allows having multiple conditional formats overlaying so that we no longer remove the old conditional format if we define a new one on the same area.

This will help extremely to keep the ScRangeList in ScConditionalFormat/ScColorFormat and the cell storage in sync.
Comment 1 Markus Mohrhard 2012-08-06 18:32:18 UTC
*** Bug 40530 has been marked as a duplicate of this bug. ***
Comment 2 Markus Mohrhard 2012-08-31 15:23:29 UTC
After talking to Eike and thinking for some time about a good solution I will inspect:

Storing a structure
struct
{
   int nCondFormats;
   int nCondFormat; // only valid in case of nCondFormats = 1
};

and storing this one instead of the old integer index.

This should be fast for all old document but still allow to have overlying cond formats.
Comment 3 Markus Mohrhard 2012-10-06 00:21:53 UTC
Implemented in feature/cond-format-rework and some parts are already in master.

Implemented now just a vector storing the conditional formats registered to a cell. Together with a set of adjustments to allow easy adding/removing of single entries calc core now supports this feature. This should be the last major feature necessary for conditional formats in calc core.