From 1b311517f8889e6faa8a1ae51af582c1cd07e739 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 4 Jul 2014 12:14:13 +0300 Subject: 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 --- tests/barstest/chart.cpp | 17 ++++++++++- tests/barstest/chart.h | 7 +++-- tests/barstest/main.cpp | 77 +++++++++++++++++++++++++++++++----------------- 3 files changed, 71 insertions(+), 30 deletions(-) (limited to 'tests') 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(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 -#include +#include #include #include #include @@ -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); -- cgit v1.2.3