[QGIS Commit] r14465 - in trunk/qgis/python: core plugins/fTools/tools

svn_qgis at osgeo.org svn_qgis at osgeo.org
Sun Oct 31 13:56:42 EDT 2010


Author: jef
Date: 2010-10-31 10:56:42 -0700 (Sun, 31 Oct 2010)
New Revision: 14465

Modified:
   trunk/qgis/python/core/qgsgeometry.sip
   trunk/qgis/python/plugins/fTools/tools/doVisual.py
Log:
fix r14462

Modified: trunk/qgis/python/core/qgsgeometry.sip
===================================================================
--- trunk/qgis/python/core/qgsgeometry.sip	2010-10-31 17:41:57 UTC (rev 14464)
+++ trunk/qgis/python/core/qgsgeometry.sip	2010-10-31 17:56:42 UTC (rev 14465)
@@ -378,16 +378,17 @@
 
     class Error
     {
-      Error( QString m );
-      Error( QString m, QgsPoint p );
-      QString what();
-      QgsPoint where();
-      bool hasWhere();
+      public:
+        Error( QString m );
+        Error( QString m, QgsPoint p );
+        QString what();
+        QgsPoint where();
+        bool hasWhere();
     };
     
     /** Validate geometry and produce a list of geometry errors
      * @note python binding added in 1.6
      **/
-    void validateGeometry( QList<QgsGeometry::Error> &errors );
+    void validateGeometry( QList<QgsGeometry::Error> &errors /Out/ );
 }; // class QgsGeometry
 

Modified: trunk/qgis/python/plugins/fTools/tools/doVisual.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doVisual.py	2010-10-31 17:41:57 UTC (rev 14464)
+++ trunk/qgis/python/plugins/fTools/tools/doVisual.py	2010-10-31 17:56:42 UTC (rev 14465)
@@ -441,36 +441,16 @@
       geom = QgsGeometry( feat.geometry() )
       self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nElement )
       nElement += 1
-      if geom.isMultipart():
-        polygons = geom.asMultiPolygon()
-        for polygon in polygons:
-          if not self.isHoleNested( polygon ):
-            lstErrors.append( self.tr( "Feature %1 contains an unnested hole" ).arg( unicode( feat.id() ) ) )
-            count += 1
-          if not self.isPolygonClosed( polygon ):
-            lstErrors.append( self.tr( "Feature %1 is not closed" ).arg( unicode( feat.id() ) ) )
-            count += 1
-          if self.isSelfIntersecting( polygon ):
-            lstErrors.append( self.tr( "Feature %1 is self intersecting" ).arg( unicode( feat.id() ) ) )
-            count += 1
-          if not self.isCorrectOrientation( polygon ):
-            lstErrors.append( self.tr( "Feature %1 has incorrect node ordering" ).arg( unicode( feat.id() ) ) )
-            count += 1
-          
-      else:
-        geom = geom.asPolygon()
-        if not self.isHoleNested( geom ):
-          lstErrors.append( self.tr( "Feature %1 contains an unnested hole" ).arg( unicode( feat.id() ) ) )
-          count += 1
-        if not self.isPolygonClosed( geom ):
-          lstErrors.append( self.tr( "Feature %1 is not closed" ).arg( unicode( feat.id() ) ) )
-          count += 1
-        if self.isSelfIntersecting( geom ):
-          lstErrors.append( self.tr( "Feature %1 is self intersecting" ).arg( unicode( feat.id() ) ) )
-          count += 1
-        if not self.isCorrectOrientation( geom ):
-          lstErrors.append( self.tr( "Feature %1 has incorrect node ordering" ).arg( unicode( feat.id() ) ) )
-          count += 1
+
+      errors = geom.validateGeometry()
+      if len(errors) > 0:
+        lstErrors.append( self.tr( "Feature %1 has %2 errors:" ).arg( feat.id() ).arg( uni
+	for e in errors:
+	  if e.hasWhere():
+	    lstErrors.append( self.tr( "Feature %1: %2 [%3]" ).arg( feat.id() ).arg( e.what() ).arg( e.where() ) )
+          else:
+	    lstErrors.append( self.tr( "Feature %1: %2 [%3]" ).arg( feat.id() ).arg( e.what() ).arg( e.where() ) )
+
     self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nFeat )
     return ( lstErrors, count )
 



More information about the QGIS-commit mailing list