summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-09-03 13:43:59 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-09-03 13:50:38 +0300
commit5eedaa018b6a1b1527b523d3018ac026af29eb33 (patch)
treec1ca3d3cf02e5b8b3923336b25dabd96074aafe7
parent50ea34b642c43ab5bf0ff5db800d228effc486c1 (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.cpp135
-rw-r--r--src/datavis3d/engine/bars3drenderer.cpp2
-rw-r--r--src/datavis3d/engine/scatter3drenderer.cpp2
-rw-r--r--src/datavis3d/engine/theme.cpp15
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);