summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-07-04 12:14:13 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-07-04 12:55:05 +0300
commit1b311517f8889e6faa8a1ae51af582c1cd07e739 (patch)
treed1b023e36b5c7ddd67368007bb64c4b8551c480b /tests
parent9c3b9fb2d8f07b2b3f2e5bc84653711043c9936c (diff)
Exposed default input handlers to QML
Also added properties to control rotation, zoom, and selection individually. Also added missing documentation about surface texture. Task-number: QTRD-3202 Change-Id: I981edb7f336aea499440559f4a2098711200206d Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/barstest/chart.cpp17
-rw-r--r--tests/barstest/chart.h7
-rw-r--r--tests/barstest/main.cpp77
3 files changed, 71 insertions, 30 deletions
diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp
index d3c38d85..e0f9ff18 100644
--- a/tests/barstest/chart.cpp
+++ b/tests/barstest/chart.cpp
@@ -203,7 +203,7 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog)
m_graph->activeTheme()->setFont(QFont("Times Roman", 20));
// Release and store the default input handler.
- m_defaultInputHandler = m_graph->activeInputHandler();
+ m_defaultInputHandler = static_cast<Q3DInputHandler *>(m_graph->activeInputHandler());
m_graph->releaseInputHandler(m_defaultInputHandler);
m_graph->setActiveInputHandler(m_defaultInputHandler);
@@ -1406,6 +1406,21 @@ void GraphModifier::reverseValueAxis(int enabled)
m_graph->valueAxis()->setReversed(enabled);
}
+void GraphModifier::setInputHandlerRotationEnabled(int enabled)
+{
+ m_defaultInputHandler->setRotationEnabled(enabled);
+}
+
+void GraphModifier::setInputHandlerZoomEnabled(int enabled)
+{
+ m_defaultInputHandler->setZoomEnabled(enabled);
+}
+
+void GraphModifier::setInputHandlerSelectionEnabled(int enabled)
+{
+ m_defaultInputHandler->setSelectionEnabled(enabled);
+}
+
void GraphModifier::changeValueAxisSegments(int value)
{
qDebug() << __FUNCTION__ << value;
diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h
index 47d29c25..7ee781ad 100644
--- a/tests/barstest/chart.h
+++ b/tests/barstest/chart.h
@@ -20,7 +20,7 @@
#define CHARTMODIFIER_H
#include <QtDataVisualization/q3dbars.h>
-#include <QtDataVisualization/qabstract3dinputhandler.h>
+#include <QtDataVisualization/q3dinputhandler.h>
#include <QtDataVisualization/qbar3dseries.h>
#include <QtDataVisualization/q3dtheme.h>
#include <QFont>
@@ -94,6 +94,9 @@ public:
void addRemoveSeries();
void testItemAndRowChanges();
void reverseValueAxis(int enabled);
+ void setInputHandlerRotationEnabled(int enabled);
+ void setInputHandlerZoomEnabled(int enabled);
+ void setInputHandlerSelectionEnabled(int enabled);
public slots:
void flipViews();
@@ -159,7 +162,7 @@ private:
QValue3DAxis *m_currentAxis;
bool m_negativeValuesOn;
bool m_useNullInputHandler;
- QAbstract3DInputHandler *m_defaultInputHandler;
+ Q3DInputHandler *m_defaultInputHandler;
Q3DTheme *m_ownTheme;
Q3DTheme *m_builtinTheme;
QTimer m_insertRemoveTimer;
diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp
index 5ecf63a4..2d755c7f 100644
--- a/tests/barstest/main.cpp
+++ b/tests/barstest/main.cpp
@@ -43,6 +43,7 @@ int main(int argc, char **argv)
QHBoxLayout *hLayout = new QHBoxLayout(widget);
QVBoxLayout *vLayout = new QVBoxLayout();
QVBoxLayout *vLayout2 = new QVBoxLayout();
+ QVBoxLayout *vLayout3 = new QVBoxLayout();
// For testing custom surface format
QSurfaceFormat surfaceFormat;
@@ -65,6 +66,7 @@ int main(int argc, char **argv)
hLayout->addWidget(container, 1);
hLayout->addLayout(vLayout);
hLayout->addLayout(vLayout2);
+ hLayout->addLayout(vLayout3);
QPushButton *addSeriesButton = new QPushButton(widget);
addSeriesButton->setText(QStringLiteral("Add / Remove a series"));
@@ -220,6 +222,18 @@ int main(int argc, char **argv)
staticCheckBox->setText("Use dynamic data");
staticCheckBox->setChecked(false);
+ QCheckBox *inputHandlerRotationCheckBox = new QCheckBox(widget);
+ inputHandlerRotationCheckBox->setText("IH: Allow rotation");
+ inputHandlerRotationCheckBox->setChecked(true);
+
+ QCheckBox *inputHandlerZoomCheckBox = new QCheckBox(widget);
+ inputHandlerZoomCheckBox->setText("IH: Allow zoom");
+ inputHandlerZoomCheckBox->setChecked(true);
+
+ QCheckBox *inputHandlerSelectionCheckBox = new QCheckBox(widget);
+ inputHandlerSelectionCheckBox->setText("IH: Allow selection");
+ inputHandlerSelectionCheckBox->setChecked(true);
+
QSlider *rotationSliderX = new QSlider(Qt::Horizontal, widget);
rotationSliderX->setTickInterval(1);
rotationSliderX->setMinimum(-180);
@@ -340,15 +354,15 @@ int main(int argc, char **argv)
vLayout->addWidget(insertRemoveTestButton, 0, Qt::AlignTop);
vLayout->addWidget(releaseAxesButton, 0, Qt::AlignTop);
vLayout->addWidget(releaseProxiesButton, 1, Qt::AlignTop);
- vLayout->addWidget(flipViewsButton, 0, Qt::AlignTop);
- vLayout->addWidget(changeColorStyleButton, 0, Qt::AlignTop);
- vLayout->addWidget(ownThemeButton, 0, Qt::AlignTop);
- vLayout->addWidget(primarySeriesTestsButton, 0, Qt::AlignTop);
- vLayout->addWidget(toggleRotationButton, 0, Qt::AlignTop);
- vLayout->addWidget(gradientBtoYPB, 0, Qt::AlignTop);
- vLayout->addWidget(logAxisButton, 0, Qt::AlignTop);
- vLayout->addWidget(testItemAndRowChangesButton, 1, Qt::AlignTop);
+ vLayout2->addWidget(flipViewsButton, 0, Qt::AlignTop);
+ vLayout2->addWidget(changeColorStyleButton, 0, Qt::AlignTop);
+ vLayout2->addWidget(ownThemeButton, 0, Qt::AlignTop);
+ vLayout2->addWidget(primarySeriesTestsButton, 0, Qt::AlignTop);
+ vLayout2->addWidget(toggleRotationButton, 0, Qt::AlignTop);
+ vLayout2->addWidget(gradientBtoYPB, 0, Qt::AlignTop);
+ vLayout2->addWidget(logAxisButton, 0, Qt::AlignTop);
+ vLayout2->addWidget(testItemAndRowChangesButton, 0, Qt::AlignTop);
vLayout2->addWidget(staticCheckBox, 0, Qt::AlignTop);
vLayout2->addWidget(rotationCheckBox, 0, Qt::AlignTop);
vLayout2->addWidget(rotationSliderX, 0, Qt::AlignTop);
@@ -365,24 +379,28 @@ int main(int argc, char **argv)
vLayout2->addWidget(minSliderX, 0, Qt::AlignTop);
vLayout2->addWidget(minSliderZ, 0, Qt::AlignTop);
vLayout2->addWidget(minSliderY, 0, Qt::AlignTop);
- vLayout2->addWidget(maxSliderY, 0, Qt::AlignTop);
- vLayout2->addWidget(fpsLabel, 0, Qt::AlignTop);
- vLayout2->addWidget(fpsCheckBox, 0, Qt::AlignTop);
- vLayout2->addWidget(reverseValueAxisCheckBox, 0, Qt::AlignTop);
- vLayout2->addWidget(backgroundCheckBox, 0, Qt::AlignTop);
- vLayout2->addWidget(gridCheckBox, 0, Qt::AlignTop);
- vLayout2->addWidget(new QLabel(QStringLiteral("Adjust shadow quality")), 0, Qt::AlignTop);
- vLayout2->addWidget(shadowQuality, 0, Qt::AlignTop);
- vLayout2->addWidget(new QLabel(QStringLiteral("Change font")), 0, Qt::AlignTop);
- vLayout2->addWidget(fontList, 0, Qt::AlignTop);
- 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, 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);
+ vLayout2->addWidget(maxSliderY, 1, Qt::AlignTop);
+
+ vLayout3->addWidget(fpsLabel, 0, Qt::AlignTop);
+ vLayout3->addWidget(fpsCheckBox, 0, Qt::AlignTop);
+ vLayout3->addWidget(reverseValueAxisCheckBox, 0, Qt::AlignTop);
+ vLayout3->addWidget(backgroundCheckBox, 0, Qt::AlignTop);
+ vLayout3->addWidget(gridCheckBox, 0, Qt::AlignTop);
+ vLayout3->addWidget(inputHandlerRotationCheckBox, 0, Qt::AlignTop);
+ vLayout3->addWidget(inputHandlerZoomCheckBox, 0, Qt::AlignTop);
+ vLayout3->addWidget(inputHandlerSelectionCheckBox, 0, Qt::AlignTop);
+ vLayout3->addWidget(new QLabel(QStringLiteral("Adjust shadow quality")), 0, Qt::AlignTop);
+ vLayout3->addWidget(shadowQuality, 0, Qt::AlignTop);
+ vLayout3->addWidget(new QLabel(QStringLiteral("Change font")), 0, Qt::AlignTop);
+ vLayout3->addWidget(fontList, 0, Qt::AlignTop);
+ vLayout3->addWidget(new QLabel(QStringLiteral("Adjust font size")), 0, Qt::AlignTop);
+ vLayout3->addWidget(fontSizeSlider, 0, Qt::AlignTop);
+ vLayout3->addWidget(new QLabel(QStringLiteral("Value axis format")), 0, Qt::AlignTop);
+ vLayout3->addWidget(valueAxisFormatEdit, 0, Qt::AlignTop);
+ vLayout3->addWidget(new QLabel(QStringLiteral("Log axis base")), 0, Qt::AlignTop);
+ vLayout3->addWidget(logBaseEdit, 0, Qt::AlignTop);
+ vLayout3->addWidget(new QLabel(QStringLiteral("Value axis segments")), 0, Qt::AlignTop);
+ vLayout3->addWidget(valueAxisSegmentsSpin, 1, Qt::AlignTop);
// TODO: Add example for setMeshFileName
widget->show();
@@ -488,7 +506,12 @@ int main(int argc, char **argv)
&GraphModifier::setBackgroundEnabled);
QObject::connect(gridCheckBox, &QCheckBox::stateChanged, modifier,
&GraphModifier::setGridEnabled);
-
+ QObject::connect(inputHandlerRotationCheckBox, &QCheckBox::stateChanged, modifier,
+ &GraphModifier::setInputHandlerRotationEnabled);
+ QObject::connect(inputHandlerZoomCheckBox, &QCheckBox::stateChanged, modifier,
+ &GraphModifier::setInputHandlerZoomEnabled);
+ QObject::connect(inputHandlerSelectionCheckBox, &QCheckBox::stateChanged, modifier,
+ &GraphModifier::setInputHandlerSelectionEnabled);
QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, modifier,
&GraphModifier::setUseNullInputHandler);