diff --git a/src/axis/logvalueaxis/qlogvalueaxis.cpp b/src/axis/logvalueaxis/qlogvalueaxis.cpp index 62fb54d..bc62b44 100644 --- a/src/axis/logvalueaxis/qlogvalueaxis.cpp +++ b/src/axis/logvalueaxis/qlogvalueaxis.cpp @@ -186,7 +186,7 @@ void QLogValueAxis::setBase(qreal base) if (base > 0) { Q_D(QLogValueAxis); d->m_base = base; - emit d->baseChanged(base); + emit baseChanged(base); } } diff --git a/src/axis/logvalueaxis/qlogvalueaxis.h b/src/axis/logvalueaxis/qlogvalueaxis.h index 1aa84f0..87bf59d 100644 --- a/src/axis/logvalueaxis/qlogvalueaxis.h +++ b/src/axis/logvalueaxis/qlogvalueaxis.h @@ -63,6 +63,7 @@ Q_SIGNALS: void minChanged(qreal min); void maxChanged(qreal max); void rangeChanged(qreal min, qreal max); + void baseChanged(qreal base); private: Q_DECLARE_PRIVATE(QLogValueAxis) diff --git a/src/axis/logvalueaxis/qlogvalueaxis_p.h b/src/axis/logvalueaxis/qlogvalueaxis_p.h index 85bb16a..5d6d782 100644 --- a/src/axis/logvalueaxis/qlogvalueaxis_p.h +++ b/src/axis/logvalueaxis/qlogvalueaxis_p.h @@ -56,9 +56,6 @@ class QLogValueAxisPrivate : public QAbstractAxisPrivate void setRange(const QVariant &min, const QVariant &max); int tickCount() const; - Q_SIGNALS: - void baseChanged(qreal base); - protected: qreal m_min; qreal m_max; diff --git a/src/domain/logxlogydomain.cpp b/src/domain/logxlogydomain.cpp index 812eb89..a740757 100644 --- a/src/domain/logxlogydomain.cpp +++ b/src/domain/logxlogydomain.cpp @@ -20,6 +20,7 @@ #include "logxlogydomain_p.h" #include "qabstractaxis_p.h" +#include "qlogvalueaxis.h" #include QTCOMMERCIALCHART_BEGIN_NAMESPACE @@ -154,6 +155,44 @@ QPointF LogXLogYDomain::calculateDomainPoint(const QPointF &point) const return QPointF(x, y); } +bool LogXLogYDomain::attachAxis(QAbstractAxis* axis) +{ + AbstractDomain::attachAxis(axis); + QLogValueAxis *logAxis = qobject_cast(axis); + + if(logAxis && logAxis->orientation()==Qt::Vertical) + QObject::connect(logAxis, SIGNAL(baseChanged(qreal)), this, SLOT(handleVerticalAxisBaseChanged(qreal))); + + if(logAxis && logAxis->orientation()==Qt::Horizontal) + QObject::connect(logAxis, SIGNAL(baseChanged(qreal)), this, SLOT(handleHorizontalAxisBaseChanged(qreal))); + + return true; +} + +bool LogXLogYDomain::detachAxis(QAbstractAxis* axis) +{ + AbstractDomain::detachAxis(axis); + QLogValueAxis *logAxis = qobject_cast(axis); + + if(logAxis && logAxis->orientation()==Qt::Vertical) + QObject::disconnect(logAxis, SIGNAL(baseChanged(qreal)), this, SLOT(handleVerticalAxisBaseChanged(qreal))); + + if(logAxis && logAxis->orientation()==Qt::Horizontal) + QObject::disconnect(logAxis, SIGNAL(baseChanged(qreal)), this, SLOT(handleHorizontalAxisBaseChanged(qreal))); + + return true; +} + +void LogXLogYDomain::handleVerticalAxisBaseChanged(qreal baseY) +{ + m_logBaseY = baseY; +} + +void LogXLogYDomain::handleHorizontalAxisBaseChanged(qreal baseX) +{ + m_logBaseX = baseX; +} + // operators bool QTCOMMERCIALCHART_AUTOTEST_EXPORT operator== (const LogXLogYDomain &domain1, const LogXLogYDomain &domain2) diff --git a/src/domain/logxlogydomain_p.h b/src/domain/logxlogydomain_p.h index d8aed1b..32f9e75 100644 --- a/src/domain/logxlogydomain_p.h +++ b/src/domain/logxlogydomain_p.h @@ -58,6 +58,13 @@ public: QPointF calculateDomainPoint(const QPointF &point) const; QVector calculateGeometryPoints(const QList& vector) const; + bool attachAxis(QAbstractAxis* axis); + bool detachAxis(QAbstractAxis* axis); + +public Q_SLOTS: + void handleVerticalAxisBaseChanged(qreal baseY); + void handleHorizontalAxisBaseChanged(qreal baseX); + private: qreal m_logMinX; qreal m_logMaxX; diff --git a/src/domain/logxydomain.cpp b/src/domain/logxydomain.cpp index a5a846c..c3a3e59 100644 --- a/src/domain/logxydomain.cpp +++ b/src/domain/logxydomain.cpp @@ -20,6 +20,7 @@ #include "logxydomain_p.h" #include "qabstractaxis_p.h" +#include "qlogvalueaxis.h" #include QTCOMMERCIALCHART_BEGIN_NAMESPACE @@ -154,6 +155,33 @@ QPointF LogXYDomain::calculateDomainPoint(const QPointF &point) const return QPointF(x, y); } +bool LogXYDomain::attachAxis(QAbstractAxis* axis) +{ + AbstractDomain::attachAxis(axis); + QLogValueAxis *logAxis = qobject_cast(axis); + + if(logAxis && logAxis->orientation()==Qt::Horizontal) + QObject::connect(logAxis, SIGNAL(baseChanged(qreal)), this, SLOT(handleHorizontalAxisBaseChanged(qreal))); + + return true; +} + +bool LogXYDomain::detachAxis(QAbstractAxis* axis) +{ + AbstractDomain::detachAxis(axis); + QLogValueAxis *logAxis = qobject_cast(axis); + + if(logAxis && logAxis->orientation()==Qt::Horizontal) + QObject::disconnect(logAxis, SIGNAL(baseChanged(qreal)), this, SLOT(handleHorizontalAxisBaseChanged(qreal))); + + return true; +} + +void LogXYDomain::handleHorizontalAxisBaseChanged(qreal baseX) +{ + m_logBaseX = baseX; +} + // operators bool QTCOMMERCIALCHART_AUTOTEST_EXPORT operator== (const LogXYDomain &domain1, const LogXYDomain &domain2) diff --git a/src/domain/logxydomain_p.h b/src/domain/logxydomain_p.h index c260624..91a55e3 100644 --- a/src/domain/logxydomain_p.h +++ b/src/domain/logxydomain_p.h @@ -58,6 +58,12 @@ public: QPointF calculateDomainPoint(const QPointF &point) const; QVector calculateGeometryPoints(const QList& vector) const; + bool attachAxis(QAbstractAxis* axis); + bool detachAxis(QAbstractAxis* axis); + +public Q_SLOTS: + void handleHorizontalAxisBaseChanged(qreal baseX); + private: qreal m_logMinX; qreal m_logMaxX; diff --git a/src/domain/xlogydomain.cpp b/src/domain/xlogydomain.cpp index 79c5b19..46bf4cb 100644 --- a/src/domain/xlogydomain.cpp +++ b/src/domain/xlogydomain.cpp @@ -20,6 +20,7 @@ #include "xlogydomain_p.h" #include "qabstractaxis_p.h" +#include "qlogvalueaxis.h" #include QTCOMMERCIALCHART_BEGIN_NAMESPACE @@ -155,6 +156,33 @@ QPointF XLogYDomain::calculateDomainPoint(const QPointF &point) const return QPointF(x, y); } +bool XLogYDomain::attachAxis(QAbstractAxis* axis) +{ + AbstractDomain::attachAxis(axis); + QLogValueAxis *logAxis = qobject_cast(axis); + + if(logAxis && logAxis->orientation()==Qt::Vertical) + QObject::connect(logAxis, SIGNAL(baseChanged(qreal)), this, SLOT(handleVerticalAxisBaseChanged(qreal))); + + return true; +} + +bool XLogYDomain::detachAxis(QAbstractAxis* axis) +{ + AbstractDomain::detachAxis(axis); + QLogValueAxis *logAxis = qobject_cast(axis); + + if(logAxis && logAxis->orientation()==Qt::Vertical) + QObject::disconnect(logAxis, SIGNAL(baseChanged(qreal)), this, SLOT(handleVerticalAxisBaseChanged(qreal))); + + return true; +} + +void XLogYDomain::handleVerticalAxisBaseChanged(qreal baseY) +{ + m_logBaseY = baseY; +} + // operators bool QTCOMMERCIALCHART_AUTOTEST_EXPORT operator== (const XLogYDomain &domain1, const XLogYDomain &domain2) diff --git a/src/domain/xlogydomain_p.h b/src/domain/xlogydomain_p.h index b3cb0b7..e39daaf 100644 --- a/src/domain/xlogydomain_p.h +++ b/src/domain/xlogydomain_p.h @@ -58,6 +58,12 @@ public: QPointF calculateDomainPoint(const QPointF &point) const; QVector calculateGeometryPoints(const QList& vector) const; + bool attachAxis(QAbstractAxis* axis); + bool detachAxis(QAbstractAxis* axis); + +public Q_SLOTS: + void handleVerticalAxisBaseChanged(qreal baseY); + private: qreal m_logMinY; qreal m_logMaxY;