From d315336b202ec1c1260f96945a23fde6d2c41b69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Wed, 11 Sep 2013 07:53:08 +0300 Subject: Widget example changes Task-number: QTRD-2239 + Changed bar type and selection mode to comboboxes Change-Id: If3cfad2bafa5770e319e856af6f7bc2108180bde Change-Id: If3cfad2bafa5770e319e856af6f7bc2108180bde Reviewed-by: Miikka Heikkinen --- examples/widget/chart.cpp | 59 +++++++++++------------------------------------ examples/widget/chart.h | 9 +++++--- examples/widget/main.cpp | 43 ++++++++++++++++++++++++++-------- 3 files changed, 54 insertions(+), 57 deletions(-) diff --git a/examples/widget/chart.cpp b/examples/widget/chart.cpp index 5a3a2be0..d124a10b 100644 --- a/examples/widget/chart.cpp +++ b/examples/widget/chart.cpp @@ -38,7 +38,9 @@ ChartModifier::ChartModifier(Q3DBars *barchart) m_temperatureAxis(new Q3DValueAxis), m_yearAxis(new Q3DCategoryAxis), m_monthAxis(new Q3DCategoryAxis), - m_temperatureData(new QBarDataProxy) + m_temperatureData(new QBarDataProxy), + m_style(QDataVis::BevelBars), + m_smooth(false) { m_months << "January" << "February" << "March" << "April" << "May" << "June" << "July" << "August" << "September" << "October" << "November" << "December"; m_years << "2006" << "2007" << "2008" << "2009" << "2010" << "2011" << "2012"; @@ -125,44 +127,10 @@ void ChartModifier::resetTemperatureData() m_temperatureData->resetArray(dataSet); } -void ChartModifier::changeStyle() -{ - static int model = 9; - switch (model) { - case 0: - m_chart->setBarType(QDataVis::Cylinders, false); - break; - case 1: - m_chart->setBarType(QDataVis::Cylinders, true); - break; - case 2: - m_chart->setBarType(QDataVis::Cones, false); - break; - case 3: - m_chart->setBarType(QDataVis::Cones, true); - break; - case 4: - m_chart->setBarType(QDataVis::Bars, false); - break; - case 5: - m_chart->setBarType(QDataVis::Bars, true); - break; - case 6: - m_chart->setBarType(QDataVis::Pyramids, false); - break; - case 7: - m_chart->setBarType(QDataVis::Pyramids, true); - break; - case 8: - m_chart->setBarType(QDataVis::BevelBars, false); - break; - case 9: - m_chart->setBarType(QDataVis::BevelBars, true); - break; - } - model++; - if (model > 9) - model = 0; +void ChartModifier::changeStyle(int style) +{ + m_style = QDataVis::MeshStyle(style); + m_chart->setBarType(m_style, m_smooth); } void ChartModifier::changePresetCamera() @@ -190,13 +158,8 @@ void ChartModifier::changeTransparency() transparency = QDataVis::TransparencyNone; } -void ChartModifier::changeSelectionMode() +void ChartModifier::changeSelectionMode(int selectionMode) { - static int selectionMode = m_chart->selectionMode(); - - if (++selectionMode > QDataVis::ModeSliceColumn) - selectionMode = QDataVis::ModeNone; - m_chart->setSelectionMode((QDataVis::SelectionMode)selectionMode); } @@ -250,3 +213,9 @@ void ChartModifier::setGridEnabled(int enabled) { m_chart->setGridVisible((bool)enabled); } + +void ChartModifier::setSmoothBars(int smooth) +{ + m_smooth = bool(smooth); + m_chart->setBarType(m_style, m_smooth); +} diff --git a/examples/widget/chart.h b/examples/widget/chart.h index cb16e24b..3b1f2682 100644 --- a/examples/widget/chart.h +++ b/examples/widget/chart.h @@ -36,21 +36,22 @@ public: ~ChartModifier(); void resetTemperatureData(); - void changeStyle(); void changePresetCamera(); void changeTransparency(); - void changeSelectionMode(); void changeFont(const QFont &font); void changeFontSize(int fontsize); void rotateX(int rotation); void rotateY(int rotation); void setBackgroundEnabled(int enabled); void setGridEnabled(int enabled); + void setSmoothBars(int smooth); void start(); public slots: - void changeShadowQuality(int quality); + void changeStyle(int style); + void changeSelectionMode(int selectionMode); void changeTheme(int theme); + void changeShadowQuality(int quality); void shadowQualityUpdatedByVisual(QDataVis::ShadowQuality shadowQuality); signals: @@ -71,6 +72,8 @@ private: Q3DCategoryAxis *m_yearAxis; Q3DCategoryAxis *m_monthAxis; QBarDataProxy *m_temperatureData; + QDataVis::MeshStyle m_style; + bool m_smooth; }; #endif diff --git a/examples/widget/main.cpp b/examples/widget/main.cpp index 340b3c4c..3c369063 100644 --- a/examples/widget/main.cpp +++ b/examples/widget/main.cpp @@ -66,14 +66,30 @@ int main(int argc, char **argv) QPushButton *labelButton = new QPushButton(widget); labelButton->setText(QStringLiteral("Change label style")); - QPushButton *styleButton = new QPushButton(widget); - styleButton->setText(QStringLiteral("Change bar style")); + QCheckBox *smoothCheckBox = new QCheckBox(widget); + smoothCheckBox->setText(QStringLiteral("Smooth bars")); + smoothCheckBox->setChecked(false); + + QComboBox *barStyleList = new QComboBox(widget); + barStyleList->addItem(QStringLiteral("Bars")); + barStyleList->addItem(QStringLiteral("Pyramids")); + barStyleList->addItem(QStringLiteral("Cones")); + barStyleList->addItem(QStringLiteral("Cylinders")); + barStyleList->addItem(QStringLiteral("Beveled Bars")); + barStyleList->setCurrentIndex(4); QPushButton *cameraButton = new QPushButton(widget); cameraButton->setText(QStringLiteral("Change camera preset")); - QPushButton *selectionButton = new QPushButton(widget); - selectionButton->setText(QStringLiteral("Change selection mode")); + QComboBox *selectionModeList = new QComboBox(widget); + selectionModeList->addItem(QStringLiteral("None")); + selectionModeList->addItem(QStringLiteral("Bar")); + selectionModeList->addItem(QStringLiteral("Bar and Row")); + selectionModeList->addItem(QStringLiteral("Bar and Column")); + selectionModeList->addItem(QStringLiteral("Bar, Row and Column")); + selectionModeList->addItem(QStringLiteral("Slice into Row")); + selectionModeList->addItem(QStringLiteral("Slice into Column")); + selectionModeList->setCurrentIndex(1); QCheckBox *backgroundCheckBox = new QCheckBox(widget); backgroundCheckBox->setText(QStringLiteral("Show background")); @@ -118,11 +134,14 @@ int main(int argc, char **argv) vLayout->addWidget(new QLabel(QStringLiteral("Rotate vertically"))); vLayout->addWidget(rotationSliderY, 0, Qt::AlignTop); vLayout->addWidget(labelButton, 0, Qt::AlignTop); - vLayout->addWidget(styleButton, 0, Qt::AlignTop); vLayout->addWidget(cameraButton, 0, Qt::AlignTop); - vLayout->addWidget(selectionButton, 0, Qt::AlignTop); vLayout->addWidget(backgroundCheckBox); vLayout->addWidget(gridCheckBox); + vLayout->addWidget(smoothCheckBox, 0, Qt::AlignTop); + vLayout->addWidget(new QLabel(QStringLiteral("Change bar style"))); + vLayout->addWidget(barStyleList); + vLayout->addWidget(new QLabel(QStringLiteral("Change selection mode"))); + vLayout->addWidget(selectionModeList); vLayout->addWidget(new QLabel(QStringLiteral("Change theme"))); vLayout->addWidget(themeList); vLayout->addWidget(new QLabel(QStringLiteral("Adjust shadow quality"))); @@ -141,22 +160,28 @@ int main(int argc, char **argv) QObject::connect(labelButton, &QPushButton::clicked, modifier, &ChartModifier::changeTransparency); - QObject::connect(styleButton, &QPushButton::clicked, modifier, &ChartModifier::changeStyle); QObject::connect(cameraButton, &QPushButton::clicked, modifier, &ChartModifier::changePresetCamera); - QObject::connect(selectionButton, &QPushButton::clicked, modifier, - &ChartModifier::changeSelectionMode); QObject::connect(backgroundCheckBox, &QCheckBox::stateChanged, modifier, &ChartModifier::setBackgroundEnabled); QObject::connect(gridCheckBox, &QCheckBox::stateChanged, modifier, &ChartModifier::setGridEnabled); + QObject::connect(smoothCheckBox, &QCheckBox::stateChanged, modifier, + &ChartModifier::setSmoothBars); + + QObject::connect(barStyleList, SIGNAL(currentIndexChanged(int)), modifier, + SLOT(changeStyle(int))); + + QObject::connect(selectionModeList, SIGNAL(currentIndexChanged(int)), modifier, + SLOT(changeSelectionMode(int))); QObject::connect(themeList, SIGNAL(currentIndexChanged(int)), modifier, SLOT(changeTheme(int))); QObject::connect(shadowQuality, SIGNAL(currentIndexChanged(int)), modifier, SLOT(changeShadowQuality(int))); + QObject::connect(modifier, &ChartModifier::shadowQualityChanged, shadowQuality, &QComboBox::setCurrentIndex); QObject::connect(widgetchart, &Q3DBars::shadowQualityChanged, modifier, -- cgit v1.2.3