diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/barstest/chart.cpp | 36 | ||||
-rw-r--r-- | tests/barstest/chart.h | 2 | ||||
-rw-r--r-- | tests/barstest/main.cpp | 2 | ||||
-rw-r--r-- | tests/kinectsurface/surfacedata.cpp | 4 | ||||
-rw-r--r-- | tests/qmlcamera/qml/qmlcamera/main.qml | 4 | ||||
-rw-r--r-- | tests/scattertest/scatterchart.cpp | 2 | ||||
-rw-r--r-- | tests/spectrum/spectrumapp/main.cpp | 2 | ||||
-rw-r--r-- | tests/surfacetest/graphmodifier.cpp | 49 | ||||
-rw-r--r-- | tests/surfacetest/graphmodifier.h | 5 | ||||
-rw-r--r-- | tests/surfacetest/main.cpp | 38 |
10 files changed, 92 insertions, 52 deletions
diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index ad27d83c..d71f60b4 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -42,7 +42,7 @@ GraphModifier::GraphModifier(Q3DBars *barchart) m_subSegments(3), m_minval(-20.0), // TODO Barchart Y-axis currently only properly supports zero-centered ranges m_maxval(20.0), - m_selectedBarPos(-1, -1), + m_selectedBar(-1, -1), m_autoAdjustingAxis(new Q3DValueAxis), m_fixedRangeAxis(new Q3DValueAxis), m_temperatureAxis(new Q3DValueAxis), @@ -142,7 +142,7 @@ void GraphModifier::restart(bool dynamicData) m_chart->setRowAxis(m_yearAxis); m_chart->setColumnAxis(m_monthAxis); - m_chart->setSelectionMode(QDataVis::SelectionModeItem); + m_chart->setSelectionMode(QDataVis::SelectionItem); } else { m_chart->setActiveDataProxy(m_genericData); @@ -152,7 +152,7 @@ void GraphModifier::restart(bool dynamicData) m_chart->setRowAxis(m_genericRowAxis); m_chart->setColumnAxis(m_genericColumnAxis); - m_chart->setSelectionMode(QDataVis::SelectionModeItem); + m_chart->setSelectionMode(QDataVis::SelectionItem); } } @@ -160,10 +160,10 @@ void GraphModifier::selectBar() { QPoint targetBar(5, 5); QPoint noSelection(-1, -1); - if (m_selectedBarPos != targetBar) - m_chart->setSelectedBarPos(targetBar); + if (m_selectedBar != targetBar) + m_chart->setSelectedBar(targetBar); else - m_chart->setSelectedBarPos(noSelection); + m_chart->setSelectedBar(noSelection); } void GraphModifier::swapAxis() @@ -317,7 +317,7 @@ void GraphModifier::insertRow() (*dataRow)[i].setValue(((i + 1) / (qreal)m_columnCount) * (qreal)(rand() % 100)); // TODO Needs to be changed to account for data window offset once it is implemented. - int row = qMax(m_selectedBarPos.x(), 0); + int row = qMax(m_selectedBar.x(), 0); QString label = QStringLiteral("Insert %1").arg(insertCounter++); m_chart->activeDataProxy()->insertRow(row, dataRow, label); } @@ -337,7 +337,7 @@ void GraphModifier::insertRows() } // TODO Needs to be changed to account for data window offset once it is implemented. - int row = qMax(m_selectedBarPos.x(), 0); + int row = qMax(m_selectedBar.x(), 0); m_chart->activeDataProxy()->insertRows(row, dataArray, labels); qDebug() << "Inserted" << m_rowCount << "rows, time:" << timer.elapsed(); } @@ -345,8 +345,8 @@ void GraphModifier::insertRows() void GraphModifier::changeItem() { // TODO Needs to be changed to account for data window offset once it is implemented. - int row = m_selectedBarPos.x(); - int column = m_selectedBarPos.y(); + int row = m_selectedBar.x(); + int column = m_selectedBar.y(); if (row >= 0 && column >= 0) { QBarDataItem item(qreal(rand() % 100)); m_chart->activeDataProxy()->setItem(row, column, item); @@ -356,7 +356,7 @@ void GraphModifier::changeItem() void GraphModifier::changeRow() { // TODO Needs to be changed to account for data window offset once it is implemented. - int row = m_selectedBarPos.x(); + int row = m_selectedBar.x(); if (row >= 0) { QBarDataRow *newRow = new QBarDataRow(m_chart->activeDataProxy()->rowAt(row)->size()); for (int i = 0; i < newRow->size(); i++) @@ -369,7 +369,7 @@ void GraphModifier::changeRow() void GraphModifier::changeRows() { // TODO Needs to be changed to account for data window offset once it is implemented. - int row = m_selectedBarPos.x(); + int row = m_selectedBar.x(); if (row >= 0) { int startRow = qMax(row - 2, 0); QBarDataArray newArray; @@ -388,7 +388,7 @@ void GraphModifier::changeRows() void GraphModifier::removeRow() { // TODO Needs to be changed to account for data window offset once it is implemented. - int row = m_selectedBarPos.x(); + int row = m_selectedBar.x(); if (row >= 0) m_chart->activeDataProxy()->removeRows(row, 1); } @@ -396,7 +396,7 @@ void GraphModifier::removeRow() void GraphModifier::removeRows() { // TODO Needs to be changed to account for data window offset once it is implemented. - int row = m_selectedBarPos.x(); + int row = m_selectedBar.x(); if (row >= 0) { int startRow = qMax(row - 2, 0); m_chart->activeDataProxy()->removeRows(startRow, 3); @@ -477,10 +477,10 @@ void GraphModifier::changeSelectionMode() { static int selectionMode = m_chart->selectionMode(); - if (++selectionMode > QDataVis::SelectionModeSliceColumn) - selectionMode = QDataVis::SelectionModeNone; + if (++selectionMode > (QDataVis::SelectionItemAndColumn | QDataVis::SelectionSlice)) + selectionMode = QDataVis::SelectionNone; - m_chart->setSelectionMode((QDataVis::SelectionMode)selectionMode); + m_chart->setSelectionMode((QDataVis::SelectionFlag)selectionMode); } void GraphModifier::changeFont(const QFont &font) @@ -507,7 +507,7 @@ void GraphModifier::shadowQualityUpdatedByVisual(QDataVis::ShadowQuality sq) void GraphModifier::handleSelectionChange(const QPoint &position) { - m_selectedBarPos = position; + m_selectedBar = position; qDebug() << "Selected bar position:" << position; } diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index e4e96ffb..6d33bacb 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -96,7 +96,7 @@ private: qreal m_maxval; QStringList m_months; QStringList m_years; - QPoint m_selectedBarPos; + QPoint m_selectedBar; Q3DValueAxis *m_autoAdjustingAxis; Q3DValueAxis *m_fixedRangeAxis; Q3DValueAxis *m_temperatureAxis; diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp index 7742cb0e..0d3838a8 100644 --- a/tests/barstest/main.cpp +++ b/tests/barstest/main.cpp @@ -287,7 +287,7 @@ int main(int argc, char **argv) &QComboBox::setCurrentIndex); QObject::connect(widgetchart, &Q3DBars::shadowQualityChanged, modifier, &GraphModifier::shadowQualityUpdatedByVisual); - QObject::connect(widgetchart, &Q3DBars::selectedBarPosChanged, modifier, + QObject::connect(widgetchart, &Q3DBars::selectedBarChanged, modifier, &GraphModifier::handleSelectionChange); QObject::connect(fontSizeSlider, &QSlider::valueChanged, modifier, diff --git a/tests/kinectsurface/surfacedata.cpp b/tests/kinectsurface/surfacedata.cpp index b11be8d5..79489fc8 100644 --- a/tests/kinectsurface/surfacedata.cpp +++ b/tests/kinectsurface/surfacedata.cpp @@ -45,7 +45,7 @@ SurfaceData::SurfaceData(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars gradient.setColorAt(0.33, Qt::blue); gradient.setColorAt(0.67, Qt::red); gradient.setColorAt(1.0, Qt::yellow); - m_surface->setSelectionMode(QDataVis::SelectionModeNone); + m_surface->setSelectionMode(QDataVis::SelectionNone); m_surface->setGridVisible(false); m_surface->setGradient(gradient); m_surface->axisY()->setMax(255); @@ -57,7 +57,7 @@ SurfaceData::SurfaceData(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars // Initialize scatter m_scatter->setTheme(QDataVis::ThemeStoneMoss); - m_scatter->setSelectionMode(QDataVis::SelectionModeNone); + m_scatter->setSelectionMode(QDataVis::SelectionNone); m_scatter->setGridVisible(false); m_scatter->setObjectType(QDataVis::MeshStyleDots, false); m_scatter->setShadowQuality(QDataVis::ShadowQualitySoftLow); diff --git a/tests/qmlcamera/qml/qmlcamera/main.qml b/tests/qmlcamera/qml/qmlcamera/main.qml index 72d2a45f..dbe11b8e 100644 --- a/tests/qmlcamera/qml/qmlcamera/main.qml +++ b/tests/qmlcamera/qml/qmlcamera/main.qml @@ -46,7 +46,7 @@ Item { width: dataView.width height: dataView.height shadowQuality: Bars3D.ShadowQualityMedium - selectionMode: Bars3D.SelectionModeItem + selectionMode: Bars3D.SelectionItem font.pointSize: 35 theme: Bars3D.ThemeRetro labelStyle: Bars3D.LabelStyleFromTheme @@ -59,7 +59,7 @@ Item { valueAxis: chartAxes.expenses itemLabelFormat: "@valueTitle for @colLabel, @rowLabel: @valueLabel" - onSelectedBarPosChanged: { + onSelectedBarChanged: { // Set camControlArea current row to selected bar var rowRole = chartData.proxy.rowLabels[position.x]; var colRole = chartData.proxy.columnLabels[position.y]; diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index f23ee99d..48f1d999 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -48,6 +48,8 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) proxy->setItemLabelFormat("@xTitle: @xLabel @yTitle: @yLabel @zTitle: @zLabel"); m_chart->setActiveDataProxy(proxy); + m_chart->setSelectionMode(QDataVis::SelectionItemAndColumn); + connect(&m_timer, &QTimer::timeout, this, &ScatterDataModifier::timeout); } diff --git a/tests/spectrum/spectrumapp/main.cpp b/tests/spectrum/spectrumapp/main.cpp index 3d2e2bf1..31bdb0f1 100644 --- a/tests/spectrum/spectrumapp/main.cpp +++ b/tests/spectrum/spectrumapp/main.cpp @@ -99,7 +99,7 @@ MainApp::MainApp(Q3DBars *window) // Set color scheme m_chart->setBarColor(QColor(Qt::red), false); // Disable selection - m_chart->setSelectionMode(QDataVis::SelectionModeNone); + m_chart->setSelectionMode(QDataVis::SelectionNone); QObject::connect(m_engine, &Engine::changedSpectrum, this, &MainApp::spectrumChanged); QObject::connect(m_engine, &Engine::stateChanged, this, &MainApp::stateChanged); m_restartTimer->setSingleShot(true); diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp index d4e99031..bd6ec920 100644 --- a/tests/surfacetest/graphmodifier.cpp +++ b/tests/surfacetest/graphmodifier.cpp @@ -23,11 +23,12 @@ #include <qmath.h> #include <QLinearGradient> #include <QDebug> +#include <QComboBox> QT_DATAVISUALIZATION_USE_NAMESPACE //#define JITTER_PLANE -//#define WONKY_PLANE +#define WONKY_PLANE GraphModifier::GraphModifier(Q3DSurface *graph) : m_graph(graph), @@ -55,6 +56,7 @@ GraphModifier::GraphModifier(Q3DSurface *graph) changeStyle(); connect(&m_timer, &QTimer::timeout, this, &GraphModifier::timeout); + connect(m_graph, &Q3DSurface::selectedPointChanged, this, &GraphModifier::selectedPointChanged); } GraphModifier::~GraphModifier() @@ -137,6 +139,7 @@ void GraphModifier::togglePlane(bool enable) float halfZ = m_zCount / 2; float wonkyFactor = 0.01f; float maxStepX = 0.0f; + float add = 0.0f; for (float i = 0; i < m_zCount; i++) { QSurfaceDataRow *newRow = new QSurfaceDataRow(m_xCount); if (i < halfZ) { @@ -145,15 +148,17 @@ void GraphModifier::togglePlane(bool enable) } else { stepX -= wonkyFactor; } + add = 0.0f; for (float j = 0; j < m_xCount; j++) { (*newRow)[j].setPosition(QVector3D(j * stepX + minX, -0.04f, - i * stepZ + minZ)); + i * stepZ + minZ + add)); + add += 0.5f; } *m_planeArray << newRow; } - resetArrayAndSliders(m_planeArray, minZ, maxZ, minX, m_xCount * maxStepX + minZ); + resetArrayAndSliders(m_planeArray, minZ, maxZ + add, minX, m_xCount * maxStepX + minX); #else for (float i = 0; i < m_zCount; i++) { QSurfaceDataRow *newRow = new QSurfaceDataRow(m_xCount); @@ -303,6 +308,20 @@ void GraphModifier::changeStyle() style = QDataVis::LabelStyleOpaque; } +void GraphModifier::selectButtonClicked() +{ + int row = rand() % m_graph->activeDataProxy()->rowCount(); + int col = rand() % m_graph->activeDataProxy()->columnCount(); + + m_graph->setSelectedPoint(QPoint(row, col)); +} + +void GraphModifier::selectedPointChanged(const QPoint &point) +{ + QString labelText = QStringLiteral("Selected row: %1, column: %2").arg(point.x()).arg(point.y()); + m_selectionInfoLabel->setText(labelText); +} + void GraphModifier::changeTheme(int theme) { m_graph->setTheme((QDataVis::Theme)theme); @@ -347,26 +366,10 @@ void GraphModifier::changeShadowQuality(int quality) void GraphModifier::changeSelectionMode(int mode) { - switch (mode) { - case 0: - qDebug() << "QDataVis::SelectionModeNone"; - m_graph->setSelectionMode(QDataVis::SelectionModeNone); - break; - case 1: - qDebug() << "QDataVis::SelectionModeItem"; - m_graph->setSelectionMode(QDataVis::SelectionModeItem); - break; - case 2: - qDebug() << "QDataVis::SelectionModeSliceRow"; - m_graph->setSelectionMode(QDataVis::SelectionModeSliceRow); - break; - case 3: - qDebug() << "QDataVis::SelectionModeSliceColumn"; - m_graph->setSelectionMode(QDataVis::SelectionModeSliceColumn); - break; - default: - qDebug() << __FUNCTION__ << " Unsupported selection mode."; - break; + QComboBox *comboBox = qobject_cast<QComboBox *>(sender()); + if (comboBox) { + int flags = comboBox->itemData(mode).toInt(); + m_graph->setSelectionMode(QDataVis::SelectionFlags(flags)); } } diff --git a/tests/surfacetest/graphmodifier.h b/tests/surfacetest/graphmodifier.h index 83b1873b..ed94b372 100644 --- a/tests/surfacetest/graphmodifier.h +++ b/tests/surfacetest/graphmodifier.h @@ -23,6 +23,7 @@ #include <QtDataVisualization/QSurfaceDataProxy> #include <QSlider> #include <QTimer> +#include <QLabel> using namespace QtDataVisualization; @@ -61,6 +62,9 @@ public: void gradientPressed(); void changeFont(const QFont &font); void changeStyle(); + void selectButtonClicked(); + void setSelectionInfoLabel(QLabel *label) {m_selectionInfoLabel = label; } + void selectedPointChanged(const QPoint &point); public slots: void changeShadowQuality(int quality); @@ -90,6 +94,7 @@ private: qreal m_minZ; QTimer m_timer; QSurfaceDataArray *m_planeArray; + QLabel *m_selectionInfoLabel; }; #endif diff --git a/tests/surfacetest/main.cpp b/tests/surfacetest/main.cpp index 19f30e5d..e4283b3e 100644 --- a/tests/surfacetest/main.cpp +++ b/tests/surfacetest/main.cpp @@ -167,12 +167,37 @@ int main(int argc, char *argv[]) // shadowQuality->addItem(QStringLiteral("High Soft")); // shadowQuality->setCurrentIndex(3); QComboBox *selectionMode = new QComboBox(widget); - selectionMode->addItem(QStringLiteral("SelectionModeNone")); - selectionMode->addItem(QStringLiteral("SelectionModeItem")); - selectionMode->addItem(QStringLiteral("SelectionModeSliceRow")); - selectionMode->addItem(QStringLiteral("SelectionModeSliceColumn")); + selectionMode->addItem(QStringLiteral("None"), + int(QDataVis::SelectionNone)); + selectionMode->addItem(QStringLiteral("Item"), + int(QDataVis::SelectionItem)); + selectionMode->addItem(QStringLiteral("Row"), + int(QDataVis::SelectionRow)); + selectionMode->addItem(QStringLiteral("Item and Row"), + int(QDataVis::SelectionItemAndRow)); + selectionMode->addItem(QStringLiteral("Column"), + int(QDataVis::SelectionColumn)); + selectionMode->addItem(QStringLiteral("Item and Column"), + int(QDataVis::SelectionItemAndColumn)); + selectionMode->addItem(QStringLiteral("Row and Column"), + int(QDataVis::SelectionRowAndColumn)); + selectionMode->addItem(QStringLiteral("Item, Row and Column"), + int(QDataVis::SelectionItemRowAndColumn)); + selectionMode->addItem(QStringLiteral("Slice into Row"), + int(QDataVis::SelectionSlice | QDataVis::SelectionRow)); + selectionMode->addItem(QStringLiteral("Slice into Row and Item"), + int(QDataVis::SelectionSlice | QDataVis::SelectionItemAndRow)); + selectionMode->addItem(QStringLiteral("Slice into Column"), + int(QDataVis::SelectionSlice | QDataVis::SelectionColumn)); + selectionMode->addItem(QStringLiteral("Slice into Column and Item"), + int(QDataVis::SelectionSlice | QDataVis::SelectionItemAndColumn)); selectionMode->setCurrentIndex(1); + QPushButton *selectButton = new QPushButton(widget); + selectButton->setText(QStringLiteral("Select random point")); + + QLabel *selectionInfoLabel = new QLabel(widget); + // Add controls to the layout vLayout->addWidget(smoothCB); vLayout->addWidget(surfaceGridCB); @@ -200,6 +225,8 @@ int main(int argc, char *argv[]) // vLayout->addWidget(shadowQuality); vLayout->addWidget(new QLabel(QStringLiteral("Selection Mode"))); vLayout->addWidget(selectionMode); + vLayout->addWidget(selectButton); + vLayout->addWidget(selectionInfoLabel); widget->show(); @@ -242,6 +269,8 @@ int main(int argc, char *argv[]) // modifier, SLOT(changeShadowQuality(int))); QObject::connect(selectionMode, SIGNAL(currentIndexChanged(int)), modifier, SLOT(changeSelectionMode(int))); + QObject::connect(selectButton, &QPushButton::clicked, + modifier, &GraphModifier::selectButtonClicked); modifier->setGridSliderZ(gridSliderZ); modifier->setGridSliderX(gridSliderX); @@ -250,6 +279,7 @@ int main(int argc, char *argv[]) modifier->setAxisMinSliderX(axisMinSliderX); modifier->setAxisMinSliderZ(axisMinSliderZ); modifier->toggleGridSliderLock(gridSlidersLockCB->checkState()); + modifier->setSelectionInfoLabel(selectionInfoLabel); sqrtSinCB->setChecked(true); return app.exec(); |