@@ -45,6 +45,11 @@ QgsMeasure::QgsMeasure(bool measureArea, QgsMapCanvas *mc, Qt::WFlags f)
45
45
46
46
mTable ->setLeftMargin (0 ); // hide row labels
47
47
48
+ // Set one cell row where to update current distance
49
+ // If measuring area, the table doesn't get shown
50
+ mTable ->setNumRows (1 );
51
+ mTable ->setText (0 , 0 , QString::number (0 , ' f' ,1 ));
52
+
48
53
mTable ->horizontalHeader ()->setLabel ( 0 , tr (" Segments (in meters)" ) );
49
54
// mTable->horizontalHeader()->setLabel( 1, tr("Total") );
50
55
// mTable->horizontalHeader()->setLabel( 2, tr("Azimuth") );
@@ -121,7 +126,10 @@ QgsMeasure::~QgsMeasure()
121
126
void QgsMeasure::restart (void )
122
127
{
123
128
mPoints .resize (0 );
124
- mTable ->setNumRows (0 );
129
+ // Set one cell row where to update current distance
130
+ // If measuring area, the table doesn't get shown
131
+ mTable ->setNumRows (1 );
132
+ mTable ->setText (0 , 0 , QString::number (0 , ' f' ,1 ));
125
133
mTotal = 0 .;
126
134
127
135
updateUi ();
@@ -160,13 +168,14 @@ void QgsMeasure::addPoint(QgsPoint &point)
160
168
mTotal += d;
161
169
editTotal->setText (formatDistance (mTotal ));
162
170
163
- mTable ->setNumRows ( mPoints .size ()-1 );
164
171
165
172
int row = mPoints .size ()-2 ;
166
173
mTable ->setText (row, 0 , QString::number (d, ' f' ,1 ));
167
174
// mTable->setText ( row, 1, QString::number(mTotal) );
175
+ mTable ->setNumRows ( mPoints .size () );
168
176
169
- mTable ->ensureCellVisible (row,0 );
177
+ mTable ->setText (row + 1 , 0 , QString::number (0 , ' f' ,1 ));
178
+ mTable ->ensureCellVisible (row + 1 ,0 );
170
179
}
171
180
172
181
mRubberBand ->addPoint (point);
@@ -208,6 +217,7 @@ void QgsMeasure::mouseMove(QgsPoint &point)
208
217
QgsPoint p1 = tmpPoints[last], p2 = tmpPoints[last+1 ];
209
218
210
219
double d = mCalc ->measureLine (p1,p2);
220
+ mTable ->setText (last, 0 , QString::number (d, ' f' ,1 ));
211
221
editTotal->setText (formatDistance (mTotal + d));
212
222
}
213
223
}
0 commit comments