summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-03-25 15:07:06 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-03-26 12:25:18 +0200
commitb36b9eb7c65e3a4f6972d2f2145722470d1ad29b (patch)
tree1d2225a3a107d0a786482c57dab8c50177a16149 /tests
parentb16a964d0ed24b720e4e71da03cea87e35db7806 (diff)
Implement QLogValue3DAxisFormatter
Task-number: QTRD-2787 Change-Id: I6ecff5c3d2047a2c566051951bf237bf3e68ffab Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com> Reviewed-by: Mika Salmela <mika.salmela@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/barstest/chart.cpp113
-rw-r--r--tests/barstest/chart.h3
-rw-r--r--tests/barstest/main.cpp18
3 files changed, 122 insertions, 12 deletions
diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp
index cf044a45..c6c7678d 100644
--- a/tests/barstest/chart.cpp
+++ b/tests/barstest/chart.cpp
@@ -20,13 +20,14 @@
#include "custominputhandler.h"
#include <QtDataVisualization/qcategory3daxis.h>
#include <QtDataVisualization/qvalue3daxis.h>
-#include <QtDataVisualization/qvalue3daxisformatter.h>
+#include <QtDataVisualization/qlogvalue3daxisformatter.h>
#include <QtDataVisualization/qbardataproxy.h>
#include <QtDataVisualization/q3dscene.h>
#include <QtDataVisualization/q3dcamera.h>
#include <QtDataVisualization/q3dtheme.h>
#include <QtDataVisualization/q3dinputhandler.h>
-#include <QTime>
+#include <QtCore/QTime>
+#include <QtCore/qmath.h>
using namespace QtDataVisualization;
@@ -43,7 +44,7 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog)
m_barSpacingX(0.1f),
m_barSpacingZ(0.1f),
m_fontSize(20),
- m_segments(4),
+ m_segments(10),
m_subSegments(3),
m_minval(-16.0f),
m_maxval(20.0f),
@@ -222,6 +223,8 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog)
&GraphModifier::handleValueAxisChanged);
QObject::connect(m_graph, &Q3DBars::primarySeriesChanged, this,
&GraphModifier::handlePrimarySeriesChanged);
+ QObject::connect(m_temperatureAxis, &QAbstract3DAxis::labelsChanged, this,
+ &GraphModifier::handleValueAxisLabelsChanged);
QObject::connect(&m_insertRemoveTimer, &QTimer::timeout, this,
&GraphModifier::insertRemoveTimerTimeout);
@@ -1047,15 +1050,85 @@ void GraphModifier::toggleRotation()
void GraphModifier::useLogAxis()
{
- // TODO proper log axis test
+ static int counter = -1;
+ static QLogValue3DAxisFormatter *logFormatter = new QLogValue3DAxisFormatter;
+
+ counter++;
+
+ switch (counter) {
+ case 0: {
+ qDebug() << "Case" << counter << ": Default log axis";
+ logFormatter = new QLogValue3DAxisFormatter;
+ m_graph->valueAxis()->setFormatter(logFormatter);
+ m_graph->valueAxis()->setRange(1.0f, 1200.0f);
+ m_graph->valueAxis()->setLabelFormat(QStringLiteral("%.3f"));
+ break;
+ }
+ case 1: {
+ qDebug() << "Case" << counter << ": Hide max label";
+ logFormatter->setShowMaxLabel(false);
+ break;
+ }
+ case 2: {
+ qDebug() << "Case" << counter << ": Try to hide subgrid unsuccessfully";
+ m_graph->valueAxis()->setSubSegmentCount(1);
+ break;
+ }
+ case 3: {
+ qDebug() << "Case" << counter << ": Hide subgrid property";
+ logFormatter->setAutoSubGrid(false);
+ m_graph->valueAxis()->setSubSegmentCount(1);
+ break;
+ }
+ case 4: {
+ qDebug() << "Case" << counter << ": Different base: 2";
+ logFormatter->setBase(2.0f);
+ logFormatter->setAutoSubGrid(true);
+ break;
+ }
+ case 5: {
+ qDebug() << "Case" << counter << ": Different base: 16";
+ logFormatter->setBase(16.0f);
+ break;
+ }
+ case 6: {
+ qDebug() << "Case" << counter << ": Invalid bases";
+ logFormatter->setBase(-1.0f);
+ logFormatter->setBase(1.0f);
+ break;
+ }
+ case 7: {
+ qDebug() << "Case" << counter << ": Zero base";
+ logFormatter->setBase(0.0f);
+ break;
+ }
+ case 8: {
+ qDebug() << "Case" << counter << ": Explicit ranges and segments";
+ int segmentCount = 6;
+ int base = 4;
+ m_graph->valueAxis()->setSegmentCount(segmentCount);
+ m_graph->valueAxis()->setSubSegmentCount(base - 1);
+ m_graph->valueAxis()->setRange(1.0f / float(base * base), qPow(base, segmentCount - 2));
+ break;
+ }
+ case 9: {
+ qDebug() << "Case" << counter << ": Negative range";
+ m_graph->valueAxis()->setRange(-20.0f, 50.0f);
+ break;
+ }
+ case 10: {
+ qDebug() << "Case" << counter << ": Non-integer base";
+ logFormatter->setBase(3.3f);
+ logFormatter->setAutoSubGrid(true);
+ break;
+ }
+ default:
+ qDebug() << "Resetting logaxis test";
+ counter = -1;
+ break;
+ }
-// // Change y-axis to log axis
-// QValue3DAxis *logAxis = new QValue3DAxis;
-// logAxis->formatter()->setBase(10);
-// logAxis->setSegmentCount(5);
-// logAxis->setRange(1, 100000);
- // m_graph->setValueAxis(logAxis);
}
void GraphModifier::changeValueAxisFormat(const QString & text)
@@ -1063,6 +1136,21 @@ void GraphModifier::changeValueAxisFormat(const QString & text)
m_graph->valueAxis()->setLabelFormat(text);
}
+void GraphModifier::changeLogBase(const QString &text)
+{
+ QLogValue3DAxisFormatter *formatter =
+ qobject_cast<QLogValue3DAxisFormatter *>(m_graph->valueAxis()->formatter());
+ if (formatter)
+ formatter->setBase(qreal(text.toDouble()));
+}
+
+void GraphModifier::changeValueAxisSegments(int value)
+{
+ qDebug() << __FUNCTION__ << value;
+ m_segments = value;
+ m_graph->valueAxis()->setSegmentCount(m_segments);
+}
+
void GraphModifier::insertRemoveTimerTimeout()
{
if (m_insertRemoveStep < 32) {
@@ -1119,6 +1207,11 @@ void GraphModifier::triggerRotation()
}
}
+void GraphModifier::handleValueAxisLabelsChanged()
+{
+ qDebug() << __FUNCTION__;
+}
+
void GraphModifier::setBackgroundEnabled(int enabled)
{
m_graph->activeTheme()->setBackgroundEnabled(bool(enabled));
diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h
index 304103cd..52c46a8c 100644
--- a/tests/barstest/chart.h
+++ b/tests/barstest/chart.h
@@ -87,6 +87,7 @@ public:
void toggleRotation();
void useLogAxis();
void changeValueAxisFormat(const QString & text);
+ void changeLogBase(const QString & text);
public slots:
void flipViews();
@@ -96,6 +97,7 @@ public slots:
void shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQuality shadowQuality);
void handleSelectionChange(const QPoint &position);
void setUseNullInputHandler(bool useNull);
+ void changeValueAxisSegments(int value);
void handleRowAxisChanged(QCategory3DAxis *axis);
void handleColumnAxisChanged(QCategory3DAxis *axis);
@@ -105,6 +107,7 @@ public slots:
void insertRemoveTimerTimeout();
void triggerSelection();
void triggerRotation();
+ void handleValueAxisLabelsChanged();
signals:
void shadowQualityChanged(int quality);
diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp
index edf61e2e..f4cd02f7 100644
--- a/tests/barstest/main.cpp
+++ b/tests/barstest/main.cpp
@@ -33,6 +33,7 @@
#include <QPainter>
#include <QColorDialog>
#include <QLineEdit>
+#include <QSpinBox>
int main(int argc, char **argv)
{
@@ -292,6 +293,11 @@ int main(int argc, char **argv)
shadowQuality->setCurrentIndex(5);
QLineEdit *valueAxisFormatEdit = new QLineEdit(widget);
+ QLineEdit *logBaseEdit = new QLineEdit(widget);
+ QSpinBox *valueAxisSegmentsSpin = new QSpinBox(widget);
+ valueAxisSegmentsSpin->setMinimum(1);
+ valueAxisSegmentsSpin->setMaximum(100);
+ valueAxisSegmentsSpin->setValue(10);
vLayout->addWidget(addDataButton, 0, Qt::AlignTop);
vLayout->addWidget(addMultiDataButton, 0, Qt::AlignTop);
@@ -320,7 +326,6 @@ int main(int argc, char **argv)
vLayout->addWidget(ownThemeButton, 0, Qt::AlignTop);
vLayout->addWidget(primarySeriesTestsButton, 0, Qt::AlignTop);
vLayout->addWidget(toggleRotationButton, 0, Qt::AlignTop);
- vLayout->addWidget(logAxisButton, 0, Qt::AlignTop);
vLayout->addWidget(gradientBtoYPB, 1, Qt::AlignTop);
vLayout2->addWidget(staticCheckBox, 0, Qt::AlignTop);
@@ -349,7 +354,12 @@ int main(int argc, char **argv)
vLayout2->addWidget(new QLabel(QStringLiteral("Adjust font size")), 0, Qt::AlignTop);
vLayout2->addWidget(fontSizeSlider, 0, Qt::AlignTop);
vLayout2->addWidget(new QLabel(QStringLiteral("Value axis format")), 0, Qt::AlignTop);
- vLayout2->addWidget(valueAxisFormatEdit, 1, Qt::AlignTop);
+ vLayout2->addWidget(valueAxisFormatEdit, 0, Qt::AlignTop);
+ vLayout2->addWidget(new QLabel(QStringLiteral("Log axis base")), 0, Qt::AlignTop);
+ vLayout2->addWidget(logBaseEdit, 0, Qt::AlignTop);
+ vLayout2->addWidget(new QLabel(QStringLiteral("Value axis segments")), 0, Qt::AlignTop);
+ vLayout2->addWidget(valueAxisSegmentsSpin, 0, Qt::AlignTop);
+ vLayout->addWidget(logAxisButton, 1, Qt::AlignTop);
// TODO: Add example for setMeshFileName
widget->show();
@@ -387,6 +397,10 @@ int main(int argc, char **argv)
&GraphModifier::changeFontSize);
QObject::connect(valueAxisFormatEdit, &QLineEdit::textEdited, modifier,
&GraphModifier::changeValueAxisFormat);
+ QObject::connect(logBaseEdit, &QLineEdit::textEdited, modifier,
+ &GraphModifier::changeLogBase);
+ QObject::connect(valueAxisSegmentsSpin, SIGNAL(valueChanged(int)), modifier,
+ SLOT(changeValueAxisSegments(int)));
QObject::connect(multiScaleButton, &QPushButton::clicked, modifier,
&GraphModifier::toggleMultiseriesScaling);