@@ -124,6 +124,10 @@ void HeatmapGui::blockAllSignals( bool b )
124
124
radiusFieldCombo->blockSignals ( b );
125
125
advancedGroupBox->blockSignals ( b );
126
126
kernelShapeCombo->blockSignals ( b );
127
+ rowsSpinBox->blockSignals ( b );
128
+ columnsSpinBox->blockSignals ( b );
129
+ cellXLineEdit->blockSignals ( b );
130
+ cellYLineEdit->blockSignals ( b );
127
131
}
128
132
129
133
/*
@@ -285,15 +289,15 @@ void HeatmapGui::on_rowsSpinBox_valueChanged()
285
289
mRows = rowsSpinBox->value ();
286
290
mYcellsize = mBBox .height () / mRows ;
287
291
mXcellsize = mYcellsize ;
288
- mColumns = max ( qRound ( mBBox .width () / mXcellsize ), 1 );
292
+ mColumns = max ( qRound ( mBBox .width () / mXcellsize ) + 1 , 1 );
289
293
290
294
updateSize ();
291
295
}
292
296
293
297
void HeatmapGui::on_columnsSpinBox_valueChanged ()
294
298
{
295
299
mColumns = columnsSpinBox->value ();
296
- mXcellsize = mBBox .width () / mColumns ;
300
+ mXcellsize = mBBox .width () / ( mColumns - 1 ) ;
297
301
mYcellsize = mXcellsize ;
298
302
mRows = max ( qRound ( mBBox .height () / mYcellsize ), 1 );
299
303
@@ -304,8 +308,8 @@ void HeatmapGui::on_cellXLineEdit_editingFinished()
304
308
{
305
309
mXcellsize = cellXLineEdit->text ().toDouble ();
306
310
mYcellsize = mXcellsize ;
307
- mRows = max ( qRound ( mBBox .height () / mYcellsize ), 1 );
308
- mColumns = max ( qRound ( mBBox .width () / mXcellsize ), 1 );
311
+ mRows = max ( qRound ( mBBox .height () / mYcellsize ) + 1 , 1 );
312
+ mColumns = max ( qRound ( mBBox .width () / mXcellsize ) + 1 , 1 );
309
313
310
314
updateSize ();
311
315
}
@@ -314,8 +318,8 @@ void HeatmapGui::on_cellYLineEdit_editingFinished()
314
318
{
315
319
mYcellsize = cellYLineEdit->text ().toDouble ();
316
320
mXcellsize = mYcellsize ;
317
- mRows = max ( qRound ( mBBox .height () / mYcellsize ), 1 );
318
- mColumns = max ( qRound ( mBBox .width () / mXcellsize ), 1 );
321
+ mRows = max ( qRound ( mBBox .height () / mYcellsize ) + 1 , 1 );
322
+ mColumns = max ( qRound ( mBBox .width () / mXcellsize ) + 1 , 1 );
319
323
320
324
updateSize ();
321
325
}
@@ -447,10 +451,12 @@ void HeatmapGui::populateFields()
447
451
448
452
void HeatmapGui::updateSize ()
449
453
{
454
+ blockAllSignals ( true );
450
455
rowsSpinBox->setValue ( mRows );
451
456
columnsSpinBox->setValue ( mColumns );
452
457
cellXLineEdit->setText ( QString::number ( mXcellsize ) );
453
458
cellYLineEdit->setText ( QString::number ( mYcellsize ) );
459
+ blockAllSignals ( false );
454
460
}
455
461
456
462
void HeatmapGui::updateBBox ()
@@ -496,10 +502,9 @@ void HeatmapGui::updateBBox()
496
502
mBBox .setYMaximum ( mBBox .yMaximum () + radiusInMapUnits );
497
503
498
504
// Leave number of rows the same, and calculate new corresponding cell size and number of columns
499
- mYcellsize = mBBox .height () / mRows ;
505
+ mYcellsize = mBBox .height () / ( mRows - 1 ) ;
500
506
mXcellsize = mYcellsize ;
501
- mColumns = max ( mBBox .width () / mXcellsize , 1 );
502
-
507
+ mColumns = max ( mBBox .width () / mXcellsize + 1 , 1 );
503
508
updateSize ();
504
509
}
505
510
0 commit comments