mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-19 14:25:27 +00:00
e1c0cace95
The chart items were drawn in order of creation. To control this, add a notion of Z-value. In contrast to QGraphicsScene, make this a small integer value. To controll order of drawing, a plain QSGNode is created for every possible Z-Value and items are added to these nodes. Thus, items are rendered by Z-value and if the Z-value is equal by order of creation. Likewise split the list of chart-items into Z-values, so that items can be quickly unregistered: The items that will be removed individually will usuall be part of Z-levels with only few items (e.g. legend, infobox). Z-levels with many items (notably the series) will always be fully rebuilt. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
29 lines
805 B
C
29 lines
805 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
// Defines the z-values of features in the chart view.
|
|
// Objects with higher z-values are painted on top of objects
|
|
// with smaller z-values. For the same z-value objects are
|
|
// drawn in order of addition to the graphics scene.
|
|
#ifndef ZVALUES_H
|
|
|
|
struct ZValues {
|
|
static constexpr double grid = -1.0;
|
|
static constexpr double series = 0.0;
|
|
static constexpr double axes = 1.0;
|
|
static constexpr double seriesLabels = 2.0;
|
|
static constexpr double chartFeatures = 3.0; // quartile markers and regression lines
|
|
static constexpr double informationBox = 4.0;
|
|
static constexpr double legend = 5.0;
|
|
};
|
|
|
|
enum class ChartZValue {
|
|
Grid = 0,
|
|
Series,
|
|
Axes,
|
|
SeriesLabels,
|
|
ChartFeatures, // quartile markers and regression lines
|
|
InformationBox,
|
|
Legend,
|
|
Count
|
|
};
|
|
|
|
#endif
|