diff options
author | Titta Heikkala <titta.heikkala@digia.com> | 2014-06-05 13:31:31 +0300 |
---|---|---|
committer | Titta Heikkala <titta.heikkala@digia.com> | 2014-06-06 08:38:31 +0300 |
commit | 85326bf48cb40cd19e612d873e29c4c536a7cbdd (patch) | |
tree | a886ad82a5abbb9b3b87828f4d3c48d1a30069d0 | |
parent | 0ba9a78663508c46f073852151b75c7ebafc1295 (diff) |
Fix point label position for QXYSeries
The point label is positioned above the line or the marker based
on the pen width and marker size.
Task-number: QTRD-3167
Change-Id: I67b0eabce025235ef2e19bf50c41b8ee1382dd7e
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
-rw-r--r-- | src/linechart/linechartitem.cpp | 2 | ||||
-rw-r--r-- | src/scatterchart/scatterchartitem.cpp | 7 | ||||
-rw-r--r-- | src/splinechart/splinechartitem.cpp | 2 | ||||
-rw-r--r-- | src/xychart/qxyseries.cpp | 7 | ||||
-rw-r--r-- | src/xychart/qxyseries_p.h | 3 |
5 files changed, 13 insertions, 8 deletions
diff --git a/src/linechart/linechartitem.cpp b/src/linechart/linechartitem.cpp index f279a3e1..da7c0c50 100644 --- a/src/linechart/linechartitem.cpp +++ b/src/linechart/linechartitem.cpp @@ -374,7 +374,7 @@ void LineChartItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *opt } if (m_pointLabelsVisible) - m_series->d_func()->drawSeriesPointLabels(painter, m_points); + m_series->d_func()->drawSeriesPointLabels(painter, m_points, m_linePen.width() / 2); painter->restore(); diff --git a/src/scatterchart/scatterchartitem.cpp b/src/scatterchart/scatterchartitem.cpp index 238c958a..dda32e55 100644 --- a/src/scatterchart/scatterchartitem.cpp +++ b/src/scatterchart/scatterchartitem.cpp @@ -178,8 +178,11 @@ void ScatterChartItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * painter->save(); painter->setClipRect(clipRect); - if (m_pointLabelsVisible) - m_series->d_func()->drawSeriesPointLabels(painter, m_points); + if (m_pointLabelsVisible) { + m_series->d_func()->drawSeriesPointLabels(painter, m_points, + m_series->markerSize() / 2 + + m_series->pen().width()); + } painter->restore(); } diff --git a/src/splinechart/splinechartitem.cpp b/src/splinechart/splinechartitem.cpp index c9d1a521..2b14686f 100644 --- a/src/splinechart/splinechartitem.cpp +++ b/src/splinechart/splinechartitem.cpp @@ -457,7 +457,7 @@ void SplineChartItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *o } if (m_pointLabelsVisible) - m_series->d_func()->drawSeriesPointLabels(painter, m_points); + m_series->d_func()->drawSeriesPointLabels(painter, m_points, m_linePen.width() / 2); painter->restore(); } diff --git a/src/xychart/qxyseries.cpp b/src/xychart/qxyseries.cpp index 6c56a7b1..448e3833 100644 --- a/src/xychart/qxyseries.cpp +++ b/src/xychart/qxyseries.cpp @@ -772,11 +772,12 @@ void QXYSeriesPrivate::initializeAnimations(QtCommercialChart::QChart::Animation QAbstractSeriesPrivate::initializeAnimations(options); } -void QXYSeriesPrivate::drawSeriesPointLabels(QPainter *painter, const QVector<QPointF> &points) +void QXYSeriesPrivate::drawSeriesPointLabels(QPainter *painter, const QVector<QPointF> &points, + const int offset) { static const QString xPointTag(QLatin1String("@xPoint")); static const QString yPointTag(QLatin1String("@yPoint")); - const int labelOffset = 2; + const int labelOffset = offset + 2; painter->setFont(m_pointLabelsFont); painter->setPen(QPen(m_pointLabelsColor)); @@ -791,7 +792,7 @@ void QXYSeriesPrivate::drawSeriesPointLabels(QPainter *painter, const QVector<QP int pointLabelWidth = fm.width(pointLabel); QPointF position(points.at(i)); position.setX(position.x() - pointLabelWidth / 2); - position.setY(position.y() - painter->pen().width() / 2 - labelOffset); + position.setY(position.y() - labelOffset); painter->drawText(position, pointLabel); } diff --git a/src/xychart/qxyseries_p.h b/src/xychart/qxyseries_p.h index 64dec648..996f0f0d 100644 --- a/src/xychart/qxyseries_p.h +++ b/src/xychart/qxyseries_p.h @@ -53,7 +53,8 @@ public: QAbstractAxis::AxisType defaultAxisType(Qt::Orientation orientation) const; QAbstractAxis* createDefaultAxis(Qt::Orientation orientation) const; - void drawSeriesPointLabels(QPainter *painter, const QVector<QPointF> &points); + void drawSeriesPointLabels(QPainter *painter, const QVector<QPointF> &points, + const int offset = 0); Q_SIGNALS: void updated(); |