[QGIS Commit] r12678 - in trunk/qgis/src: plugins/grass
providers/grass
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Wed Jan 6 06:23:46 EST 2010
Author: rblazek
Date: 2010-01-06 06:23:43 -0500 (Wed, 06 Jan 2010)
New Revision: 12678
Modified:
trunk/qgis/src/plugins/grass/qgsgrassedit.cpp
trunk/qgis/src/providers/grass/qgsgrassprovider.cpp
trunk/qgis/src/providers/grass/qgsgrassprovider.h
Log:
fix for #1169, added check for isle's area
Modified: trunk/qgis/src/plugins/grass/qgsgrassedit.cpp
===================================================================
--- trunk/qgis/src/plugins/grass/qgsgrassedit.cpp 2010-01-06 09:58:28 UTC (rev 12677)
+++ trunk/qgis/src/plugins/grass/qgsgrassedit.cpp 2010-01-06 11:23:43 UTC (rev 12678)
@@ -892,10 +892,10 @@
if ( !( mProvider->lineAreas( line, &left, &right ) ) ) return 0;
- /* Count areas/isles on both sides */
+ /* Count areas on both sides */
nareas = 0;
- if ( left != 0 ) nareas++;
- if ( right != 0 ) nareas++;
+ if ( left > 0 || (left < 0 && mProvider->isleArea(-left) > 0 ) ) nareas++;
+ if ( right > 0 || (right < 0 && mProvider->isleArea(-right) > 0 ) ) nareas++;
if ( nareas == 0 ) return SYMB_BOUNDARY_0;
else if ( nareas == 1 ) return SYMB_BOUNDARY_1;
else return SYMB_BOUNDARY_2;
Modified: trunk/qgis/src/providers/grass/qgsgrassprovider.cpp
===================================================================
--- trunk/qgis/src/providers/grass/qgsgrassprovider.cpp 2010-01-06 09:58:28 UTC (rev 12677)
+++ trunk/qgis/src/providers/grass/qgsgrassprovider.cpp 2010-01-06 11:23:43 UTC (rev 12678)
@@ -1749,6 +1749,18 @@
return true;
}
+int QgsGrassProvider::isleArea( int isle )
+{
+ QgsDebugMsgLevel( "entered.", 3 );
+
+ if ( !Vect_isle_alive( mMap, isle ) )
+ {
+ return 0;
+ }
+
+ return ( Vect_get_isle_area( mMap, isle ) );
+}
+
int QgsGrassProvider::centroidArea( int centroid )
{
QgsDebugMsgLevel( "entered.", 3 );
Modified: trunk/qgis/src/providers/grass/qgsgrassprovider.h
===================================================================
--- trunk/qgis/src/providers/grass/qgsgrassprovider.h 2010-01-06 09:58:28 UTC (rev 12677)
+++ trunk/qgis/src/providers/grass/qgsgrassprovider.h 2010-01-06 11:23:43 UTC (rev 12678)
@@ -280,6 +280,12 @@
*/
bool lineAreas( int line, int *left, int *right );
+ /** Get isle area
+ * @param isle number
+ * @return area number
+ */
+ int isleArea( int isle );
+
/** Get centroid area
* @param centroid line number
* @return area number (negative for island)
More information about the QGIS-commit
mailing list