summaryrefslogtreecommitdiffstats
path: root/tests/barstest
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-11 13:22:54 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-15 08:24:15 +0200
commit999ffa01d20f75a457da62d41c0fabfc32e5e1bb (patch)
treec5267f6831d5ff61444f85b2110f7150e20d3451 /tests/barstest
parentbbb874d0591215164b2030db60dc9d6a95f4c8fe (diff)
Basic multiseries support
Task-number: QTRD-2548 Change-Id: Iba324c0e8be56f2b3f8f6c6a992883c134a51a9d Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com> Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'tests/barstest')
-rw-r--r--tests/barstest/chart.cpp72
-rw-r--r--tests/barstest/chart.h7
2 files changed, 49 insertions, 30 deletions
diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp
index 268c8faa..496a454d 100644
--- a/tests/barstest/chart.cpp
+++ b/tests/barstest/chart.cpp
@@ -50,8 +50,9 @@ GraphModifier::GraphModifier(Q3DBars *barchart)
m_monthAxis(new Q3DCategoryAxis),
m_genericRowAxis(new Q3DCategoryAxis),
m_genericColumnAxis(new Q3DCategoryAxis),
- m_temperatureData(new QBarDataProxy),
- m_genericData(new QBarDataProxy),
+ m_temperatureData(new QBar3DSeries),
+ m_temperatureData2(new QBar3DSeries),
+ m_genericData(new QBar3DSeries),
m_currentAxis(m_fixedRangeAxis),
m_negativeValuesOn(false),
m_useNullInputHandler(false),
@@ -112,11 +113,9 @@ GraphModifier::GraphModifier(Q3DBars *barchart)
m_chart->setShadowQuality(QDataVis::ShadowQualitySoftMedium);
m_temperatureData->setItemLabelFormat(QStringLiteral("@valueTitle for @colLabel @rowLabel: @valueLabel"));
+ m_temperatureData2->setItemLabelFormat(QStringLiteral("** @valueTitle for @colLabel @rowLabel: @valueLabel **"));
m_genericData->setItemLabelFormat(QStringLiteral("@valueTitle for (@rowIdx, @colIdx): @valueLabel"));
- m_genericData->setColumnLabels(genericColumnLabels);
-
- m_chart->addDataProxy(m_temperatureData);
- m_chart->addDataProxy(m_genericData);
+ m_genericData->dataProxy()->setColumnLabels(genericColumnLabels);
m_chart->setFont(QFont("Times Roman", 20));
@@ -144,7 +143,9 @@ void GraphModifier::restart(bool dynamicData)
m_static = !dynamicData;
if (m_static) {
- m_chart->setActiveDataProxy(m_temperatureData);
+ m_chart->addSeries(m_temperatureData);
+ m_chart->addSeries(m_temperatureData2);
+ m_chart->removeSeries(m_genericData);
m_chart->setTitle(QStringLiteral("Average temperatures in Oulu, Finland (2006-2012)"));
@@ -154,7 +155,9 @@ void GraphModifier::restart(bool dynamicData)
m_chart->setSelectionMode(QDataVis::SelectionRow | QDataVis::SelectionSlice);
} else {
- m_chart->setActiveDataProxy(m_genericData);
+ m_chart->removeSeries(m_temperatureData);
+ m_chart->removeSeries(m_temperatureData2);
+ m_chart->addSeries(m_genericData);
m_chart->setTitle(QStringLiteral("Generic data"));
@@ -213,10 +216,11 @@ void GraphModifier::releaseAxes()
void GraphModifier::releaseProxies()
{
- // Releases all proxies - results in default proxy.
- // Proxies will get readded back when graph is switched as setDataProxy call is made.
- m_chart->releaseDataProxy(m_temperatureData);
- m_chart->releaseDataProxy(m_genericData);
+ // Releases all series
+ // Correct series will get readded back when graph is switched
+ m_chart->removeSeries(m_temperatureData);
+ m_chart->removeSeries(m_temperatureData2);
+ m_chart->removeSeries(m_genericData);
}
void GraphModifier::flipViews()
@@ -260,7 +264,7 @@ void GraphModifier::createMassiveArray()
dataArray->append(dataRow);
}
- m_chart->activeDataProxy()->resetArray(dataArray, genericRowLabels, genericColumnLabels);
+ m_chart->seriesList().at(0)->dataProxy()->resetArray(dataArray, genericRowLabels, genericColumnLabels);
qDebug() << "Created Massive Array (" << arrayDimension << "), time:" << timer.elapsed();
}
@@ -295,9 +299,23 @@ void GraphModifier::resetTemperatureData()
dataSet->append(dataRow);
}
+ QBarDataArray *dataSet2 = new QBarDataArray;
+
+ dataSet2->reserve(m_years.size());
+ for (int year = m_years.size() - 1; year >= 0; year--) {
+ dataRow = new QBarDataRow(m_months.size());
+ // Create data items
+ for (int month = m_months.size() - 1; month >= 0 ; month--) {
+ // Add data to rows
+ (*dataRow)[month].setValue(temp[year][month]);
+ }
+ // Add row to set
+ dataSet2->append(dataRow);
+ }
// Add data to chart (chart assumes ownership)
- m_temperatureData->resetArray(dataSet, m_years, m_months);
+ m_temperatureData->dataProxy()->resetArray(dataSet, m_years, m_months);
+ m_temperatureData2->dataProxy()->resetArray(dataSet2, m_years, m_months);
}
@@ -318,7 +336,7 @@ void GraphModifier::addRow()
// TODO Needs to be changed to account for data window offset once it is implemented.
QString label = QStringLiteral("Add %1").arg(addCounter++);
- m_chart->activeDataProxy()->addRow(dataRow, label);
+ m_chart->seriesList().at(0)->dataProxy()->addRow(dataRow, label);
}
void GraphModifier::addRows()
@@ -328,13 +346,13 @@ void GraphModifier::addRows()
for (int i = 0; i < m_rowCount; i++) {
QBarDataRow *dataRow = new QBarDataRow(m_columnCount);
for (int j = 0; j < m_columnCount; j++)
- (*dataRow)[j].setValue(qreal(j + i + m_chart->activeDataProxy()->rowCount()) + m_minval);
+ (*dataRow)[j].setValue(qreal(j + i + m_chart->seriesList().at(0)->dataProxy()->rowCount()) + m_minval);
dataArray.append(dataRow);
labels.append(QStringLiteral("Add %1").arg(addCounter++));
}
// TODO Needs to be changed to account for data window offset once it is implemented.
- m_chart->activeDataProxy()->addRows(dataArray, labels);
+ m_chart->seriesList().at(0)->dataProxy()->addRows(dataArray, labels);
}
void GraphModifier::insertRow()
@@ -347,7 +365,7 @@ void GraphModifier::insertRow()
// TODO Needs to be changed to account for data window offset once it is implemented.
int row = qMax(m_selectedBar.x(), 0);
QString label = QStringLiteral("Insert %1").arg(insertCounter++);
- m_chart->activeDataProxy()->insertRow(row, dataRow, label);
+ m_chart->seriesList().at(0)->dataProxy()->insertRow(row, dataRow, label);
}
void GraphModifier::insertRows()
@@ -359,14 +377,14 @@ void GraphModifier::insertRows()
for (int i = 0; i < m_rowCount; i++) {
QBarDataRow *dataRow = new QBarDataRow(m_columnCount);
for (int j = 0; j < m_columnCount; j++)
- (*dataRow)[j].setValue(qreal(j + i + m_chart->activeDataProxy()->rowCount()) + m_minval);
+ (*dataRow)[j].setValue(qreal(j + i + m_chart->seriesList().at(0)->dataProxy()->rowCount()) + m_minval);
dataArray.append(dataRow);
labels.append(QStringLiteral("Insert %1").arg(insertCounter++));
}
// TODO Needs to be changed to account for data window offset once it is implemented.
int row = qMax(m_selectedBar.x(), 0);
- m_chart->activeDataProxy()->insertRows(row, dataArray, labels);
+ m_chart->seriesList().at(0)->dataProxy()->insertRows(row, dataArray, labels);
qDebug() << "Inserted" << m_rowCount << "rows, time:" << timer.elapsed();
}
@@ -377,7 +395,7 @@ void GraphModifier::changeItem()
int column = m_selectedBar.y();
if (row >= 0 && column >= 0) {
QBarDataItem item(qreal(rand() % 100));
- m_chart->activeDataProxy()->setItem(row, column, item);
+ m_chart->seriesList().at(0)->dataProxy()->setItem(row, column, item);
}
}
@@ -386,11 +404,11 @@ void GraphModifier::changeRow()
// TODO Needs to be changed to account for data window offset once it is implemented.
int row = m_selectedBar.x();
if (row >= 0) {
- QBarDataRow *newRow = new QBarDataRow(m_chart->activeDataProxy()->rowAt(row)->size());
+ QBarDataRow *newRow = new QBarDataRow(m_chart->seriesList().at(0)->dataProxy()->rowAt(row)->size());
for (int i = 0; i < newRow->size(); i++)
(*newRow)[i].setValue(qreal(rand() % int(m_maxval)) + m_minval);
QString label = QStringLiteral("Change %1").arg(changeCounter++);
- m_chart->activeDataProxy()->setRow(row, newRow, label);
+ m_chart->seriesList().at(0)->dataProxy()->setRow(row, newRow, label);
}
}
@@ -403,13 +421,13 @@ void GraphModifier::changeRows()
QBarDataArray newArray;
QStringList labels;
for (int i = startRow; i <= row; i++ ) {
- QBarDataRow *newRow = new QBarDataRow(m_chart->activeDataProxy()->rowAt(i)->size());
+ QBarDataRow *newRow = new QBarDataRow(m_chart->seriesList().at(0)->dataProxy()->rowAt(i)->size());
for (int j = 0; j < newRow->size(); j++)
(*newRow)[j].setValue(qreal(rand() % int(m_maxval)) + m_minval);
newArray.append(newRow);
labels.append(QStringLiteral("Change %1").arg(changeCounter++));
}
- m_chart->activeDataProxy()->setRows(startRow, newArray, labels);
+ m_chart->seriesList().at(0)->dataProxy()->setRows(startRow, newArray, labels);
}
}
@@ -418,7 +436,7 @@ void GraphModifier::removeRow()
// TODO Needs to be changed to account for data window offset once it is implemented.
int row = m_selectedBar.x();
if (row >= 0)
- m_chart->activeDataProxy()->removeRows(row, 1);
+ m_chart->seriesList().at(0)->dataProxy()->removeRows(row, 1);
}
void GraphModifier::removeRows()
@@ -427,7 +445,7 @@ void GraphModifier::removeRows()
int row = m_selectedBar.x();
if (row >= 0) {
int startRow = qMax(row - 2, 0);
- m_chart->activeDataProxy()->removeRows(startRow, 3);
+ m_chart->seriesList().at(0)->dataProxy()->removeRows(startRow, 3);
}
}
diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h
index 11af4949..a9d6119b 100644
--- a/tests/barstest/chart.h
+++ b/tests/barstest/chart.h
@@ -21,7 +21,7 @@
#include <QtDataVisualization/q3dbars.h>
#include <QtDataVisualization/qabstract3dinputhandler.h>
-
+#include <QtDataVisualization/qbar3dseries.h>
#include <QFont>
#include <QDebug>
#include <QStringList>
@@ -110,8 +110,9 @@ private:
Q3DCategoryAxis *m_monthAxis;
Q3DCategoryAxis *m_genericRowAxis;
Q3DCategoryAxis *m_genericColumnAxis;
- QBarDataProxy *m_temperatureData;
- QBarDataProxy *m_genericData;
+ QBar3DSeries *m_temperatureData;
+ QBar3DSeries *m_temperatureData2;
+ QBar3DSeries *m_genericData;
Q3DValueAxis *m_currentAxis;
bool m_negativeValuesOn;
bool m_useNullInputHandler;