summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-09-12 09:58:55 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-09-12 10:13:21 +0300
commit1262c6562d7264c9fe4caf2f433615348c0f2ef8 (patch)
treefb8f3427b6f400486815c810173a097c700120a8 /examples
parenta89cc75f746d3ff61b08bb3b2b7338e9866c94b7 (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')
-rw-r--r--examples/scatterchart/main.cpp52
-rw-r--r--examples/scatterchart/scatterchart.cpp47
-rw-r--r--examples/scatterchart/scatterchart.h5
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