15 #include "ui_KDChartDatasetSelector.h"
17 #include <KDABLibFakes>
23 , mUi(new Ui::DatasetSelector())
25 qWarning(
"For DatasetSelectorWidget to become useful, it has to be connected to the proxy model it configures!");
28 setMinimumSize(minimumSizeHint());
36 void DatasetSelectorWidget::on_sbStartColumn_valueChanged(
int)
41 void DatasetSelectorWidget::on_sbStartRow_valueChanged(
int)
46 void DatasetSelectorWidget::on_sbColumnCount_valueChanged(
int)
51 void DatasetSelectorWidget::on_sbRowCount_valueChanged(
int)
56 void DatasetSelectorWidget::on_cbReverseRows_stateChanged(
int)
61 void DatasetSelectorWidget::on_cbReverseColumns_stateChanged(
int)
66 void DatasetSelectorWidget::on_groupBox_toggled(
bool state)
77 if (rowCount != mSourceRowCount) {
78 mSourceRowCount = rowCount;
85 if (columnCount != mSourceColumnCount) {
86 mSourceColumnCount = columnCount;
91 void DatasetSelectorWidget::resetDisplayValues()
93 mUi->sbStartRow->setValue(0);
94 mUi->sbStartRow->setMinimum(0);
95 mUi->sbStartRow->setMaximum(qMax(mSourceRowCount - 1, 0));
96 mUi->sbStartColumn->setValue(0);
97 mUi->sbStartColumn->setMinimum(0);
98 mUi->sbStartColumn->setMaximum(qMax(mSourceColumnCount - 1, 0));
99 mUi->sbRowCount->setMinimum(1);
100 mUi->sbRowCount->setMaximum(mSourceRowCount);
101 mUi->sbRowCount->setValue(mSourceRowCount);
102 mUi->sbColumnCount->setMinimum(1);
103 mUi->sbColumnCount->setMaximum(mSourceColumnCount);
104 mUi->sbColumnCount->setValue(mSourceColumnCount);
105 mUi->groupBox->setChecked(
false);
109 void DatasetSelectorWidget::calculateMapping()
111 if (mSourceColumnCount < 2 && mSourceRowCount < 2) {
112 mUi->groupBox->setEnabled(
false);
115 mUi->groupBox->setEnabled(
true);
117 if (!mUi->groupBox->isChecked()) {
123 int startRow = mUi->sbStartRow->value();
124 int startColumn = mUi->sbStartColumn->value();
125 int rowCount = mUi->sbRowCount->value();
126 int columnCount = mUi->sbColumnCount->value();
127 bool reverseColumns = mUi->cbReverseColumns->checkState() == Qt::Checked;
128 bool reverseRows = mUi->cbReverseRows->checkState() == Qt::Checked;
131 startRow = qMin(startRow, mSourceRowCount - 2);
132 startRow = qMax(0, startRow);
133 startColumn = qMin(startColumn, mSourceColumnCount - 2);
134 startColumn = qMax(0, startColumn);
136 rowCount = qMin(rowCount, mSourceRowCount - startRow);
137 rowCount = qMax(1, rowCount);
138 columnCount = qMin(columnCount, mSourceColumnCount - startColumn);
139 columnCount = qMax(1, columnCount);
142 Q_ASSERT(rowConfig.size() > 0);
144 Q_ASSERT(columnConfig.size() > 0);
147 for (
int row = 0; row < rowCount; ++row) {
149 rowConfig[row] = startRow + rowCount - row - 1;
151 rowConfig[row] = startRow + row;
155 for (
int column = 0; column < columnCount; ++column) {
156 if (reverseColumns) {
157 columnConfig[column] = startColumn + columnCount - column - 1;
159 columnConfig[column] = startColumn + column;
QVector< int > DatasetDescriptionVector