@@ -112,6 +112,7 @@ def visual( self, myLayer, myField, mySelection ):
112
112
self .tblUnique .setRowCount ( 0 )
113
113
self .lstCount .clear ()
114
114
self .buttonOk .setEnabled ( False )
115
+
115
116
self .testThread = visualThread ( self .iface .mainWindow (), self , self .myFunction , vlayer , myField , mySelection )
116
117
QObject .connect ( self .testThread , SIGNAL ( "runFinished(PyQt_PyObject)" ), self .runFinishedFromThread )
117
118
QObject .connect ( self .testThread , SIGNAL ( "runStatus(PyQt_PyObject)" ), self .runStatusFromThread )
@@ -120,15 +121,20 @@ def visual( self, myLayer, myField, mySelection ):
120
121
QObject .connect ( self .testThread , SIGNAL ( "runPartStatus(PyQt_PyObject)" ), self .runPartStatusFromThread )
121
122
self .cancel_close .setText ( self .tr ("Cancel" ) )
122
123
QObject .connect ( self .cancel_close , SIGNAL ( "clicked()" ), self .cancelThread )
124
+
125
+ QApplication .setOverrideCursor ( Qt .WaitCursor )
123
126
self .testThread .start ()
124
127
return True
125
128
126
129
def cancelThread ( self ):
127
130
self .testThread .stop ()
131
+ QApplication .restoreOverrideCursor ()
128
132
self .buttonOk .setEnabled ( True )
133
+ QApplication .restoreOverrideCursor ()
129
134
130
135
def runFinishedFromThread ( self , output ):
131
136
self .testThread .stop ()
137
+ QApplication .restoreOverrideCursor ()
132
138
self .buttonOk .setEnabled ( True )
133
139
result = output [ 0 ]
134
140
numRows = len ( result )
@@ -429,8 +435,8 @@ def check_geometry( self, vlayer ):
429
435
430
436
while vprovider .nextFeature ( feat ):
431
437
geom = QgsGeometry ( feat .geometry () )
432
- nElement += 1
433
438
self .emit ( SIGNAL ( "runStatus(PyQt_PyObject)" ), nElement )
439
+ nElement += 1
434
440
if geom .isMultipart ():
435
441
polygons = geom .asMultiPolygon ()
436
442
for polygon in polygons :
@@ -502,10 +508,11 @@ def isSelfIntersecting( self, polygon ):
502
508
self .emit ( SIGNAL ( "runPartStatus(PyQt_PyObject)" ), nPart )
503
509
504
510
count = 0
505
- for j in range ( i , len (h )- 1 ):
511
+ for j in range ( i + 1 , len (h )- 1 ):
506
512
if QgsGeometry ().fromPolyline ( [ h [ i ], h [ i + 1 ] ] ).intersects ( QgsGeometry ().fromPolyline ( [ h [ j ], h [ j + 1 ] ] ) ):
507
513
count += 1
508
- if count > 2 :
514
+
515
+ if (i == 0 and count > 2 ) or (i > 0 and count > 1 ):
509
516
self .emit ( SIGNAL ( "runPartStatus(PyQt_PyObject)" ), cPart )
510
517
return True
511
518
0 commit comments