19#include <KDABLibFakes>
26 qDebug(
"Calling PolarGrid::calculateGrid()");
31 l = rawDataDimensions;
40 qreal result = origResult;
87 Q_ASSERT(plane->diagram());
89 Q_ASSERT_X(plane,
"PolarGrid::drawGrid",
90 "Bad function call: PaintContext::coodinatePlane() NOT a polar plane.");
92 const GridAttributes gridAttrsCircular(plane->gridAttributes(
true));
93 const GridAttributes gridAttrsSagittal(plane->gridAttributes(
false));
105 if (
dynamic_cast<PieDiagram *
>(plane->diagrams().first()))
120 Q_ASSERT(plane->diagram()->model());
122 const int numberOfSpokes = ( int )(360 / plane->angleUnit());
134 const qreal labelHeight = metric.
height();
136 destRect.
setY(destRect.
y() + 2 * labelHeight);
138 offset.
setY(labelHeight);
146 for (
int i = 0; i < model->
rowCount(); ++i) {
148 const int angle = ( int )startLine.
angleTo(currentLine) % 360;
149 const qreal angleTest = qAbs(angle - 180);
154 else if (qAbs(angleTest - 180) < 5.0)
156 else if (angle < 175 && angle > 5)
158 else if (angle < 355 && angle > 185)
163 if (plane->globalGridAttributes().isGridVisible()) {
166 for (
int i = 0; i < numberOfSpokes; ++i) {
181 const qreal textHeight = metric.
height() / 2.0;
182 QPointF textOffset(textLength, -textHeight);
185 _topLeft.
setY(translatedPoint.
y());
186 QRectF boundary(_topLeft, (translatedPoint +
QPointF(0, step / 2.0)));
188 if (fontSize != calcFontSize) {
194 textOffset.
setY(-textHeight2);
197 fontSize = calcFontSize;
202 plane->setTextAttributes(ta);
QRectF rotatedRect(const QRectF &rect, qreal rotation)
static QPointF scaleToRealPosition(const QPointF &origin, const QRectF &sourceRect, const QRectF &destRect, const AbstractCoordinatePlane &plane)
static qreal fitFontSizeToGeometry(const QString &text, const QFont &font, const QRectF &geometry, const TextAttributes &ta)
QPointF scaleToRect(const QPointF &origin, const QRectF &sourceRect, const QRectF &destRect)
Base class common for all coordinate planes, CartesianCoordinatePlane, PolarCoordinatePlane,...
virtual const QPointF translate(const QPointF &diagramPoint) const =0
const QPair< QPointF, QPointF > dataBoundaries() const
Return the bottom left and top right data point, that the diagram will display (unless the grid adjus...
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.
static QPen scalePen(const QPen &pen)
void drawGrid(PaintContext *context) override
A set of text attributes.
void setFontSize(const Measure &measure)
void setFont(const QFont &font)
virtual int rowCount(const QModelIndex &parent) const const=0
qreal pointSizeF() const const
void setPointSizeF(qreal pointSize)
QRect boundingRect(QChar ch) const const
int horizontalAdvance(const QString &text, int len) const const
qreal height() const const
qreal horizontalAdvance(const QString &text, int length) const const
qreal angleTo(const QLineF &line) const const
QPointF pointAt(qreal t) const const
const QBrush & brush() const const
void drawLine(const QLineF &line)
void drawText(const QPointF &position, const QString &text)
void setBrush(const QBrush &brush)
void setFont(const QFont &font)
void setPen(const QColor &color)
qreal height() const const
QRectF normalized() const const
void setHeight(qreal height)
void setSize(const QSizeF &size)
QSizeF size() const const
QPointF topLeft() const const
qreal width() const const
qreal height() const const
bool isNull() const const
qreal width() const const
QString fromLatin1(const char *str, int size)
QString number(int n, int base)
QString toString() const const