@@ -951,9 +951,9 @@ bool QgsGeometryAnalyzer::eventLayer( QgsVectorLayer* lineLayer, QgsVectorLayer*
951
951
952
952
int nEventFeatures = eventLayer->pendingFeatureCount ();
953
953
int featureCounter = 0 ;
954
- if ( p )
954
+ if ( p )
955
955
{
956
- p->setWindowModality (Qt::WindowModal);
956
+ p->setWindowModality ( Qt::WindowModal );
957
957
p->setMinimum ( 0 );
958
958
p->setMaximum ( nEventFeatures );
959
959
p->show ();
@@ -962,9 +962,9 @@ bool QgsGeometryAnalyzer::eventLayer( QgsVectorLayer* lineLayer, QgsVectorLayer*
962
962
while ( eventLayer->nextFeature ( fet ) )
963
963
{
964
964
// update progress dialog
965
- if ( p )
965
+ if ( p )
966
966
{
967
- if ( p->wasCanceled () )
967
+ if ( p->wasCanceled () )
968
968
{
969
969
break ;
970
970
}
@@ -1011,7 +1011,7 @@ bool QgsGeometryAnalyzer::eventLayer( QgsVectorLayer* lineLayer, QgsVectorLayer*
1011
1011
}
1012
1012
}
1013
1013
1014
- if ( p )
1014
+ if ( p )
1015
1015
{
1016
1016
p->setValue ( nEventFeatures );
1017
1017
}
@@ -1268,6 +1268,18 @@ bool QgsGeometryAnalyzer::clipSegmentByRange( double x1, double y1, double m1, d
1268
1268
secondPointClipped = reversed;
1269
1269
}
1270
1270
1271
+ // range1 and range 2 both inside the segment
1272
+ if ( range1 >= m1 && range2 <= m2 )
1273
+ {
1274
+ double dist1 = ( range1 - m1 ) / ( m2 - m1 );
1275
+ double dist2 = ( range2 - m1 ) / ( m2 - m1 );
1276
+ pt1.setX ( x1 + ( x2 - x1 ) * dist1 );
1277
+ pt1.setY ( y1 + ( y2 - y1 ) * dist1 );
1278
+ pt2.setX ( x1 + ( x2 - x1 ) * dist2 );
1279
+ pt2.setY ( y1 + ( y2 - y1 ) * dist2 );
1280
+ secondPointClipped = true ;
1281
+ }
1282
+
1271
1283
if ( reversed ) // switch p1 and p2
1272
1284
{
1273
1285
QgsPoint tmpPt = pt1;
0 commit comments