diff --git a/src/legend/legendmarker.cpp b/src/legend/legendmarker.cpp index 07a99bb..951283e 100644 --- a/src/legend/legendmarker.cpp +++ b/src/legend/legendmarker.cpp @@ -36,13 +36,14 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE -LegendMarker::LegendMarker(QAbstractSeries *series, QLegend *legend) : QGraphicsObject(legend), -m_series(series), -m_markerRect(0,0,10.0,10.0), -m_boundingRect(0,0,0,0), -m_legend(legend), -m_textItem(new QGraphicsSimpleTextItem(this)), -m_rectItem(new QGraphicsRectItem(this)) +LegendMarker::LegendMarker(QAbstractSeries *series, QLegend *legend) : + QGraphicsObject(legend), + m_series(series), + m_markerRect(0,0,10.0,10.0), + m_boundingRect(0,0,0,0), + m_legend(legend), + m_textItem(new QGraphicsSimpleTextItem(this)), + m_rectItem(new QGraphicsRectItem(this)) { //setAcceptedMouseButtons(Qt::LeftButton|Qt::RightButton); m_rectItem->setRect(m_markerRect); @@ -125,6 +126,7 @@ m_series(series) { //QObject::connect(this, SIGNAL(selected()), series, SIGNAL(selected())); QObject::connect(series->d_func(),SIGNAL(updated()), this, SLOT(updated())); + QObject::connect(series, SIGNAL(nameChanged()), this, SLOT(updated())); updated(); } @@ -173,6 +175,7 @@ m_series(series) { //QObject::connect(this, SIGNAL(selected()), series, SIGNAL(selected())); QObject::connect(series->d_func(),SIGNAL(updated()), this, SLOT(updated())); + QObject::connect(series, SIGNAL(nameChanged()), this, SLOT(updated())); updated(); } diff --git a/src/legend/qlegend.cpp b/src/legend/qlegend.cpp index 395462c..576cd95 100644 --- a/src/legend/qlegend.cpp +++ b/src/legend/qlegend.cpp @@ -419,11 +419,10 @@ void QLegendPrivate::handleSeriesAdded(QAbstractSeries *series, Domain *domain) Q_UNUSED(domain) QList markers = series->d_ptr->createLegendMarker(q_ptr); - foreach(LegendMarker* marker , markers) + foreach(LegendMarker* marker, markers) m_markers->addToGroup(marker); - if(series->type() == QAbstractSeries::SeriesTypePie) - { + if(series->type() == QAbstractSeries::SeriesTypePie) { QPieSeries *pieSeries = static_cast(series); QObject::connect(pieSeries, SIGNAL(added(QList)), this, SLOT(handleUpdatePieSeries())); QObject::connect(pieSeries, SIGNAL(removed(QList)), this, SLOT(handleUpdatePieSeries())); @@ -434,7 +433,6 @@ void QLegendPrivate::handleSeriesAdded(QAbstractSeries *series, Domain *domain) void QLegendPrivate::handleSeriesRemoved(QAbstractSeries *series) { - QList items = m_markers->childItems(); foreach (QGraphicsItem *markers, items) { diff --git a/src/qabstractseries.cpp b/src/qabstractseries.cpp index 6e78570..89b0d82 100644 --- a/src/qabstractseries.cpp +++ b/src/qabstractseries.cpp @@ -90,7 +90,10 @@ QAbstractSeries::~QAbstractSeries() void QAbstractSeries::setName(const QString& name) { - d_ptr->m_name = name; + if (name != d_ptr->m_name) { + d_ptr->m_name = name; + nameChanged(); + } } /*! diff --git a/src/qabstractseries.h b/src/qabstractseries.h index 635890b..3668351 100644 --- a/src/qabstractseries.h +++ b/src/qabstractseries.h @@ -33,7 +33,7 @@ class QChart; class QTCOMMERCIALCHART_EXPORT QAbstractSeries : public QObject { Q_OBJECT - Q_PROPERTY(QString name READ name WRITE setName) + Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) Q_ENUMS(SeriesType) public: @@ -59,6 +59,9 @@ public: QString name() const; QChart* chart() const; +Q_SIGNALS: + void nameChanged(); + protected: QScopedPointer d_ptr; friend class ChartDataSet;