37
37
// standard includes
38
38
39
39
HeatmapGui::HeatmapGui ( QWidget* parent, Qt::WFlags fl )
40
- : QDialog( parent, fl )
40
+ : QDialog( parent, fl ),
41
+ mRows( 500 )
41
42
{
42
43
setupUi ( this );
43
44
@@ -79,6 +80,8 @@ HeatmapGui::HeatmapGui( QWidget* parent, Qt::WFlags fl )
79
80
mFormatCombo ->setCurrentIndex ( myTiffIndex );
80
81
81
82
updateBBox ();
83
+ updateSize ();
84
+
82
85
// finally set right the ok button
83
86
enableOrDisableOkButton ();
84
87
}
@@ -149,22 +152,22 @@ void HeatmapGui::on_advancedGroupBox_toggled( bool enabled )
149
152
}
150
153
}
151
154
152
- void HeatmapGui::on_rowLineEdit_editingFinished ()
155
+ void HeatmapGui::on_mRowsSpinBox_editingFinished ()
153
156
{
154
- mRows = rowLineEdit-> text (). toInt ();
157
+ mRows = mRowsSpinBox -> value ();
155
158
mYcellsize = mBBox .height () / mRows ;
156
159
mXcellsize = mYcellsize ;
157
- mColumns = mBBox .width () / mXcellsize + 1 ;
160
+ mColumns = max ( mBBox .width () / mXcellsize , 1 ) ;
158
161
159
162
updateSize ();
160
163
}
161
164
162
- void HeatmapGui::on_columnLineEdit_editingFinished ()
165
+ void HeatmapGui::on_mColumnsSpinBox_editingFinished ()
163
166
{
164
- mColumns = columnLineEdit-> text (). toInt ();
167
+ mColumns = mColumnsSpinBox -> value ();
165
168
mXcellsize = mBBox .width () / mColumns ;
166
169
mYcellsize = mXcellsize ;
167
- mRows = mBBox .height () / mYcellsize + 1 ;
170
+ mRows = max ( mBBox .height () / mYcellsize , 1 ) ;
168
171
169
172
updateSize ();
170
173
}
@@ -173,8 +176,8 @@ void HeatmapGui::on_cellXLineEdit_editingFinished()
173
176
{
174
177
mXcellsize = cellXLineEdit->text ().toDouble ();
175
178
mYcellsize = mXcellsize ;
176
- mRows = mBBox .height () / mYcellsize + 1 ;
177
- mColumns = mBBox .width () / mXcellsize + 1 ;
179
+ mRows = max ( mBBox .height () / mYcellsize , 1 ) ;
180
+ mColumns = max ( mBBox .width () / mXcellsize , 1 ) ;
178
181
179
182
updateSize ();
180
183
}
@@ -183,8 +186,8 @@ void HeatmapGui::on_cellYLineEdit_editingFinished()
183
186
{
184
187
mYcellsize = cellYLineEdit->text ().toDouble ();
185
188
mXcellsize = mYcellsize ;
186
- mRows = mBBox .height () / mYcellsize + 1 ;
187
- mColumns = mBBox .width () / mXcellsize + 1 ;
189
+ mRows = max ( mBBox .height () / mYcellsize , 1 ) ;
190
+ mColumns = max ( mBBox .width () / mXcellsize , 1 ) ;
188
191
189
192
updateSize ();
190
193
}
@@ -316,8 +319,8 @@ void HeatmapGui::populateFields()
316
319
317
320
void HeatmapGui::updateSize ()
318
321
{
319
- rowLineEdit-> setText ( QString::number ( mRows ) );
320
- columnLineEdit-> setText ( QString::number ( mColumns ) );
322
+ mRowsSpinBox -> setValue ( mRows );
323
+ mColumnsSpinBox -> setValue ( mColumns );
321
324
cellXLineEdit->setText ( QString::number ( mXcellsize ) );
322
325
cellYLineEdit->setText ( QString::number ( mYcellsize ) );
323
326
}
@@ -363,17 +366,13 @@ void HeatmapGui::updateBBox()
363
366
mBBox .setYMinimum ( mBBox .yMinimum () - radiusInMapUnits );
364
367
mBBox .setXMaximum ( mBBox .xMaximum () + radiusInMapUnits );
365
368
mBBox .setYMaximum ( mBBox .yMaximum () + radiusInMapUnits );
366
- mRows = 500 ;
369
+
370
+ // Leave number of rows the same, and calculate new corresponding cell size and number of columns
367
371
mYcellsize = mBBox .height () / mRows ;
368
372
mXcellsize = mYcellsize ;
369
- // +1 should be added wherever a fractional part of cell might occur
370
- mColumns = mBBox .width () / mXcellsize + 1 ;
371
- mRows += 1 ;
373
+ mColumns = max ( mBBox .width () / mXcellsize , 1 );
372
374
373
- if ( advancedGroupBox->isChecked () )
374
- {
375
- updateSize ();
376
- }
375
+ updateSize ();
377
376
}
378
377
379
378
double HeatmapGui::mapUnitsOf ( double meters, QgsCoordinateReferenceSystem layerCrs )
0 commit comments