summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-10 16:26:11 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-11 10:42:53 +0300
commitd93f5f3b64fdb52cc150232f6b6d80ffdb57db78 (patch)
tree4a99ecc02c2e885b56abb1082527e482967b84f8 /tests
parentd315336b202ec1c1260f96945a23fde6d2c41b69 (diff)
QBarDataProxy now has list of row and column labels
Category axes use those labels if no explicit labels are set to them. + Other misc fixes Task-number: QTRD-2252 Change-Id: Idc15e0cc1cdeb08195b2e2baeead9cfef2533e04 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/barstest/chart.cpp65
-rw-r--r--tests/barstest/chart.h2
-rw-r--r--tests/barstest/main.cpp40
3 files changed, 75 insertions, 32 deletions
diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp
index 08ce4d94..e2d4bda4 100644
--- a/tests/barstest/chart.cpp
+++ b/tests/barstest/chart.cpp
@@ -53,18 +53,10 @@ ChartModifier::ChartModifier(Q3DBars *barchart)
m_genericData(new QBarDataProxy),
m_currentAxis(m_fixedRangeAxis)
{
- // Don't set any styles or specifications, start from defaults
// Generate generic labels
- QStringList genericRowLabels;
QStringList genericColumnLabels;
for (int i = 0; i < 200; i++) {
if (i % 5)
- genericRowLabels << QString();
- else
- genericRowLabels << QStringLiteral("Row %1").arg(i);
- }
- for (int i = 0; i < 200; i++) {
- if (i % 5)
genericColumnLabels << QString();
else
genericColumnLabels << QStringLiteral("Column %1").arg(i);
@@ -89,7 +81,6 @@ ChartModifier::ChartModifier(Q3DBars *barchart)
m_fixedRangeAxis->setRange(0.0, 100.0);
m_genericRowAxis->setTitle("Generic Row");
- m_genericRowAxis->setCategoryLabels(genericRowLabels);
m_genericColumnAxis->setTitle("Generic Column");
m_genericColumnAxis->setCategoryLabels(genericColumnLabels);
@@ -101,10 +92,8 @@ ChartModifier::ChartModifier(Q3DBars *barchart)
m_temperatureAxis->setLabelFormat(QString(QStringLiteral("%d ") + celsiusString));
m_yearAxis->setTitle("Year");
- m_yearAxis->setCategoryLabels(m_years);
m_monthAxis->setTitle("Month");
- m_monthAxis->setCategoryLabels(m_months);
m_chart->addAxis(m_autoAdjustingAxis);
m_chart->addAxis(m_fixedRangeAxis);
@@ -249,38 +238,71 @@ void ChartModifier::resetTemperatureData()
// Add data to chart (chart assumes ownership)
- m_temperatureData->resetArray(dataSet);
+ m_temperatureData->resetArray(dataSet, m_years, m_months);
}
+
+static int addCounter = 0;
+static int insertCounter = 0;
+static int changeCounter = 0;
+
void ChartModifier::addRow()
{
QBarDataRow *dataRow = new QBarDataRow(m_columnCount);
- for (float i = 0; i < m_columnCount; i++) {
+ for (float i = 0; i < m_columnCount; i++)
(*dataRow)[i].setValue(((i + 1) / (float)m_columnCount) * (float)(rand() % 100));
- //(*dataRow)[i].setValue(i + m_chart->dataProxy()->rowCount());
+
+ // 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);
+}
+
+void ChartModifier::addRows()
+{
+ QBarDataArray dataArray;
+ QStringList labels;
+ 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()));
+ 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);
+}
+
+void ChartModifier::insertRow()
+{
+ QBarDataRow *dataRow = new QBarDataRow(m_columnCount);
+ for (float i = 0; i < m_columnCount; i++)
+ (*dataRow)[i].setValue(((i + 1) / (float)m_columnCount) * (float)(rand() % 100));
+
+ // TODO Needs to be changed to account for data window offset once it is implemented.
int row = qMax(m_selectedBarPos.x(), 0);
- m_chart->activeDataProxy()->insertRow(row, dataRow);
+ QString label = QStringLiteral("Insert %1").arg(insertCounter++);
+ m_chart->activeDataProxy()->insertRow(row, dataRow, label);
}
-void ChartModifier::addRows()
+void ChartModifier::insertRows()
{
QTime timer;
timer.start();
QBarDataArray dataArray;
+ QStringList labels;
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()));
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_selectedBarPos.x(), 0);
- m_chart->activeDataProxy()->insertRows(row, dataArray);
- qDebug() << "Added" << m_rowCount << "rows, time:" << timer.elapsed();
+ m_chart->activeDataProxy()->insertRows(row, dataArray, labels);
+ qDebug() << "Inserted" << m_rowCount << "rows, time:" << timer.elapsed();
}
void ChartModifier::changeItem()
@@ -302,7 +324,8 @@ void ChartModifier::changeRow()
QBarDataRow *newRow = new QBarDataRow(m_chart->activeDataProxy()->rowAt(row)->size());
for (int i = 0; i < newRow->size(); i++)
(*newRow)[i].setValue(qreal(rand() % 100));
- m_chart->activeDataProxy()->setRow(row, newRow);
+ QString label = QStringLiteral("Change %1").arg(changeCounter++);
+ m_chart->activeDataProxy()->setRow(row, newRow, label);
}
}
@@ -313,13 +336,15 @@ void ChartModifier::changeRows()
if (row >= 0) {
int startRow = qMax(row - 2, 0);
QBarDataArray newArray;
+ QStringList labels;
for (int i = startRow; i <= row; i++ ) {
QBarDataRow *newRow = new QBarDataRow(m_chart->activeDataProxy()->rowAt(i)->size());
for (int j = 0; j < newRow->size(); j++)
(*newRow)[j].setValue(qreal(rand() % 100));
newArray.append(newRow);
+ labels.append(QStringLiteral("Change %1").arg(changeCounter++));
}
- m_chart->activeDataProxy()->setRows(startRow, newArray);
+ m_chart->activeDataProxy()->setRows(startRow, newArray, labels);
}
}
diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h
index bd601021..fcd861b7 100644
--- a/tests/barstest/chart.h
+++ b/tests/barstest/chart.h
@@ -38,6 +38,8 @@ public:
void resetTemperatureData();
void addRow();
void addRows();
+ void insertRow();
+ void insertRows();
void changeItem();
void changeRow();
void changeRows();
diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp
index b5225d4c..39341471 100644
--- a/tests/barstest/main.cpp
+++ b/tests/barstest/main.cpp
@@ -54,13 +54,21 @@ int main(int argc, char **argv)
hLayout->addLayout(vLayout);
hLayout->addLayout(vLayout2);
- QPushButton *dataButton = new QPushButton(widget);
- dataButton->setText(QStringLiteral("Insert a row of data"));
- dataButton->setEnabled(false);
+ QPushButton *addDataButton = new QPushButton(widget);
+ addDataButton->setText(QStringLiteral("Add a row of data"));
+ addDataButton->setEnabled(false);
- QPushButton *multiDataButton = new QPushButton(widget);
- multiDataButton->setText(QStringLiteral("Insert many rows of data"));
- multiDataButton->setEnabled(false);
+ QPushButton *addMultiDataButton = new QPushButton(widget);
+ addMultiDataButton->setText(QStringLiteral("Add many rows of data"));
+ addMultiDataButton->setEnabled(false);
+
+ QPushButton *insertDataButton = new QPushButton(widget);
+ insertDataButton->setText(QStringLiteral("Insert a row of data"));
+ insertDataButton->setEnabled(false);
+
+ QPushButton *insertMultiDataButton = new QPushButton(widget);
+ insertMultiDataButton->setText(QStringLiteral("Insert many rows of data"));
+ insertMultiDataButton->setEnabled(false);
QPushButton *changeSingleDataButton = new QPushButton(widget);
changeSingleDataButton->setText(QStringLiteral("Change selected bar value"));
@@ -188,8 +196,10 @@ int main(int argc, char **argv)
shadowQuality->addItem(QStringLiteral("High Soft"));
shadowQuality->setCurrentIndex(5);
- vLayout->addWidget(dataButton, 0, Qt::AlignTop);
- vLayout->addWidget(multiDataButton, 0, Qt::AlignTop);
+ vLayout->addWidget(addDataButton, 0, Qt::AlignTop);
+ vLayout->addWidget(addMultiDataButton, 0, Qt::AlignTop);
+ vLayout->addWidget(insertDataButton, 0, Qt::AlignTop);
+ vLayout->addWidget(insertMultiDataButton, 0, Qt::AlignTop);
vLayout->addWidget(changeSingleDataButton, 0, Qt::AlignTop);
vLayout->addWidget(changeRowButton, 0, Qt::AlignTop);
vLayout->addWidget(changeRowsButton, 0, Qt::AlignTop);
@@ -264,8 +274,10 @@ int main(int argc, char **argv)
QObject::connect(themeButton, &QPushButton::clicked, modifier, &ChartModifier::changeTheme);
QObject::connect(labelButton, &QPushButton::clicked, modifier,
&ChartModifier::changeTransparency);
- QObject::connect(dataButton, &QPushButton::clicked, modifier, &ChartModifier::addRow);
- QObject::connect(multiDataButton, &QPushButton::clicked, modifier, &ChartModifier::addRows);
+ QObject::connect(addDataButton, &QPushButton::clicked, modifier, &ChartModifier::addRow);
+ QObject::connect(addMultiDataButton, &QPushButton::clicked, modifier, &ChartModifier::addRows);
+ QObject::connect(insertDataButton, &QPushButton::clicked, modifier, &ChartModifier::insertRow);
+ QObject::connect(insertMultiDataButton, &QPushButton::clicked, modifier, &ChartModifier::insertRows);
QObject::connect(changeSingleDataButton, &QPushButton::clicked, modifier, &ChartModifier::changeItem);
QObject::connect(changeRowButton, &QPushButton::clicked, modifier, &ChartModifier::changeRow);
QObject::connect(changeRowsButton, &QPushButton::clicked, modifier, &ChartModifier::changeRows);
@@ -299,9 +311,13 @@ int main(int argc, char **argv)
QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, rotationSliderY,
&QSlider::setValue);
- QObject::connect(staticCheckBox, &QCheckBox::stateChanged, dataButton,
+ QObject::connect(staticCheckBox, &QCheckBox::stateChanged, addDataButton,
+ &QPushButton::setEnabled);
+ QObject::connect(staticCheckBox, &QCheckBox::stateChanged, addMultiDataButton,
+ &QPushButton::setEnabled);
+ QObject::connect(staticCheckBox, &QCheckBox::stateChanged, insertDataButton,
&QPushButton::setEnabled);
- QObject::connect(staticCheckBox, &QCheckBox::stateChanged, multiDataButton,
+ QObject::connect(staticCheckBox, &QCheckBox::stateChanged, insertMultiDataButton,
&QPushButton::setEnabled);
QObject::connect(staticCheckBox, &QCheckBox::stateChanged, changeSingleDataButton,
&QPushButton::setEnabled);