diff --git a/src/xychart/qhxymodelmapper.cpp b/src/xychart/qhxymodelmapper.cpp index e058dac..9a16ede 100644 --- a/src/xychart/qhxymodelmapper.cpp +++ b/src/xychart/qhxymodelmapper.cpp @@ -47,6 +47,18 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE */ /*! + \fn void QHXYModelMapper::xRowChanged() + + Emitted when the xRow has changed. +*/ + +/*! + \fn void QHXYModelMapper::yRowChanged() + + Emitted when the yRow has changed. +*/ + +/*! Constructs a mapper object which is a child of \a parent. */ QHXYModelMapper::QHXYModelMapper(QObject *parent) : @@ -62,7 +74,10 @@ int QHXYModelMapper::xRow() const void QHXYModelMapper::setXRow(int xRow) { - return QXYModelMapper::setXSection(xRow); + if (xRow != xSection()) { + return QXYModelMapper::setXSection(xRow); + emit xRowChanged(); + } } int QHXYModelMapper::yRow() const @@ -72,7 +87,10 @@ int QHXYModelMapper::yRow() const void QHXYModelMapper::setYRow(int yRow) { - return QXYModelMapper::setYSection(yRow); + if (yRow != ySection()) { + return QXYModelMapper::setYSection(yRow); + emit yRowChanged(); + } } #include "moc_qhxymodelmapper.cpp" diff --git a/src/xychart/qhxymodelmapper.h b/src/xychart/qhxymodelmapper.h index b4c3177..e0bb02c 100644 --- a/src/xychart/qhxymodelmapper.h +++ b/src/xychart/qhxymodelmapper.h @@ -28,8 +28,8 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE class QTCOMMERCIALCHART_EXPORT QHXYModelMapper : public QXYModelMapper { Q_OBJECT - Q_PROPERTY(int xRow READ xRow WRITE setXRow) - Q_PROPERTY(int yRow READ yRow WRITE setYRow) + Q_PROPERTY(int xRow READ xRow WRITE setXRow NOTIFY xRowChanged) + Q_PROPERTY(int yRow READ yRow WRITE setYRow NOTIFY yRowChanged) public: explicit QHXYModelMapper(QObject *parent = 0); @@ -38,7 +38,11 @@ public: void setXRow(int xRow); int yRow() const; - void setYRow(int yRow); + void setYRow(int yRow); + +Q_SIGNALS: + void xRowChanged(); + void yRowChanged(); }; QTCOMMERCIALCHART_END_NAMESPACE diff --git a/src/xychart/qvxymodelmapper.cpp b/src/xychart/qvxymodelmapper.cpp index 5eec5b1..d54f44e 100644 --- a/src/xychart/qvxymodelmapper.cpp +++ b/src/xychart/qvxymodelmapper.cpp @@ -48,6 +48,18 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE */ /*! + \fn void QVXYModelMapper::xColumnChanged() + + Emitted when the xColumn has changed. +*/ + +/*! + \fn void QVXYModelMapper::yColumnChanged() + + Emitted when the yColumn has changed. +*/ + +/*! Constructs a mapper object which is a child of \a parent. */ QVXYModelMapper::QVXYModelMapper(QObject *parent) : @@ -63,7 +75,10 @@ int QVXYModelMapper::xColumn() const void QVXYModelMapper::setXColumn(int xColumn) { - return QXYModelMapper::setXSection(xColumn); + if (xColumn != xSection()) { + return QXYModelMapper::setXSection(xColumn); + emit xColumnChanged(); + } } int QVXYModelMapper::yColumn() const @@ -73,7 +88,10 @@ int QVXYModelMapper::yColumn() const void QVXYModelMapper::setYColumn(int yColumn) { - return QXYModelMapper::setYSection(yColumn); + if (yColumn != ySection()) { + return QXYModelMapper::setYSection(yColumn); + emit yColumnChanged(); + } } #include "moc_qvxymodelmapper.cpp" diff --git a/src/xychart/qvxymodelmapper.h b/src/xychart/qvxymodelmapper.h index 4645a75..b30f46a 100644 --- a/src/xychart/qvxymodelmapper.h +++ b/src/xychart/qvxymodelmapper.h @@ -28,8 +28,8 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE class QTCOMMERCIALCHART_EXPORT QVXYModelMapper : public QXYModelMapper { Q_OBJECT - Q_PROPERTY(int xColumn READ xColumn WRITE setXColumn) - Q_PROPERTY(int yColumn READ yColumn WRITE setYColumn) + Q_PROPERTY(int xColumn READ xColumn WRITE setXColumn NOTIFY xColumnChanged) + Q_PROPERTY(int yColumn READ yColumn WRITE setYColumn NOTIFY yColumnChanged) public: explicit QVXYModelMapper(QObject *parent = 0); @@ -39,6 +39,10 @@ public: int yColumn() const; void setYColumn(int yColumn); + +Q_SIGNALS: + void xColumnChanged(); + void yColumnChanged(); }; QTCOMMERCIALCHART_END_NAMESPACE diff --git a/src/xychart/qxymodelmapper.cpp b/src/xychart/qxymodelmapper.cpp index eb44c11..77549e8 100644 --- a/src/xychart/qxymodelmapper.cpp +++ b/src/xychart/qxymodelmapper.cpp @@ -64,6 +64,30 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE */ /*! + \fn void QXYModelMapper::seriesReplaced() + + Emitted when the series to which mapper is connected to has changed. +*/ + +/*! + \fn void QXYModelMapper::modelReplaced() + + Emitted when the model to which mapper is connected to has changed. +*/ + +/*! + \fn void QXYModelMapper::firstChanged() + + Emitted when the value for the first has changed. +*/ + +/*! + \fn void QXYModelMapper::countChanged() + + Emitted when the value for the count has changed. +*/ + +/*! Constructs a mapper object which is a child of \a parent. */ QXYModelMapper::QXYModelMapper(QObject *parent): @@ -96,6 +120,8 @@ void QXYModelMapper::setModel(QAbstractItemModel *model) connect(d->m_model, SIGNAL(rowsRemoved(QModelIndex,int,int)), d, SLOT(modelRowsRemoved(QModelIndex,int,int))); connect(d->m_model, SIGNAL(columnsInserted(QModelIndex,int,int)), d, SLOT(modelColumnsAdded(QModelIndex,int,int))); connect(d->m_model, SIGNAL(columnsRemoved(QModelIndex,int,int)), d, SLOT(modelColumnsRemoved(QModelIndex,int,int))); + + emit modelReplaced(); } QXYSeries* QXYModelMapper::series() const @@ -120,6 +146,8 @@ void QXYModelMapper::setSeries(QXYSeries *series) connect(d->m_series, SIGNAL(pointAdded(int)), d, SLOT(handlePointAdded(int))); connect(d->m_series, SIGNAL(pointRemoved(int)), d, SLOT(handlePointRemoved(int))); connect(d->m_series, SIGNAL(pointReplaced(int)), d, SLOT(handlePointReplaced(int))); + + emit seriesReplaced(); } int QXYModelMapper::first() const @@ -131,8 +159,12 @@ int QXYModelMapper::first() const void QXYModelMapper::setFirst(int first) { Q_D(QXYModelMapper); - d->m_first = qMax(first, 0); - d->initializeXYFromModel(); + if (first != d->m_first) { + d->m_first = qMax(first, 0); + d->initializeXYFromModel(); + + emit firstChanged(); + } } int QXYModelMapper::count() const @@ -144,8 +176,12 @@ int QXYModelMapper::count() const void QXYModelMapper::setCount(int count) { Q_D(QXYModelMapper); - d->m_count = qMax(count, -1); - d->initializeXYFromModel(); + if (count != d->m_count) { + d->m_count = qMax(count, -1); + d->initializeXYFromModel(); + + emit countChanged(); + } } /*! diff --git a/src/xychart/qxymodelmapper.h b/src/xychart/qxymodelmapper.h index d1ce381..a01ac80 100644 --- a/src/xychart/qxymodelmapper.h +++ b/src/xychart/qxymodelmapper.h @@ -34,10 +34,10 @@ class QXYSeries; class QTCOMMERCIALCHART_EXPORT QXYModelMapper : public QObject { Q_OBJECT - Q_PROPERTY(QXYSeries *series READ series WRITE setSeries) - Q_PROPERTY(QAbstractItemModel *model READ model WRITE setModel) - Q_PROPERTY(int first READ first WRITE setFirst) - Q_PROPERTY(int count READ count WRITE setCount) + Q_PROPERTY(QXYSeries *series READ series WRITE setSeries NOTIFY seriesReplaced) + Q_PROPERTY(QAbstractItemModel *model READ model WRITE setModel NOTIFY modelReplaced) + Q_PROPERTY(int first READ first WRITE setFirst NOTIFY firstChanged) + Q_PROPERTY(int count READ count WRITE setCount NOTIFY countChanged) Q_ENUMS(Qt::Orientation) protected: @@ -68,6 +68,12 @@ protected: int ySection() const; void setYSection(int ySection); +Q_SIGNALS: + void seriesReplaced(); + void modelReplaced(); + void firstChanged(); + void countChanged(); + protected: QXYModelMapperPrivate * const d_ptr; Q_DECLARE_PRIVATE(QXYModelMapper)