summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/chartdataset.cpp15
-rw-r--r--src/domain/abstractdomain.cpp18
-rw-r--r--src/domain/abstractdomain_p.h6
-rw-r--r--src/domain/xydomain.cpp6
4 files changed, 25 insertions, 20 deletions
diff --git a/src/chartdataset.cpp b/src/chartdataset.cpp
index 165449a5..2062015a 100644
--- a/src/chartdataset.cpp
+++ b/src/chartdataset.cpp
@@ -341,7 +341,7 @@ void ChartDataSet::zoomInDomain(const QRectF &rect)
QList<AbstractDomain*> domains;
foreach(QAbstractSeries *s, m_seriesList) {
AbstractDomain* domain = s->d_ptr->domain();
- s->d_ptr->m_domain->blockAxisSignals(true);
+ s->d_ptr->m_domain->blockRangeSignals(true);
domains<<domain;
}
@@ -349,7 +349,7 @@ void ChartDataSet::zoomInDomain(const QRectF &rect)
domain->zoomIn(rect);
foreach(AbstractDomain *domain, domains)
- domain->blockAxisSignals(false);
+ domain->blockRangeSignals(false);
}
void ChartDataSet::zoomOutDomain(const QRectF &rect)
@@ -357,7 +357,7 @@ void ChartDataSet::zoomOutDomain(const QRectF &rect)
QList<AbstractDomain*> domains;
foreach(QAbstractSeries *s, m_seriesList) {
AbstractDomain* domain = s->d_ptr->domain();
- s->d_ptr->m_domain->blockAxisSignals(true);
+ s->d_ptr->m_domain->blockRangeSignals(true);
domains<<domain;
}
@@ -365,16 +365,15 @@ void ChartDataSet::zoomOutDomain(const QRectF &rect)
domain->zoomOut(rect);
foreach(AbstractDomain *domain, domains)
- domain->blockAxisSignals(false);
+ domain->blockRangeSignals(false);
}
void ChartDataSet::scrollDomain(qreal dx, qreal dy)
{
QList<AbstractDomain*> domains;
foreach(QAbstractSeries *s, m_seriesList) {
- AbstractDomain* domain = s->d_ptr->m_domain.data();
- if(domains.contains(domain)) continue;
- s->d_ptr->m_domain->blockAxisSignals(true);
+ AbstractDomain* domain = s->d_ptr->domain();
+ s->d_ptr->m_domain->blockRangeSignals(true);
domains<<domain;
}
@@ -382,7 +381,7 @@ void ChartDataSet::scrollDomain(qreal dx, qreal dy)
domain->move(dx, dy);
foreach(AbstractDomain *domain, domains)
- domain->blockAxisSignals(false);
+ domain->blockRangeSignals(false);
}
QList<QAbstractAxis*> ChartDataSet::axes() const
diff --git a/src/domain/abstractdomain.cpp b/src/domain/abstractdomain.cpp
index 4915a966..ee87e64e 100644
--- a/src/domain/abstractdomain.cpp
+++ b/src/domain/abstractdomain.cpp
@@ -30,7 +30,7 @@ AbstractDomain::AbstractDomain(QObject *parent)
m_maxX(0),
m_minY(0),
m_maxY(0),
- m_axisSignalsBlocked(false)
+ m_signalsBlocked(false)
{
}
@@ -112,19 +112,23 @@ QPointF AbstractDomain::calculateDomainPoint(const QPointF &point) const
void AbstractDomain::handleVerticalAxisRangeChanged(qreal min, qreal max)
{
- if(!m_axisSignalsBlocked)
- setRangeY(min, max);
+ setRangeY(min, max);
}
void AbstractDomain::handleHorizontalAxisRangeChanged(qreal min, qreal max)
{
- if(!m_axisSignalsBlocked)
- setRangeX(min, max);
+ setRangeX(min, max);
}
-void AbstractDomain::blockAxisSignals(bool block)
+void AbstractDomain::blockRangeSignals(bool block)
{
- m_axisSignalsBlocked=block;
+ if(m_signalsBlocked!=block){
+ m_signalsBlocked=block;
+ if(!block) {
+ emit rangeHorizontalChanged(m_minX,m_maxX);
+ emit rangeVerticalChanged(m_minY,m_maxY);
+ }
+ }
}
//algorithm defined by Paul S.Heckbert GraphicalGems I
diff --git a/src/domain/abstractdomain_p.h b/src/domain/abstractdomain_p.h
index 04bd7c81..4ef84eb5 100644
--- a/src/domain/abstractdomain_p.h
+++ b/src/domain/abstractdomain_p.h
@@ -69,8 +69,8 @@ public:
qreal spanY() const;
bool isEmpty() const;
- void blockAxisSignals(bool block);
- bool axisSignalsBlocked() const { return m_axisSignalsBlocked; }
+ void blockRangeSignals(bool block);
+ bool rangeSignalsBlocked() const { return m_signalsBlocked; }
friend bool QTCOMMERCIALCHART_AUTOTEST_EXPORT operator== (const AbstractDomain &domain1, const AbstractDomain &domain2);
friend bool QTCOMMERCIALCHART_AUTOTEST_EXPORT operator!= (const AbstractDomain &domain1, const AbstractDomain &domain2);
@@ -105,7 +105,7 @@ protected:
qreal m_minY;
qreal m_maxY;
QSizeF m_size;
- bool m_axisSignalsBlocked;
+ bool m_signalsBlocked;
};
QTCOMMERCIALCHART_END_NAMESPACE
diff --git a/src/domain/xydomain.cpp b/src/domain/xydomain.cpp
index 1b237cb6..6603566c 100644
--- a/src/domain/xydomain.cpp
+++ b/src/domain/xydomain.cpp
@@ -42,14 +42,16 @@ void XYDomain::setRange(qreal minX, qreal maxX, qreal minY, qreal maxY)
m_minX = minX;
m_maxX = maxX;
axisXChanged = true;
- emit rangeHorizontalChanged(m_minX, m_maxX);
+ if(!m_signalsBlocked)
+ emit rangeHorizontalChanged(m_minX, m_maxX);
}
if (!qFuzzyCompare(m_minY, minY) || !qFuzzyCompare(m_maxY, maxY)) {
m_minY = minY;
m_maxY = maxY;
axisYChanged = true;
- emit rangeVerticalChanged(m_minY, m_maxY);
+ if(!m_signalsBlocked)
+ emit rangeVerticalChanged(m_minY, m_maxY);
}
if (axisXChanged || axisYChanged)