##// END OF EJS Templates
Further changes
Further changes

File last commit:

r279:22961f3dbd96
r318:b5c990a4117f
Show More
dataseriedialog.cpp
145 lines | 4.6 KiB | text/x-c | CppLexer
Tero Ahola
Started to refactor the API to allow integrating different plot types
r19 #include "dataseriedialog.h"
#include <QDialogButtonBox>
Tero Ahola
Test app now adds n data series of different type
r20 #include <QGridLayout>
Tero Ahola
Refactored chartwidgettest test data impl
r278 #include <QCheckbox>
Tero Ahola
Test app now adds n data series of different type
r20 #include <QPushButton>
Tero Ahola
Refactored chartwidgettest test data impl
r278 #include <QGroupBox>
#include <QRadioButton>
Tero Ahola
Test app now adds n data series of different type
r20 #include <QLabel>
Tero Ahola
Started to refactor the API to allow integrating different plot types
r19 #include <QDebug>
Tero Ahola
The test app now preserves series type selection
r26 DataSerieDialog::DataSerieDialog(QString defaultType, QWidget *parent) :
Tero Ahola
Started to refactor the API to allow integrating different plot types
r19 QDialog(parent)
{
Tero Ahola
Test app now adds n data series of different type
r20 QDialogButtonBox *addSeriesBox = new QDialogButtonBox(Qt::Horizontal);
QPushButton *b = addSeriesBox->addButton(QDialogButtonBox::Ok);
connect(b, SIGNAL(clicked()), this, SLOT(accept()));
b = addSeriesBox->addButton(QDialogButtonBox::Cancel);
connect(b, SIGNAL(clicked()), this, SLOT(reject()));
QGridLayout *grid = new QGridLayout();
Tero Ahola
Refactored chartwidgettest test data impl
r278
m_seriesTypeSelector = seriesTypeSelector();
m_columnCountSelector = columnCountSelector();
m_rowCountSelector = rowCountSelector();
m_dataCharacteristicsSelector = dataCharacteristicsSelector();
grid->addWidget(m_seriesTypeSelector, 0, 0);
grid->addWidget(m_columnCountSelector, 0, 1);
grid->addWidget(m_rowCountSelector, 1, 1);
grid->addWidget(m_dataCharacteristicsSelector, 1, 0);
m_labelsSelector = new QCheckBox("Labels defined");
m_labelsSelector->setChecked(true);
grid->addWidget(m_labelsSelector, 2, 0);
grid->addWidget(addSeriesBox, 3, 1);
Tero Ahola
Test app now adds n data series of different type
r20
setLayout(grid);
Tero Ahola
Started to refactor the API to allow integrating different plot types
r19 }
Tero Ahola
Refactored chartwidgettest test data impl
r278 QGroupBox *DataSerieDialog::seriesTypeSelector()
{
QVBoxLayout *layout = new QVBoxLayout();
Tero Ahola
Restored bar series in chartwidgettest
r279 QRadioButton *line = new QRadioButton("Line");
Tero Ahola
Refactored chartwidgettest test data impl
r278 line->setChecked(true);
layout->addWidget(line);
Tero Ahola
Restored bar series in chartwidgettest
r279 layout->addWidget(new QRadioButton("Area"));
layout->addWidget(new QRadioButton("Pie"));
layout->addWidget(new QRadioButton("Bar"));
layout->addWidget(new QRadioButton("Stacked bar"));
layout->addWidget(new QRadioButton("Percent bar"));
layout->addWidget(new QRadioButton("Scatter"));
layout->addWidget(new QRadioButton("Spline"));
Tero Ahola
Refactored chartwidgettest test data impl
r278
QGroupBox *groupBox = new QGroupBox("Series type");
groupBox->setLayout(layout);
return groupBox;
}
QGroupBox *DataSerieDialog::columnCountSelector()
{
QVBoxLayout *layout = new QVBoxLayout();
QRadioButton *radio = new QRadioButton("1");
radio->setChecked(true);
layout->addWidget(radio);
layout->addWidget(new QRadioButton("2"));
layout->addWidget(new QRadioButton("3"));
layout->addWidget(new QRadioButton("5"));
layout->addWidget(new QRadioButton("10"));
layout->addWidget(new QRadioButton("100"));
QGroupBox *groupBox = new QGroupBox("Column count");
groupBox->setLayout(layout);
return groupBox;
}
QGroupBox *DataSerieDialog::rowCountSelector()
{
QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(new QRadioButton("1"));
QRadioButton *radio = new QRadioButton("10");
radio->setChecked(true);
layout->addWidget(radio);
layout->addWidget(new QRadioButton("50"));
layout->addWidget(new QRadioButton("100"));
layout->addWidget(new QRadioButton("10000"));
layout->addWidget(new QRadioButton("1000000"));
QGroupBox *groupBox = new QGroupBox("Row count");
groupBox->setLayout(layout);
return groupBox;
}
QGroupBox *DataSerieDialog::dataCharacteristicsSelector()
{
QVBoxLayout *layout = new QVBoxLayout();
QRadioButton *radio1 = new QRadioButton("Linear");
radio1->setChecked(true);
layout->addWidget(radio1);
layout->addWidget(new QRadioButton("Constant"));
layout->addWidget(new QRadioButton("Random"));
layout->addWidget(new QRadioButton("Sin"));
layout->addWidget(new QRadioButton("Sin + random"));
QGroupBox *groupBox = new QGroupBox("Data Characteristics");
groupBox->setLayout(layout);
return groupBox;
}
Tero Ahola
Test app now adds n data series of different type
r20 void DataSerieDialog::accept()
Tero Ahola
Started to refactor the API to allow integrating different plot types
r19 {
Tero Ahola
Refactored chartwidgettest test data impl
r278 accepted(radioSelection(m_seriesTypeSelector),
radioSelection(m_columnCountSelector).toInt(),
radioSelection(m_rowCountSelector).toInt(),
radioSelection(m_dataCharacteristicsSelector),
m_labelsSelector->isChecked());
Tero Ahola
Test app now adds n data series of different type
r20 QDialog::accept();
Tero Ahola
Started to refactor the API to allow integrating different plot types
r19 }
Tero Ahola
Refactored chartwidgettest test data impl
r278
QString DataSerieDialog::radioSelection(QGroupBox *groupBox)
{
QString selection;
QVBoxLayout *layout = qobject_cast<QVBoxLayout *>(groupBox->layout());
Q_ASSERT(layout);
for (int i(0); i < layout->count(); i++) {
QLayoutItem *item = layout->itemAt(i);
Q_ASSERT(item);
QRadioButton *radio = qobject_cast<QRadioButton *>(item->widget());
Q_ASSERT(radio);
if (radio->isChecked()) {
selection = radio->text();
break;
}
}
qDebug() << "radioSelection: " << selection;
return selection;
}