diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-09-12 09:58:55 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-09-12 10:13:21 +0300 |
commit | 1262c6562d7264c9fe4caf2f433615348c0f2ef8 (patch) | |
tree | fb8f3427b6f400486815c810173a097c700120a8 /examples/scatterchart | |
parent | a89cc75f746d3ff61b08bb3b2b7338e9866c94b7 (diff) |
Improved scatterchart example
Task-number: QTRD-2239
+ changed some buttons to comboboxes
Change-Id: I87486497d1684b246d481413f31de1419a78eee4
Change-Id: I87486497d1684b246d481413f31de1419a78eee4
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'examples/scatterchart')
-rw-r--r-- | examples/scatterchart/main.cpp | 52 | ||||
-rw-r--r-- | examples/scatterchart/scatterchart.cpp | 47 | ||||
-rw-r--r-- | examples/scatterchart/scatterchart.h | 5 |
3 files changed, 64 insertions, 40 deletions
diff --git a/examples/scatterchart/main.cpp b/examples/scatterchart/main.cpp index cdbc6ec9..635ea0a5 100644 --- a/examples/scatterchart/main.cpp +++ b/examples/scatterchart/main.cpp @@ -52,14 +52,28 @@ int main(int argc, char **argv) hLayout->addWidget(container, 1); hLayout->addLayout(vLayout); - QPushButton *themeButton = new QPushButton(widget); - themeButton->setText(QStringLiteral("Change theme")); + QComboBox *themeList = new QComboBox(widget); + themeList->addItem(QStringLiteral("System")); + themeList->addItem(QStringLiteral("Blue Cerulean")); + themeList->addItem(QStringLiteral("Blue Icy")); + themeList->addItem(QStringLiteral("Blue Ncs")); + themeList->addItem(QStringLiteral("Brown Sand")); + themeList->addItem(QStringLiteral("Dark")); + themeList->addItem(QStringLiteral("High Contrast")); + themeList->addItem(QStringLiteral("Light")); + themeList->setCurrentIndex(4); QPushButton *labelButton = new QPushButton(widget); labelButton->setText(QStringLiteral("Change label style")); - QPushButton *styleButton = new QPushButton(widget); - styleButton->setText(QStringLiteral("Change item style")); + QCheckBox *smoothCheckBox = new QCheckBox(widget); + smoothCheckBox->setText(QStringLiteral("Smooth dots")); + smoothCheckBox->setChecked(true); + + QComboBox *barStyleList = new QComboBox(widget); + barStyleList->addItem(QStringLiteral("Sphere")); + barStyleList->addItem(QStringLiteral("Tetrahedron")); + barStyleList->setCurrentIndex(0); QPushButton *cameraButton = new QPushButton(widget); cameraButton->setText(QStringLiteral("Change camera preset")); @@ -85,12 +99,15 @@ int main(int argc, char **argv) QFontComboBox *fontList = new QFontComboBox(widget); fontList->setCurrentFont(QFont("Arial")); - vLayout->addWidget(themeButton, 0, Qt::AlignTop); vLayout->addWidget(labelButton, 0, Qt::AlignTop); - vLayout->addWidget(styleButton, 0, Qt::AlignTop); vLayout->addWidget(cameraButton, 0, Qt::AlignTop); vLayout->addWidget(backgroundCheckBox); vLayout->addWidget(gridCheckBox); + vLayout->addWidget(smoothCheckBox, 0, Qt::AlignTop); + vLayout->addWidget(new QLabel(QStringLiteral("Change dot style"))); + vLayout->addWidget(barStyleList); + vLayout->addWidget(new QLabel(QStringLiteral("Change theme"))); + vLayout->addWidget(themeList); vLayout->addWidget(new QLabel(QStringLiteral("Adjust shadow quality"))); vLayout->addWidget(shadowQuality); vLayout->addWidget(new QLabel(QStringLiteral("Change font"))); @@ -100,17 +117,27 @@ int main(int argc, char **argv) ScatterDataModifier *modifier = new ScatterDataModifier(chart); - QObject::connect(styleButton, &QPushButton::clicked, modifier, - &ScatterDataModifier::changeStyle); QObject::connect(cameraButton, &QPushButton::clicked, modifier, &ScatterDataModifier::changePresetCamera); - QObject::connect(themeButton, &QPushButton::clicked, modifier, - &ScatterDataModifier::changeTheme); QObject::connect(labelButton, &QPushButton::clicked, modifier, &ScatterDataModifier::changeTransparency); + QObject::connect(backgroundCheckBox, &QCheckBox::stateChanged, modifier, + &ScatterDataModifier::setBackgroundEnabled); + QObject::connect(gridCheckBox, &QCheckBox::stateChanged, modifier, + &ScatterDataModifier::setGridEnabled); + QObject::connect(smoothCheckBox, &QCheckBox::stateChanged, modifier, + &ScatterDataModifier::setSmoothDots); + + QObject::connect(barStyleList, SIGNAL(currentIndexChanged(int)), modifier, + SLOT(changeStyle(int))); + + QObject::connect(themeList, SIGNAL(currentIndexChanged(int)), modifier, + SLOT(changeTheme(int))); + QObject::connect(shadowQuality, SIGNAL(currentIndexChanged(int)), modifier, SLOT(changeShadowQuality(int))); + QObject::connect(modifier, &ScatterDataModifier::shadowQualityChanged, shadowQuality, &QComboBox::setCurrentIndex); QObject::connect(chart, &Q3DScatter::shadowQualityChanged, modifier, @@ -119,11 +146,6 @@ int main(int argc, char **argv) QObject::connect(fontList, &QFontComboBox::currentFontChanged, modifier, &ScatterDataModifier::changeFont); - QObject::connect(backgroundCheckBox, &QCheckBox::stateChanged, modifier, - &ScatterDataModifier::setBackgroundEnabled); - QObject::connect(gridCheckBox, &QCheckBox::stateChanged, modifier, - &ScatterDataModifier::setGridEnabled); - modifier->start(); return app.exec(); diff --git a/examples/scatterchart/scatterchart.cpp b/examples/scatterchart/scatterchart.cpp index a7571252..f68b8ad5 100644 --- a/examples/scatterchart/scatterchart.cpp +++ b/examples/scatterchart/scatterchart.cpp @@ -28,7 +28,9 @@ const int numberOfItems = 10000; ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) : m_chart(scatter), - m_fontSize(40.0f) + m_fontSize(40.0f), + m_style(QDataVis::Spheres), + m_smooth(true) { QFont font = m_chart->font(); font.setPointSize(m_fontSize); @@ -88,26 +90,21 @@ void ScatterDataModifier::addData() static_cast<QScatterDataProxy *>(m_chart->activeDataProxy())->resetArray(dataArray); } -void ScatterDataModifier::changeStyle() -{ - static int model = 0; - switch (model) { - case 0: - m_chart->setObjectType(QDataVis::Dots, false); - break; - case 1: - m_chart->setObjectType(QDataVis::Dots, true); - break; - case 2: - m_chart->setObjectType(QDataVis::Spheres, false); - break; - case 3: - m_chart->setObjectType(QDataVis::Spheres, true); - break; - } - model++; - if (model > 3) - model = 0; +void ScatterDataModifier::changeStyle(int style) +{ + m_style = QDataVis::MeshStyle(style + 5); // skip unsupported mesh types + m_chart->setObjectType(m_style, m_smooth); +} + +void ScatterDataModifier::setSmoothDots(int smooth) +{ + m_smooth = bool(smooth); + m_chart->setObjectType(m_style, m_smooth); +} + +void ScatterDataModifier::changeTheme(int theme) +{ + m_chart->setTheme((QDataVis::ColorTheme)theme); } void ScatterDataModifier::changePresetCamera() @@ -150,7 +147,7 @@ void ScatterDataModifier::changeFont(const QFont &font) void ScatterDataModifier::shadowQualityUpdatedByVisual(QDataVis::ShadowQuality sq) { int quality = int(sq); - // Updates the UI component to show correct shadow quality + // Updates the UI component to show correct shadow quality emit shadowQualityChanged(quality); } @@ -174,7 +171,7 @@ void ScatterDataModifier::setGridEnabled(int enabled) QVector3D ScatterDataModifier::randVector() { return QVector3D( - (float)(rand() % 100) / 2.0f - (float)(rand() % 100) / 2.0f, - (float)(rand() % 100) / 100.0f - (float)(rand() % 100) / 100.0f, - (float)(rand() % 100) / 2.0f - (float)(rand() % 100) / 2.0f); + (float)(rand() % 100) / 2.0f - (float)(rand() % 100) / 2.0f, + (float)(rand() % 100) / 100.0f - (float)(rand() % 100) / 100.0f, + (float)(rand() % 100) / 2.0f - (float)(rand() % 100) / 2.0f); } diff --git a/examples/scatterchart/scatterchart.h b/examples/scatterchart/scatterchart.h index f19eb60f..9a1726b9 100644 --- a/examples/scatterchart/scatterchart.h +++ b/examples/scatterchart/scatterchart.h @@ -40,9 +40,12 @@ public: void changeFontSize(int fontsize); void setBackgroundEnabled(int enabled); void setGridEnabled(int enabled); + void setSmoothDots(int smooth); void start(); public slots: + void changeStyle(int style); + void changeTheme(int theme); void changeShadowQuality(int quality); void shadowQualityUpdatedByVisual(QDataVis::ShadowQuality shadowQuality); @@ -53,6 +56,8 @@ private: QVector3D randVector(); Q3DScatter *m_chart; int m_fontSize; + QDataVis::MeshStyle m_style; + bool m_smooth; }; #endif |