From 2db41b8cb90bf26d1c7b4021b730bcb1f8e6ac4c Mon Sep 17 00:00:00 2001 From: Titta Heikkala Date: Mon, 14 Sep 2015 10:46:29 +0300 Subject: Added grid color property for value axis Added possibility to set the color of the grid lines for value axes. Change-Id: I38b634410e7f1cb996d80f5ac1650a1be844ca01 Task-number: QTRD-3319 Reviewed-by: Miikka Heikkinen --- src/charts/axis/cartesianchartaxis.cpp | 20 +++++++++++++ src/charts/axis/cartesianchartaxis_p.h | 2 ++ src/charts/axis/chartaxiselement.cpp | 4 +++ src/charts/axis/chartaxiselement_p.h | 2 ++ src/charts/axis/polarchartaxisangular.cpp | 20 +++++++++++++ src/charts/axis/polarchartaxisangular_p.h | 2 ++ src/charts/axis/polarchartaxisradial.cpp | 20 +++++++++++++ src/charts/axis/polarchartaxisradial_p.h | 2 ++ src/charts/axis/qabstractaxis.cpp | 50 +++++++++++++++++++++++++++++++ src/charts/axis/qabstractaxis.h | 8 +++++ src/chartsqml2/plugins.qmltypes | 10 +++++++ 11 files changed, 140 insertions(+) (limited to 'src') diff --git a/src/charts/axis/cartesianchartaxis.cpp b/src/charts/axis/cartesianchartaxis.cpp index 374d846a..93865228 100644 --- a/src/charts/axis/cartesianchartaxis.cpp +++ b/src/charts/axis/cartesianchartaxis.cpp @@ -225,6 +225,26 @@ void CartesianChartAxis::handleMinorGridPenChanged(const QPen &pen) static_cast(item)->setPen(pen); } +void CartesianChartAxis::handleGridLineColorChanged(const QColor &color) +{ + foreach (QGraphicsItem *item, gridItems()) { + QGraphicsLineItem *lineItem = static_cast(item); + QPen pen = lineItem->pen(); + pen.setColor(color); + lineItem->setPen(pen); + } +} + +void CartesianChartAxis::handleMinorGridLineColorChanged(const QColor &color) +{ + foreach (QGraphicsItem *item, minorGridItems()) { + QGraphicsLineItem *lineItem = static_cast(item); + QPen pen = lineItem->pen(); + pen.setColor(color); + lineItem->setPen(pen); + } +} + void CartesianChartAxis::handleShadesBrushChanged(const QBrush &brush) { foreach (QGraphicsItem *item, shadeItems()) diff --git a/src/charts/axis/cartesianchartaxis_p.h b/src/charts/axis/cartesianchartaxis_p.h index d26d0b35..f8779b0c 100644 --- a/src/charts/axis/cartesianchartaxis_p.h +++ b/src/charts/axis/cartesianchartaxis_p.h @@ -62,6 +62,8 @@ public Q_SLOTS: virtual void handleShadesPenChanged(const QPen &pen); virtual void handleMinorArrowPenChanged(const QPen &pen); virtual void handleMinorGridPenChanged(const QPen &pen); + virtual void handleGridLineColorChanged(const QColor &color); + virtual void handleMinorGridLineColorChanged(const QColor &color); private: void createItems(int count); diff --git a/src/charts/axis/chartaxiselement.cpp b/src/charts/axis/chartaxiselement.cpp index 34d7e840..d8dcaad6 100644 --- a/src/charts/axis/chartaxiselement.cpp +++ b/src/charts/axis/chartaxiselement.cpp @@ -106,6 +106,10 @@ void ChartAxisElement::connectSlots() this, SLOT(handleMinorGridVisibleChanged(bool))); QObject::connect(axis(), SIGNAL(minorGridLinePenChanged(const QPen&)), this, SLOT(handleMinorGridPenChanged(const QPen&))); + QObject::connect(axis(), SIGNAL(gridLineColorChanged(const QColor&)), + this, SLOT(handleGridLineColorChanged(const QColor&))); + QObject::connect(axis(), SIGNAL(minorGridLineColorChanged(const QColor&)), + this, SLOT(handleMinorGridLineColorChanged(const QColor&))); if (axis()->type() == QAbstractAxis::AxisTypeCategory) { QCategoryAxis *categoryAxis = static_cast(axis()); diff --git a/src/charts/axis/chartaxiselement_p.h b/src/charts/axis/chartaxiselement_p.h index 8edbd4d7..85ae2ed3 100644 --- a/src/charts/axis/chartaxiselement_p.h +++ b/src/charts/axis/chartaxiselement_p.h @@ -122,6 +122,8 @@ public Q_SLOTS: virtual void handleGridPenChanged(const QPen &pen) = 0; virtual void handleMinorArrowPenChanged(const QPen &pen) = 0; virtual void handleMinorGridPenChanged(const QPen &pen) = 0; + virtual void handleMinorGridLineColorChanged(const QColor &color) = 0; + virtual void handleGridLineColorChanged(const QColor &color) = 0; void handleLabelsBrushChanged(const QBrush &brush); void handleLabelsFontChanged(const QFont &font); void handleTitleBrushChanged(const QBrush &brush); diff --git a/src/charts/axis/polarchartaxisangular.cpp b/src/charts/axis/polarchartaxisangular.cpp index d1e6547d..1a8cb1fd 100644 --- a/src/charts/axis/polarchartaxisangular.cpp +++ b/src/charts/axis/polarchartaxisangular.cpp @@ -356,6 +356,26 @@ void PolarChartAxisAngular::handleMinorGridPenChanged(const QPen &pen) static_cast(item)->setPen(pen); } +void PolarChartAxisAngular::handleGridLineColorChanged(const QColor &color) +{ + foreach (QGraphicsItem *item, gridItems()) { + QGraphicsLineItem *lineItem = static_cast(item); + QPen pen = lineItem->pen(); + pen.setColor(color); + lineItem->setPen(pen); + } +} + +void PolarChartAxisAngular::handleMinorGridLineColorChanged(const QColor &color) +{ + foreach (QGraphicsItem *item, minorGridItems()) { + QGraphicsLineItem *lineItem = static_cast(item); + QPen pen = lineItem->pen(); + pen.setColor(color); + lineItem->setPen(pen); + } +} + QSizeF PolarChartAxisAngular::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const { Q_UNUSED(which); diff --git a/src/charts/axis/polarchartaxisangular_p.h b/src/charts/axis/polarchartaxisangular_p.h index c8ac9655..4cbb930b 100644 --- a/src/charts/axis/polarchartaxisangular_p.h +++ b/src/charts/axis/polarchartaxisangular_p.h @@ -54,6 +54,8 @@ public Q_SLOTS: virtual void handleGridPenChanged(const QPen &pen); virtual void handleMinorArrowPenChanged(const QPen &pen); virtual void handleMinorGridPenChanged(const QPen &pen); + virtual void handleGridLineColorChanged(const QColor &color); + virtual void handleMinorGridLineColorChanged(const QColor &color); private: QRectF moveLabelToPosition(qreal angularCoordinate, QPointF labelPoint, QRectF labelRect) const; diff --git a/src/charts/axis/polarchartaxisradial.cpp b/src/charts/axis/polarchartaxisradial.cpp index 8cff0c27..3f9cacb1 100644 --- a/src/charts/axis/polarchartaxisradial.cpp +++ b/src/charts/axis/polarchartaxisradial.cpp @@ -332,6 +332,26 @@ void PolarChartAxisRadial::handleMinorGridPenChanged(const QPen &pen) static_cast(item)->setPen(pen); } +void PolarChartAxisRadial::handleGridLineColorChanged(const QColor &color) +{ + foreach (QGraphicsItem *item, gridItems()) { + QGraphicsEllipseItem *ellipseItem = static_cast(item); + QPen pen = ellipseItem->pen(); + pen.setColor(color); + ellipseItem->setPen(pen); + } +} + +void PolarChartAxisRadial::handleMinorGridLineColorChanged(const QColor &color) +{ + foreach (QGraphicsItem *item, minorGridItems()) { + QGraphicsEllipseItem *ellipseItem = static_cast(item); + QPen pen = ellipseItem->pen(); + pen.setColor(color); + ellipseItem->setPen(pen); + } +} + QSizeF PolarChartAxisRadial::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const { Q_UNUSED(which); diff --git a/src/charts/axis/polarchartaxisradial_p.h b/src/charts/axis/polarchartaxisradial_p.h index 21a32a55..34a79557 100644 --- a/src/charts/axis/polarchartaxisradial_p.h +++ b/src/charts/axis/polarchartaxisradial_p.h @@ -54,6 +54,8 @@ public Q_SLOTS: virtual void handleGridPenChanged(const QPen &pen); virtual void handleMinorArrowPenChanged(const QPen &pen); virtual void handleMinorGridPenChanged(const QPen &pen); + virtual void handleGridLineColorChanged(const QColor &color); + virtual void handleMinorGridLineColorChanged(const QColor &color); }; QT_CHARTS_END_NAMESPACE diff --git a/src/charts/axis/qabstractaxis.cpp b/src/charts/axis/qabstractaxis.cpp index eab95cd5..e286ba51 100644 --- a/src/charts/axis/qabstractaxis.cpp +++ b/src/charts/axis/qabstractaxis.cpp @@ -141,6 +141,16 @@ QT_CHARTS_BEGIN_NAMESPACE The pen of the minor grid line. Applies only to QValueAxis. */ +/*! + \property QAbstractAxis::gridLineColor + The color of the grid line. +*/ + +/*! + \property QAbstractAxis::minorGridLineColor + The color of the minor grid line. Applies only to QValueAxis. +*/ + /*! \property QAbstractAxis::labelsFont The font of the axis labels. @@ -358,6 +368,16 @@ QT_CHARTS_BEGIN_NAMESPACE The pen of the minor grid line has changed to \a pen. */ +/*! + \fn void QAbstractAxis::gridLineColorChanged(const QColor &color) + The color of the pen of the grid line has changed to \a color. +*/ + +/*! + \fn void QAbstractAxis::minorGridLineColorChanged(const QColor &color) + The color of the pen of the minor grid line has changed to \a color. +*/ + /*! \fn void QAbstractAxis::colorChanged(QColor color) Emitted if the \a color of the axis is changed. @@ -584,6 +604,36 @@ QPen QAbstractAxis::minorGridLinePen() const return d_ptr->m_minorGridLinePen; } +void QAbstractAxis::setGridLineColor(const QColor &color) +{ + QPen pen = d_ptr->m_gridLinePen; + if (color != pen.color()) { + pen.setColor(color); + d_ptr->m_gridLinePen = pen; + emit gridLineColorChanged(color); + } +} + +QColor QAbstractAxis::gridLineColor() +{ + return d_ptr->m_gridLinePen.color(); +} + +void QAbstractAxis::setMinorGridLineColor(const QColor &color) +{ + QPen pen = d_ptr->m_minorGridLinePen; + if (color != pen.color()) { + pen.setColor(color); + d_ptr->m_minorGridLinePen = pen; + emit minorGridLineColorChanged(color); + } +} + +QColor QAbstractAxis::minorGridLineColor() +{ + return d_ptr->m_minorGridLinePen.color(); +} + void QAbstractAxis::setLabelsVisible(bool visible) { if (d_ptr->m_labelsVisible != visible) { diff --git a/src/charts/axis/qabstractaxis.h b/src/charts/axis/qabstractaxis.h index 48a16a72..dba1023d 100644 --- a/src/charts/axis/qabstractaxis.h +++ b/src/charts/axis/qabstractaxis.h @@ -48,6 +48,8 @@ class QT_CHARTS_EXPORT QAbstractAxis : public QObject Q_PROPERTY(QPen gridLinePen READ gridLinePen WRITE setGridLinePen NOTIFY gridLinePenChanged) Q_PROPERTY(bool minorGridVisible READ isMinorGridLineVisible WRITE setMinorGridLineVisible NOTIFY minorGridVisibleChanged) Q_PROPERTY(QPen minorGridLinePen READ minorGridLinePen WRITE setMinorGridLinePen NOTIFY minorGridLinePenChanged) + Q_PROPERTY(QColor gridLineColor READ gridLineColor WRITE setGridLineColor NOTIFY gridLineColorChanged) + Q_PROPERTY(QColor minorGridLineColor READ minorGridLineColor WRITE setMinorGridLineColor NOTIFY minorGridLineColorChanged) //shades Q_PROPERTY(bool shadesVisible READ shadesVisible WRITE setShadesVisible NOTIFY shadesVisibleChanged) Q_PROPERTY(QColor shadesColor READ shadesColor WRITE setShadesColor NOTIFY shadesColorChanged) @@ -109,6 +111,10 @@ public: void setMinorGridLineVisible(bool visible = true); void setMinorGridLinePen(const QPen &pen); QPen minorGridLinePen() const; + void setGridLineColor(const QColor &color); + QColor gridLineColor(); + void setMinorGridLineColor(const QColor &color); + QColor minorGridLineColor(); //labels handling bool labelsVisible() const; @@ -168,6 +174,8 @@ Q_SIGNALS: void gridVisibleChanged(bool visible); void minorGridVisibleChanged(bool visible); void minorGridLinePenChanged(const QPen &pen); + void gridLineColorChanged(const QColor &color); + void minorGridLineColorChanged(const QColor &color); void colorChanged(QColor color); void labelsColorChanged(QColor color); void titleTextChanged(const QString &title); diff --git a/src/chartsqml2/plugins.qmltypes b/src/chartsqml2/plugins.qmltypes index 91953068..af019e2d 100644 --- a/src/chartsqml2/plugins.qmltypes +++ b/src/chartsqml2/plugins.qmltypes @@ -2027,6 +2027,8 @@ Module { Property { name: "gridLinePen"; type: "QPen" } Property { name: "minorGridVisible"; type: "bool" } Property { name: "minorGridLinePen"; type: "QPen" } + Property { name: "gridLineColor"; type: "QColor" } + Property { name: "minorGridLineColor"; type: "QColor" } Property { name: "shadesVisible"; type: "bool" } Property { name: "shadesColor"; type: "QColor" } Property { name: "shadesBorderColor"; type: "QColor" } @@ -2083,6 +2085,14 @@ Module { name: "minorGridLinePenChanged" Parameter { name: "pen"; type: "QPen" } } + Signal { + name: "gridLineColorChanged" + Parameter { name: "color"; type: "QColor" } + } + Signal { + name: "minorGridLineColorChanged" + Parameter { name: "color"; type: "QColor" } + } Signal { name: "colorChanged" Parameter { name: "color"; type: "QColor" } -- cgit v1.2.3