summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTitta Heikkala <titta.heikkala@digia.com>2014-06-05 13:31:31 +0300
committerTitta Heikkala <titta.heikkala@digia.com>2014-06-06 08:38:31 +0300
commit85326bf48cb40cd19e612d873e29c4c536a7cbdd (patch)
treea886ad82a5abbb9b3b87828f4d3c48d1a30069d0
parent0ba9a78663508c46f073852151b75c7ebafc1295 (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.cpp2
-rw-r--r--src/scatterchart/scatterchartitem.cpp7
-rw-r--r--src/splinechart/splinechartitem.cpp2
-rw-r--r--src/xychart/qxyseries.cpp7
-rw-r--r--src/xychart/qxyseries_p.h3
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();