From f2379b79baf86f174cf95097adfddf9adcbea558 2012-11-26 13:02:48 From: Marek Rosa Date: 2012-11-26 13:02:48 Subject: [PATCH] Log domains update when axis base changes. LogAxis fix for labelFormat --- diff --git a/src/axis/chartaxis.cpp b/src/axis/chartaxis.cpp index 01b6e16..c282085 100644 --- a/src/axis/chartaxis.cpp +++ b/src/axis/chartaxis.cpp @@ -466,7 +466,18 @@ QStringList ChartAxis::createLogValueLabels(qreal min, qreal max, qreal base, in QByteArray array = format.toLatin1(); for (int i = firstTick; i < ticks + firstTick; i++) { qreal value = qPow(base, i); - labels << QString().sprintf(array, value); + if (format.contains("d") + || format.contains("i") + || format.contains("c")) + labels << QString().sprintf(array, (qint64)value); + else if (format.contains("u") + || format.contains("o") + || format.contains("x", Qt::CaseInsensitive)) + labels << QString().sprintf(array, (quint64)value); + else if (format.contains("f", Qt::CaseInsensitive) + || format.contains("e", Qt::CaseInsensitive) + || format.contains("g", Qt::CaseInsensitive)) + labels << QString().sprintf(array, value); } } diff --git a/src/domain/logxlogydomain.cpp b/src/domain/logxlogydomain.cpp index a740757..c7c07d1 100644 --- a/src/domain/logxlogydomain.cpp +++ b/src/domain/logxlogydomain.cpp @@ -186,11 +186,15 @@ bool LogXLogYDomain::detachAxis(QAbstractAxis* axis) void LogXLogYDomain::handleVerticalAxisBaseChanged(qreal baseY) { m_logBaseY = baseY; + m_logMinY = log10(m_minY) / log10(m_logBaseY); + m_logMaxY = log10(m_maxY) / log10(m_logBaseY); } void LogXLogYDomain::handleHorizontalAxisBaseChanged(qreal baseX) { m_logBaseX = baseX; + m_logMinX = log10(m_minX) / log10(m_logBaseX); + m_logMaxX = log10(m_maxX) / log10(m_logBaseX); } // operators diff --git a/src/domain/logxydomain.cpp b/src/domain/logxydomain.cpp index c3a3e59..f63c496 100644 --- a/src/domain/logxydomain.cpp +++ b/src/domain/logxydomain.cpp @@ -180,6 +180,8 @@ bool LogXYDomain::detachAxis(QAbstractAxis* axis) void LogXYDomain::handleHorizontalAxisBaseChanged(qreal baseX) { m_logBaseX = baseX; + m_logMinX = log10(m_minX) / log10(m_logBaseX); + m_logMaxX = log10(m_maxX) / log10(m_logBaseX); } // operators diff --git a/src/domain/xlogydomain.cpp b/src/domain/xlogydomain.cpp index 846f46b..a0bdb01 100644 --- a/src/domain/xlogydomain.cpp +++ b/src/domain/xlogydomain.cpp @@ -179,6 +179,8 @@ bool XLogYDomain::detachAxis(QAbstractAxis* axis) void XLogYDomain::handleVerticalAxisBaseChanged(qreal baseY) { m_logBaseY = baseY; + m_logMinY = log10(m_minY) / log10(m_logBaseY); + m_logMaxY = log10(m_maxY) / log10(m_logBaseY); } // operators