summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-07-05 11:34:47 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-07-05 12:52:57 +0300
commit03276f3187bc58162e335b9a5739c1631344fa84 (patch)
treed491698251a0320fd2f8eadf8cd262211baebb59 /examples
parent0963cf7feda67225700f4291264e68c9060046f6 (diff)
Miscellaneous fixes
- Widget example now uses default QBarDataProxy directly - Axes store labels in QStringLists instead of vectors - Axes LabelItems as QList<LabelItem *> instead of QVector<LabelItem> This allows better control of when label items are constructed and destructed -> easier to keep track of textures. - Removed label setting from QAbstractDataItem api, it should be replaced with label format setter if we want individual items to have custom labels. - Added functionality to QBarDataItem - Misc bug fixes Change-Id: I01b3a5f3fc4acb8c1a826f19fa2762864430a088 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/barchart/main.cpp10
-rw-r--r--examples/qmlbarchart/qml/qmlbarchart/main.qml2
-rw-r--r--examples/rainfall/main.cpp6
-rw-r--r--examples/spectrum/spectrumapp/main.cpp2
-rw-r--r--examples/widget/chart.cpp63
-rw-r--r--examples/widget/chart.h4
6 files changed, 53 insertions, 34 deletions
diff --git a/examples/barchart/main.cpp b/examples/barchart/main.cpp
index caa5b9dc..040be325 100644
--- a/examples/barchart/main.cpp
+++ b/examples/barchart/main.cpp
@@ -94,7 +94,7 @@ ChartDataGenerator::ChartDataGenerator(Q3DBars *barchart)
#ifndef USE_STATIC_DATA
// Set up sample space; make it as deep as it's wide
- m_chart->setupSampleSpace(m_columnCount, m_rowCount);
+ m_chart->setupSampleSpace(m_rowCount, m_columnCount);
#endif
// Set bar type to smooth bar
@@ -201,7 +201,7 @@ void ChartDataGenerator::addDataSet()
row.clear();
}
// Set up sample space based on inserted data
- m_chart->setupSampleSpace(m_columnCount, m_rowCount);
+ m_chart->setupSampleSpace(m_rowCount, m_columnCount);
// Add data to chart
m_chart->addDataSet(data);
#else
@@ -212,9 +212,9 @@ void ChartDataGenerator::addDataSet()
m_chart->setWindowTitle(QStringLiteral("Hours playing banjo"));
// Set up row and column names
- QVector<QString> days;
+ QStringList days;
days << "Monday" << "Tuesday" << "Wednesday" << "Thursday" << "Friday" << "Saturday" << "Sunday";
- QVector<QString> weeks;
+ QStringList weeks;
weeks << "week 1" << "week 2" << "week 3" << "week 4" << "week 5";
// Set up data Mon Tue Wed Thu Fri Sat Sun
@@ -253,7 +253,7 @@ void ChartDataGenerator::addDataSet()
}
// Set up sample space based on prepared data
- m_chart->setupSampleSpace(days.size(), weeks.size());
+ m_chart->setupSampleSpace(weeks.size(), days.size());
// Add data to chart
static_cast<QOldDataProxy *>(m_chart->dataProxy())->addDataSet(dataSet);
diff --git a/examples/qmlbarchart/qml/qmlbarchart/main.qml b/examples/qmlbarchart/qml/qmlbarchart/main.qml
index 28b3326d..748a5241 100644
--- a/examples/qmlbarchart/qml/qmlbarchart/main.qml
+++ b/examples/qmlbarchart/qml/qmlbarchart/main.qml
@@ -125,7 +125,7 @@ Item {
testset1.addRow(testrow1);
testset1.addRow(testrow2);
- testchart.setupSampleSpace(4, 2);
+ testchart.setupSampleSpace(2, 4);
testchart.addDataSet(testset1);
}
diff --git a/examples/rainfall/main.cpp b/examples/rainfall/main.cpp
index 46757e46..be1b120f 100644
--- a/examples/rainfall/main.cpp
+++ b/examples/rainfall/main.cpp
@@ -74,12 +74,12 @@ RainfallChart::RainfallChart(Q3DBars *rainfall)
m_chart->setBarSpecs(QSizeF(1.0f, 1.0f), QSizeF(0.2f, 0.2f), true);
// Set up sample space; make it match actual data size
- m_chart->setupSampleSpace(m_columnCount, m_rowCount);
+ m_chart->setupSampleSpace(m_rowCount, m_columnCount);
// Set axis labels and titles
- QVector<QString> months;
+ QStringList months;
months << "January" << "February" << "March" << "April" << "May" << "June" << "July" << "August" << "September" << "October" << "November" << "December";
- QVector<QString> years;
+ QStringList years;
years << "2000" << "2001" << "2002" << "2003" << "2004" << "2005" << "2006" << "2007" << "2008" << "2009" << "2010" << "2011" << "2012";
m_chart->rowAxis()->setTitle("Year");
diff --git a/examples/spectrum/spectrumapp/main.cpp b/examples/spectrum/spectrumapp/main.cpp
index 19f195fa..2fa0be8f 100644
--- a/examples/spectrum/spectrumapp/main.cpp
+++ b/examples/spectrum/spectrumapp/main.cpp
@@ -86,7 +86,7 @@ MainApp::MainApp(Q3DBars *window)
m_lowFreq(SpectrumLowFreq),
m_highFreq(SpectrumHighFreq)
{
- m_chart->setupSampleSpace(SpectrumNumBands, SpectrumNumBands * 2);
+ m_chart->setupSampleSpace(SpectrumNumBands * 2, SpectrumNumBands);
// Disable grid
m_chart->setGridVisible(false);
// Disable auto-scaling of height by defining tick count and step, even though we don't draw grid
diff --git a/examples/widget/chart.cpp b/examples/widget/chart.cpp
index 00cdd3c3..f2928f7b 100644
--- a/examples/widget/chart.cpp
+++ b/examples/widget/chart.cpp
@@ -41,9 +41,9 @@
#include "chart.h"
#include "qcategoryaxis.h"
#include "qvalueaxis.h"
-#include "qolddataproxy.h"
+#include "qbardataproxy.h"
-using namespace QtDataVis3D;
+QT_DATAVIS3D_USE_NAMESPACE
const QString celsiusString = QString(QChar(0xB0)) + "C";
@@ -64,6 +64,12 @@ ChartModifier::ChartModifier(Q3DBars *barchart)
m_minval(-15.2f)
{
// Don't set any styles or specifications, start from defaults
+ // Generate generic labels
+ for (int i = 0; i < m_rowCount; i++)
+ m_genericRowLabels << QStringLiteral("Row %1").arg(i);
+ for (int i = 0; i < m_columnCount; i++)
+ m_genericColumnLabels << QStringLiteral("Column %1").arg(i);
+
}
ChartModifier::~ChartModifier()
@@ -88,12 +94,20 @@ void ChartModifier::restart(bool dynamicData)
m_chart->setFont(QFont("Times Roman", 20));
m_chart->setTickCount(m_ticks, m_tickStep, m_minval);
} else {
+ m_chart->dataProxy()->resetArray(0, 0);
// Set up sample space
- m_chart->setupSampleSpace(m_columnCount, m_rowCount);
+ m_chart->setupSampleSpace(m_rowCount, m_columnCount);
// Set selection mode to full
m_chart->setSelectionMode(ModeBarRowAndColumn);
// Reset tick count to default
m_chart->setTickCount(0, 0);
+
+ m_chart->rowAxis()->setTitle("Generic Row");
+ m_chart->columnAxis()->setTitle("Generic Column");
+ m_chart->valueAxis()->setTitle("Generic Value");
+
+ m_chart->rowAxis()->setLabels(QStringList());
+ m_chart->columnAxis()->setLabels(m_genericColumnLabels);
}
}
@@ -106,9 +120,9 @@ void ChartModifier::addDataSet()
m_chart->setWindowTitle(QStringLiteral("Average temperatures in Oulu, Finland (2006-2012)"));
// Set up row and column names
- QVector<QString> months;
+ QStringList months;
months << "January" << "February" << "March" << "April" << "May" << "June" << "July" << "August" << "September" << "October" << "November" << "December";
- QVector<QString> years;
+ QStringList years;
years << "2006" << "2007" << "2008" << "2009" << "2010" << "2011" << "2012";
// Set up data
@@ -120,8 +134,9 @@ void ChartModifier::addDataSet()
{-9.0f, -15.2f, -3.8f, 2.6f, 8.3f, 15.9f, 18.6f, 14.9f, 11.1f, 5.3f, 1.8f, -0.2f}, // 2011
{-8.7f, -11.3f, -2.3f, 0.4f, 7.5f, 12.2f, 16.4f, 14.1f, 9.2f, 3.1f, 0.3f, -12.1f}}; // 2012
- // Create data set
- QDataSet *dataSet = new QDataSet();
+ // Use default data proxy to feed data directly in expected format
+ QBarDataProxy *proxy = m_chart->dataProxy();
+ proxy->setItemLabelFormat(celsiusString);
// Add labels
m_chart->rowAxis()->setTitle("Year");
@@ -131,18 +146,19 @@ void ChartModifier::addDataSet()
m_chart->columnAxis()->setLabels(months);
// Create data rows
- QDataRow *dataRow;
+ QBarDataArray *dataSet = new QBarDataArray;
+ QBarDataRow *dataRow;
+
+ dataSet->reserve(years.size());
for (int year = 0; year < years.size(); year++) {
- dataRow = new QDataRow();
+ dataRow = new QBarDataRow;
// Create data items
for (int month = 0; month < months.size(); month++) {
// Add data to rows
- dataRow->addItem(new QDataItem(temp[year][month], celsiusString));
+ dataRow->append(new QBarDataItem(temp[year][month]));
}
// Add row to set
- dataSet->addRow(dataRow);
- // Get next pointer
- dataRow++;
+ dataSet->append(dataRow);
}
// Set tick count (4 steps of 5 degrees, with absolute minimum of -16C, even though we don't have quite that low temperatures in the data)
@@ -151,20 +167,21 @@ void ChartModifier::addDataSet()
m_chart->setTickCount(m_ticks, m_tickStep, m_minval);
// Set up sample space based on prepared data
- m_chart->setupSampleSpace(months.size(), years.size());
+ m_chart->setupSampleSpace(years.size(), months.size());
- QOldDataProxy *proxy = new QOldDataProxy;
- m_chart->setDataProxy(proxy);
- // Add data to chart
- static_cast<QOldDataProxy *>(m_chart->dataProxy())->addDataSet(dataSet);
+ // Add data to chart (chart assumes ownership)
+ proxy->resetArray(dataSet);
}
void ChartModifier::addBars()
{
- QVector<float> data;
+ QBarDataRow *dataRow = new QBarDataRow;
for (float i = 0; i < m_columnCount; i++)
- data.append(((i + 1) / (float)m_columnCount) * (float)(rand() % 100));
- static_cast<QOldDataProxy *>(m_chart->dataProxy())->addDataRow(data);
+ dataRow->append(new QBarDataItem(i + m_chart->dataProxy()->rowCount()));
+ //dataRow->append(new QBarDataItem(((i + 1) / (float)m_columnCount) * (float)(rand() % 100)));
+ m_chart->dataProxy()->insertRow(0, dataRow);
+ if (m_chart->dataProxy()->rowCount() <= m_rowCount)
+ m_chart->rowAxis()->setLabels(m_genericRowLabels.mid(0, m_chart->dataProxy()->rowCount()));
}
void ChartModifier::changeStyle()
@@ -347,11 +364,11 @@ void ChartModifier::setSpacingSpecsZ(int spacing)
void ChartModifier::setSampleCountX(int samples)
{
m_columnCount = samples;
- m_chart->setupSampleSpace(m_columnCount, m_rowCount);
+ m_chart->setupSampleSpace(m_rowCount, m_columnCount);
}
void ChartModifier::setSampleCountZ(int samples)
{
m_rowCount = samples;
- m_chart->setupSampleSpace(m_columnCount, m_rowCount);
+ m_chart->setupSampleSpace(m_rowCount, m_columnCount);
}
diff --git a/examples/widget/chart.h b/examples/widget/chart.h
index 20748564..3c943588 100644
--- a/examples/widget/chart.h
+++ b/examples/widget/chart.h
@@ -42,10 +42,10 @@
#define CHARTMODIFIER_H
#include "q3dbars.h"
-#include "qdataset.h"
#include <QFont>
#include <QDebug>
+#include <QStringList>
using namespace QtDataVis3D;
@@ -100,6 +100,8 @@ private:
int m_ticks;
float m_tickStep;
float m_minval;
+ QStringList m_genericRowLabels;
+ QStringList m_genericColumnLabels;
};
#endif