Skip to content

Commit 7431269

Browse files
author
rblazek
committed
fix for #1169, added check for isle's area
git-svn-id: http://svn.osgeo.org/qgis/trunk@12678 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 6eb6076 commit 7431269

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

src/plugins/grass/qgsgrassedit.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -892,10 +892,10 @@ int QgsGrassEdit::lineSymbFromMap( int line )
892892

893893
if ( !( mProvider->lineAreas( line, &left, &right ) ) ) return 0;
894894

895-
/* Count areas/isles on both sides */
895+
/* Count areas on both sides */
896896
nareas = 0;
897-
if ( left != 0 ) nareas++;
898-
if ( right != 0 ) nareas++;
897+
if ( left > 0 || (left < 0 && mProvider->isleArea(-left) > 0 ) ) nareas++;
898+
if ( right > 0 || (right < 0 && mProvider->isleArea(-right) > 0 ) ) nareas++;
899899
if ( nareas == 0 ) return SYMB_BOUNDARY_0;
900900
else if ( nareas == 1 ) return SYMB_BOUNDARY_1;
901901
else return SYMB_BOUNDARY_2;

src/providers/grass/qgsgrassprovider.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -1749,6 +1749,18 @@ bool QgsGrassProvider::lineAreas( int line, int *left, int *right )
17491749
return true;
17501750
}
17511751

1752+
int QgsGrassProvider::isleArea( int isle )
1753+
{
1754+
QgsDebugMsgLevel( "entered.", 3 );
1755+
1756+
if ( !Vect_isle_alive( mMap, isle ) )
1757+
{
1758+
return 0;
1759+
}
1760+
1761+
return ( Vect_get_isle_area( mMap, isle ) );
1762+
}
1763+
17521764
int QgsGrassProvider::centroidArea( int centroid )
17531765
{
17541766
QgsDebugMsgLevel( "entered.", 3 );

src/providers/grass/qgsgrassprovider.h

+6
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,12 @@ class GRASS_EXPORT QgsGrassProvider : public QgsVectorDataProvider
280280
*/
281281
bool lineAreas( int line, int *left, int *right );
282282

283+
/** Get isle area
284+
* @param isle number
285+
* @return area number
286+
*/
287+
int isleArea( int isle );
288+
283289
/** Get centroid area
284290
* @param centroid line number
285291
* @return area number (negative for island)

0 commit comments

Comments
 (0)