diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-09-03 13:43:59 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-09-03 13:50:38 +0300 |
commit | 5eedaa018b6a1b1527b523d3018ac026af29eb33 (patch) | |
tree | c1ca3d3cf02e5b8b3923336b25dabd96074aafe7 | |
parent | 50ea34b642c43ab5bf0ff5db800d228effc486c1 (diff) |
Fixed issues from Improve examples task
Task-number: QTRD-2239
+ Barchart example improved
+ Themes tweaked
+ Background lighting tweaked
Change-Id: I8b3018c2b9f1e864374fd72ce45eb30d31935b9c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
-rw-r--r-- | examples/barchart/main.cpp | 135 | ||||
-rw-r--r-- | src/datavis3d/engine/bars3drenderer.cpp | 2 | ||||
-rw-r--r-- | src/datavis3d/engine/scatter3drenderer.cpp | 2 | ||||
-rw-r--r-- | src/datavis3d/engine/theme.cpp | 15 |
4 files changed, 40 insertions, 114 deletions
diff --git a/examples/barchart/main.cpp b/examples/barchart/main.cpp index ca9c3260..026e0af8 100644 --- a/examples/barchart/main.cpp +++ b/examples/barchart/main.cpp @@ -29,9 +29,6 @@ #include <QFont> #include <QDebug> -//#define CYCLE_THROUGH_STYLES -//#define CYCLE_THROUGH_PRESET_CAMERAS -//#define CYCLE_THROUGH_THEMES #define USE_STATIC_DATA using namespace QtDataVis3D; @@ -48,6 +45,8 @@ public: void changePresetCamera(); void changeTheme(); void start(); + void selectFromTable(const QPoint &selection); + void selectedFromTable(int row, int column); private: Q3DBars *m_chart; @@ -80,10 +79,8 @@ ChartDataGenerator::ChartDataGenerator(Q3DBars *barchart, QTableWidget *tableWid m_tableWidget->setColumnCount(m_columnCount); #endif - // Set bar type to smooth bar -#ifndef CYCLE_THROUGH_STYLES + // Set bar type to flat pyramids m_chart->setBarType(QDataVis::Pyramids, false); -#endif #ifndef USE_STATIC_DATA // Set selection mode to full @@ -91,15 +88,11 @@ ChartDataGenerator::ChartDataGenerator(Q3DBars *barchart, QTableWidget *tableWid #else // Set selection mode to zoom row m_chart->setSelectionMode(QDataVis::ModeSliceRow); - m_chart->setFont(QFont("Courier", 25)); + m_chart->setFont(QFont("Impact", 25)); #endif -#ifndef CYCLE_THROUGH_THEMES - // Set bar colors - m_chart->setBarColor(QColor(Qt::gray), QColor(Qt::red), QColor(Qt::darkBlue)); -#else - m_chart->setLabelTransparency(QDataVis::TransparencyNone); -#endif + // Set theme + m_chart->setTheme(QDataVis::ThemeLight); // Set preset camera position m_chart->setCameraPreset(QDataVis::PresetFront); @@ -111,18 +104,6 @@ ChartDataGenerator::~ChartDataGenerator() m_dataTimer->stop(); delete m_dataTimer; } - if (m_styleTimer) { - m_styleTimer->stop(); - delete m_styleTimer; - } - if (m_presetTimer) { - m_presetTimer->stop(); - delete m_presetTimer; - } - if (m_themeTimer) { - m_themeTimer->stop(); - delete m_themeTimer; - } delete m_chart; } @@ -131,40 +112,13 @@ void ChartDataGenerator::start() #ifndef USE_STATIC_DATA m_dataTimer = new QTimer(); m_dataTimer->setTimerType(Qt::CoarseTimer); - m_dataTimer->setInterval(20); + m_dataTimer->setInterval(500); QObject::connect(m_dataTimer, &QTimer::timeout, this, &ChartDataGenerator::addRow); - m_dataTimer->start(20); + m_dataTimer->start(500); + m_tableWidget->setFixedWidth(m_chart->width()); #else setupModel(); #endif - -#ifdef CYCLE_THROUGH_STYLES - // Change bar style every 10 seconds - m_styleTimer = new QTimer(); - m_styleTimer->setTimerType(Qt::CoarseTimer); - m_styleTimer->setInterval(10000); - QObject::connect(m_styleTimer, &QTimer::timeout, this, &ChartDataGenerator::changeStyle); - m_styleTimer->start(10000); -#endif - -#ifdef CYCLE_THROUGH_PRESET_CAMERAS - // Change preset camera every 5 seconds - m_presetTimer = new QTimer(); - m_presetTimer->setTimerType(Qt::CoarseTimer); - m_presetTimer->setInterval(5000); - QObject::connect(m_presetTimer, &QTimer::timeout, this, - &ChartDataGenerator::changePresetCamera); - m_presetTimer->start(5000); -#endif - -#ifdef CYCLE_THROUGH_THEMES - // Change theme every 2 seconds - m_themeTimer = new QTimer(); - m_themeTimer->setTimerType(Qt::CoarseTimer); - m_themeTimer->setInterval(3000);//2000); - QObject::connect(m_themeTimer, &QTimer::timeout, this, &ChartDataGenerator::changeTheme); - m_themeTimer->start(3000);//2000); -#endif } void ChartDataGenerator::setupModel() @@ -202,6 +156,7 @@ void ChartDataGenerator::setupModel() m_tableWidget->model()->setData(index, hours[week][day]); } } + m_tableWidget->setFixedWidth(600); // Set up sample space based on prepared data m_chart->setDataWindow(weeks.size(), days.size()); @@ -215,60 +170,18 @@ void ChartDataGenerator::addRow() m_tableWidget->model()->setData(index, ((qreal)i / (qreal)m_columnCount) / 2.0 + (qreal)(rand() % 30) / 100.0); } + m_tableWidget->resizeColumnsToContents(); } -void ChartDataGenerator::changeStyle() +void ChartDataGenerator::selectFromTable(const QPoint &selection) { - static int model = 0; - 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; - } - model++; - if (model > 7) - model = 0; + m_tableWidget->setFocus(); + m_tableWidget->setCurrentCell(selection.x(), selection.y()); } -void ChartDataGenerator::changePresetCamera() +void ChartDataGenerator::selectedFromTable(int row, int column) { - static int preset = 0; - - m_chart->setCameraPreset((QDataVis::CameraPreset)preset); - - if (++preset > (int)QDataVis::PresetDirectlyAboveCCW45) - preset = 0; -} - -void ChartDataGenerator::changeTheme() -{ - static int theme = 0; - - m_chart->setTheme((QDataVis::ColorTheme)theme); - - if (++theme > (int)QDataVis::ThemeLight) - theme = 0; + m_chart->setSelectedBarPos(QPoint(row, column)); } int main(int argc, char **argv) @@ -289,20 +202,28 @@ int main(int argc, char **argv) widget->setWindowTitle(QStringLiteral("Hours playing banjo")); - QTableWidget *tableWidget = new QTableWidget(0, 0, widget); + QTableWidget *tableWidget = new QTableWidget(widget); + tableWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); + tableWidget->setAlternatingRowColors(true); - layout->addWidget(tableWidget); layout->addWidget(container, 1); + layout->addWidget(tableWidget, 1, Qt::AlignHCenter); // We don't need to initialize the mapping object in any way, as it defaults // to row/column support and uses the Qt::DisplayRole role for value role by default. - QItemModelBarDataProxy *proxy = new QItemModelBarDataProxy(tableWidget->model(), new QItemModelBarDataMapping); + QItemModelBarDataProxy *proxy = new QItemModelBarDataProxy(tableWidget->model(), + new QItemModelBarDataMapping); chart->setActiveDataProxy(proxy); ChartDataGenerator *generator = new ChartDataGenerator(chart, tableWidget); - generator->start(); + + QObject::connect(chart, &Q3DBars::selectedBarPosChanged, generator, + &ChartDataGenerator::selectFromTable); + QObject::connect(tableWidget, &QTableWidget::cellClicked, generator, + &ChartDataGenerator::selectedFromTable); widget->show(); + generator->start(); return app.exec(); } diff --git a/src/datavis3d/engine/bars3drenderer.cpp b/src/datavis3d/engine/bars3drenderer.cpp index 03c304d5..6520dc8a 100644 --- a/src/datavis3d/engine/bars3drenderer.cpp +++ b/src/datavis3d/engine/bars3drenderer.cpp @@ -905,7 +905,7 @@ void Bars3DRenderer::drawScene(CameraHelper *camera, m_backgroundShader->setUniformValue(m_backgroundShader->MVP(), MVPMatrix); m_backgroundShader->setUniformValue(m_backgroundShader->color(), backgroundColor); m_backgroundShader->setUniformValue(m_backgroundShader->ambientS(), - m_cachedTheme.m_ambientStrength * 2.0f); + m_cachedTheme.m_ambientStrength * 4.0f); #if !defined(QT_OPENGL_ES_2) if (m_cachedShadowQuality > QDataVis::ShadowNone) { diff --git a/src/datavis3d/engine/scatter3drenderer.cpp b/src/datavis3d/engine/scatter3drenderer.cpp index 03e61043..9759d658 100644 --- a/src/datavis3d/engine/scatter3drenderer.cpp +++ b/src/datavis3d/engine/scatter3drenderer.cpp @@ -648,7 +648,7 @@ void Scatter3DRenderer::drawScene(CameraHelper *camera, m_backgroundShader->setUniformValue(m_backgroundShader->MVP(), MVPMatrix); m_backgroundShader->setUniformValue(m_backgroundShader->color(), backgroundColor); m_backgroundShader->setUniformValue(m_backgroundShader->ambientS(), - m_cachedTheme.m_ambientStrength * 2.0f); + m_cachedTheme.m_ambientStrength * 4.0f); #if !defined(QT_OPENGL_ES_2) if (m_cachedShadowQuality > QDataVis::ShadowNone) { diff --git a/src/datavis3d/engine/theme.cpp b/src/datavis3d/engine/theme.cpp index 0ed39e65..0de78c03 100644 --- a/src/datavis3d/engine/theme.cpp +++ b/src/datavis3d/engine/theme.cpp @@ -168,7 +168,8 @@ void Theme::useColorTheme(QDataVis::ColorTheme colorTheme) m_baseColor = QRgb(0x3daeda); m_heightColor = QRgb(0x2fa3b4); m_depthColor = QColor(QRgb(0x2685bf)); - m_backgroundColor = QColor(QRgb(0xffffff)); + m_backgroundColor = QColor(QRgb(0x2fa3b4)); + //m_backgroundColor = QColor(QRgb(0xffffff)); m_windowColor = QColor(QRgb(0xffffff)); m_textColor = QColor(QRgb(0x404044)); m_textBackgroundColor = QColor(0xff, 0xff, 0xff, 0x80); @@ -187,7 +188,8 @@ void Theme::useColorTheme(QDataVis::ColorTheme colorTheme) m_baseColor = QColor(QRgb(0x1db0da)); m_heightColor = QColor(QRgb(0x398ca3)); m_depthColor = QColor(QRgb(0x1341a6)); - m_backgroundColor = QColor(QRgb(0xffffff)); + m_backgroundColor = QColor(QRgb(0x398ca3)); + //m_backgroundColor = QColor(QRgb(0xffffff)); m_windowColor = QColor(QRgb(0xffffff)); m_textColor = QColor(QRgb(0x404044)); m_textBackgroundColor = QColor(0xff, 0xff, 0xff, 0x80); @@ -206,7 +208,8 @@ void Theme::useColorTheme(QDataVis::ColorTheme colorTheme) m_baseColor = QColor(QRgb(0xb39b72)); m_heightColor = QColor(QRgb(0x494345)); m_depthColor = QColor(QRgb(0xb3b376)); - m_backgroundColor = QColor(QRgb(0xf3ece0)); + m_backgroundColor = QColor(QRgb(0x494345)); + //m_backgroundColor = QColor(QRgb(0xf3ece0)); m_windowColor = QColor(QRgb(0xf3ece0)); m_textColor = QColor(QRgb(0x404044)); m_textBackgroundColor = QColor(0xb5, 0xb0, 0xa7, 0xC0); @@ -244,7 +247,8 @@ void Theme::useColorTheme(QDataVis::ColorTheme colorTheme) m_baseColor = QColor(QRgb(0xff4a41)); m_heightColor = QColor(QRgb(0x202020)); m_depthColor = QColor(QRgb(0x596a74)); - m_backgroundColor = QColor(QRgb(0xffffff)); + m_backgroundColor = QColor(QRgb(0x596a74)); + //m_backgroundColor = QColor(QRgb(0xffffff)); m_windowColor = QColor(QRgb(0x000000)); m_textColor = QColor(QRgb(0x181818)); m_textBackgroundColor = QColor(0xff, 0xff, 0xff, 0x80); @@ -263,7 +267,8 @@ void Theme::useColorTheme(QDataVis::ColorTheme colorTheme) m_baseColor = QColor(QRgb(0x209fdf)); m_heightColor = QColor(QRgb(0xbf593e)); m_depthColor = QColor(QRgb(0x99ca53)); - m_backgroundColor = QColor(QRgb(0xffffff)); + m_backgroundColor = QColor(QRgb(0x99ca53)); + //m_backgroundColor = QColor(QRgb(0xffffff)); m_windowColor = QColor(QRgb(0xffffff)); m_textColor = QColor(QRgb(0x404044)); m_textBackgroundColor = QColor(0xd6, 0xd6, 0xd6, 0x80); |