19 #include <KDABLibFakes>
26 qDebug(
"Calling PolarGrid::calculateGrid()");
27 Q_ASSERT_X(rawDataDimensions.count() == 2,
"PolarGrid::calculateGrid",
28 "calculateGrid() expects a list with exactly two entries.");
30 "PaintContext::calculatePlane() called, but no polar plane set.");
36 l = rawDataDimensions;
45 const QBrush backupBrush(context->
painter()->brush());
46 context->
painter()->setBrush(QBrush());
48 Q_ASSERT_X(plane,
"PolarGrid::drawGrid",
49 "Bad function call: PaintContext::coodinatePlane() NOT a polar plane.");
51 const GridAttributes gridAttrsCircular(plane->gridAttributes(
true));
52 const GridAttributes gridAttrsSagittal(plane->gridAttributes(
false));
64 if (
dynamic_cast<PieDiagram *
>(plane->diagrams().first()))
69 QPointF origin = plane->translate(QPointF(min, 0)) + context->
rectangle().topLeft();
75 const int numberOfSpokes = ( int )(360 / plane->angleUnit());
76 for (
int i = 0; i < numberOfSpokes; ++i) {
77 context->
painter()->drawLine(origin, plane->translate(QPointF(r - qAbs(min), i)) + context->
rectangle().topLeft());
82 const qreal startPos = plane->startPosition();
83 plane->setStartPosition(0.0);
85 for (
int j = 0; j < numberOfGridRings; ++j) {
86 const qreal rad = min - ((j + 1) * r / numberOfGridRings);
93 QPointF bottomRightPoint;
95 topLeftPoint = plane->translate(QPointF(rad, 0));
96 topLeftPoint.setX(plane->translate(QPointF(rad, 90 / plane->angleUnit())).x());
97 bottomRightPoint = plane->translate(QPointF(rad, 180 / plane->angleUnit()));
98 bottomRightPoint.setX(plane->translate(QPointF(rad, 270 / plane->angleUnit())).x());
100 rect.setTopLeft(topLeftPoint + context->
rectangle().topLeft());
101 rect.setBottomRight(bottomRightPoint + context->
rectangle().topLeft());
103 context->
painter()->drawEllipse(rect);
105 plane->setStartPosition(startPos);
107 context->
painter()->setBrush(backupBrush);
const QPair< QPointF, QPointF > dataBoundaries() const
Return the bottom left and top right data point, that the diagram will display (unless the grid adjus...
AbstractCoordinatePlane * mPlane
Base class for diagrams based on a polar coordinate system.
virtual qreal numberOfGridRings() const =0
A set of attributes controlling the appearance of grids.
bool isGridVisible() const
Stores information about painting diagrams.
const QRectF rectangle() const
AbstractCoordinatePlane * coordinatePlane() const
QPainter * painter() const
PieDiagram defines a common pie diagram.
void drawGrid(PaintContext *context) override
static QPen scalePen(const QPen &pen)
QList< DataDimension > DataDimensionsList