diff --git a/examples/legendmarkers/mainwidget.cpp b/examples/legendmarkers/mainwidget.cpp index 5442f83..bc5a6e4 100644 --- a/examples/legendmarkers/mainwidget.cpp +++ b/examples/legendmarkers/mainwidget.cpp @@ -158,17 +158,31 @@ void MainWidget::handleMarkerClicked() //![6] // Dim the marker, if series is not visible - QBrush labelBrush = marker->labelBrush(); - QColor color = labelBrush.color(); + qreal alpha = 1.0; - if (marker->series()->isVisible()) { - color.setAlphaF(1.0); - } else { - color.setAlphaF(0.5); + if (!marker->series()->isVisible()) { + alpha = 0.5; } - labelBrush.setColor(color); - marker->setLabelBrush(labelBrush); + QColor color; + QBrush brush = marker->labelBrush(); + color = brush.color(); + color.setAlphaF(alpha); + brush.setColor(color); + marker->setLabelBrush(brush); + + brush = marker->brush(); + color = brush.color(); + color.setAlphaF(alpha); + brush.setColor(color); + marker->setBrush(brush); + + QPen pen = marker->pen(); + color = pen.color(); + color.setAlphaF(alpha); + pen.setColor(color); + marker->setPen(pen); + //![6] break; } diff --git a/src/legend/qarealegendmarker.cpp b/src/legend/qarealegendmarker.cpp index 4c08d0c..b98daa5 100644 --- a/src/legend/qarealegendmarker.cpp +++ b/src/legend/qarealegendmarker.cpp @@ -46,6 +46,7 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE QAreaLegendMarker::QAreaLegendMarker(QAreaSeries *series, QLegend *legend, QObject *parent) : QLegendMarker(*new QAreaLegendMarkerPrivate(this,series,legend), parent) { + d_ptr->updated(); } /*! @@ -76,11 +77,11 @@ QAreaSeries* QAreaLegendMarker::series() QAreaLegendMarkerPrivate::QAreaLegendMarkerPrivate(QAreaLegendMarker *q, QAreaSeries *series, QLegend *legend) : QLegendMarkerPrivate(q,legend), + q_ptr(q), m_series(series) { QObject::connect(m_series->d_func(),SIGNAL(updated()), this, SLOT(updated())); QObject::connect(m_series, SIGNAL(nameChanged()), this, SLOT(updated())); - updated(); } QAreaLegendMarkerPrivate::~QAreaLegendMarkerPrivate() diff --git a/src/legend/qbarlegendmarker.cpp b/src/legend/qbarlegendmarker.cpp index ac8f08c..db9d668 100644 --- a/src/legend/qbarlegendmarker.cpp +++ b/src/legend/qbarlegendmarker.cpp @@ -46,6 +46,7 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE QBarLegendMarker::QBarLegendMarker(QAbstractBarSeries *series, QBarSet *barset, QLegend *legend, QObject *parent) : QLegendMarker(*new QBarLegendMarkerPrivate(this,series,barset,legend), parent) { + d_ptr->updated(); } /*! @@ -85,13 +86,13 @@ QBarSet* QBarLegendMarker::barset() QBarLegendMarkerPrivate::QBarLegendMarkerPrivate(QBarLegendMarker *q, QAbstractBarSeries *series, QBarSet *barset, QLegend *legend) : QLegendMarkerPrivate(q,legend), + q_ptr(q), m_series(series), m_barset(barset) { QObject::connect(m_barset, SIGNAL(penChanged()), this, SLOT(updated())); QObject::connect(m_barset, SIGNAL(labelChanged()), this, SLOT(updated())); QObject::connect(m_barset, SIGNAL(brushChanged()), this, SLOT(updated())); - updated(); } QBarLegendMarkerPrivate::~QBarLegendMarkerPrivate() diff --git a/src/legend/qlegendmarker_p.h b/src/legend/qlegendmarker_p.h index 2b373fe..b041952 100644 --- a/src/legend/qlegendmarker_p.h +++ b/src/legend/qlegendmarker_p.h @@ -68,7 +68,7 @@ public: void invalidateLegend(); public Q_SLOTS: - virtual void updated() { invalidateLegend(); } + virtual void updated() = 0; protected: LegendMarkerItem *m_item; diff --git a/src/legend/qpielegendmarker.cpp b/src/legend/qpielegendmarker.cpp index ed4a66b..03a73c0 100644 --- a/src/legend/qpielegendmarker.cpp +++ b/src/legend/qpielegendmarker.cpp @@ -46,6 +46,7 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE QPieLegendMarker::QPieLegendMarker(QPieSeries *series, QPieSlice *slice, QLegend *legend, QObject *parent) : QLegendMarker(*new QPieLegendMarkerPrivate(this,series,slice,legend), parent) { + d_ptr->updated(); } /*! @@ -85,13 +86,13 @@ QPieSlice* QPieLegendMarker::slice() QPieLegendMarkerPrivate::QPieLegendMarkerPrivate(QPieLegendMarker *q, QPieSeries *series, QPieSlice *slice, QLegend *legend) : QLegendMarkerPrivate(q,legend), + q_ptr(q), m_series(series), m_slice(slice) { QObject::connect(m_slice, SIGNAL(labelChanged()), this, SLOT(updated())); QObject::connect(m_slice, SIGNAL(brushChanged()), this, SLOT(updated())); QObject::connect(m_slice, SIGNAL(penChanged()), this, SLOT(updated())); - updated(); } QPieLegendMarkerPrivate::~QPieLegendMarkerPrivate() diff --git a/src/legend/qxylegendmarker.cpp b/src/legend/qxylegendmarker.cpp index f5599eb..7c11bf8 100644 --- a/src/legend/qxylegendmarker.cpp +++ b/src/legend/qxylegendmarker.cpp @@ -46,6 +46,7 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE QXYLegendMarker::QXYLegendMarker(QXYSeries *series, QLegend *legend, QObject *parent) : QLegendMarker(*new QXYLegendMarkerPrivate(this,series,legend), parent) { + d_ptr->updated(); } /*! @@ -76,11 +77,11 @@ QXYSeries* QXYLegendMarker::series() QXYLegendMarkerPrivate::QXYLegendMarkerPrivate(QXYLegendMarker *q, QXYSeries *series, QLegend *legend) : QLegendMarkerPrivate(q,legend), + q_ptr(q), m_series(series) { QObject::connect(m_series, SIGNAL(nameChanged()), this, SLOT(updated())); QObject::connect(m_series->d_func(), SIGNAL(updated()), this, SLOT(updated())); - updated(); } QXYLegendMarkerPrivate::~QXYLegendMarkerPrivate() @@ -114,9 +115,7 @@ void QXYLegendMarkerPrivate::updated() } } else { if (m_item->brush().color() != m_series->pen().color()) { - QBrush b = m_item->brush(); - b.setColor(m_series->pen().color()); - m_item->setBrush(b); + m_item->setBrush(QBrush(m_series->pen().color())); brushChanged = true; } }