summaryrefslogtreecommitdiffstats
path: root/src
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 /src
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>
Diffstat (limited to 'src')
-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();