[QGIS Commit] r10598 - branches/Version-1_0/src/providers/grass
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Sun Apr 19 06:30:28 EDT 2009
Author: jef
Date: 2009-04-19 06:30:28 -0400 (Sun, 19 Apr 2009)
New Revision: 10598
Modified:
branches/Version-1_0/src/providers/grass/qgsgrassprovider.cpp
Log:
apply r10580 to version 1.0
Modified: branches/Version-1_0/src/providers/grass/qgsgrassprovider.cpp
===================================================================
--- branches/Version-1_0/src/providers/grass/qgsgrassprovider.cpp 2009-04-19 09:13:36 UTC (rev 10597)
+++ branches/Version-1_0/src/providers/grass/qgsgrassprovider.cpp 2009-04-19 10:30:28 UTC (rev 10598)
@@ -293,7 +293,7 @@
int cat, type, id;
unsigned char *wkb;
int wkbsize;
-
+
QgsDebugMsgLevel( "entered.", 3 );
if ( isEdited() || isFrozen() || !mValid )
@@ -318,7 +318,7 @@
QgsDebugMsg( QString( "cat = %1 type = %2 id = %3" ).arg( cat ).arg( type ).arg( id ) );
#endif
- feature.setFeatureId(id);
+ feature.setFeatureId( id );
// TODO int may be 64 bits (memcpy)
if ( type & ( GV_POINTS | GV_LINES ) ) /* points or lines */
@@ -651,7 +651,20 @@
layer.nUsers = 1;
// Open map
- layer.mapId = openMap( gisdbase, location, mapset, mapName );
+ QgsGrass::init();
+ QgsGrass::resetError();
+ if ( setjmp( QgsGrass::fatalErrorEnv() ) == 0 )
+ {
+ layer.mapId = openMap( gisdbase, location, mapset, mapName );
+ }
+ QgsGrass::clearErrorEnv();
+
+ if ( QgsGrass::getError() == QgsGrass::FATAL )
+ {
+ QgsDebugMsg( QString( "Cannot open vector map: %1" ).arg( QgsGrass::getErrorMessage() ) );
+ return -1;
+ }
+
if ( layer.mapId < 0 )
{
QgsDebugMsg( "Cannot open vector map" );
@@ -668,7 +681,7 @@
// Add new layer to layers
mLayers.push_back( layer );
- QgsDebugMsg( QString( "New layer successfully opened%1" ).arg( layer.nAttributes ) );
+ QgsDebugMsg( QString( "New layer successfully opened: %1" ).arg( layer.nAttributes ) );
return mLayers.size() - 1;
}
@@ -943,7 +956,7 @@
delete[] mLayers[layerId].minmax;
// Field info
- free( mLayers[layerId].fieldInfo );
+ G_free( mLayers[layerId].fieldInfo );
closeMap( mLayers[layerId].mapId );
}
@@ -1149,11 +1162,11 @@
if ( mMaps[mapId].valid )
{
- bool mapsetunset = G__getenv( "MAPSET" )==NULL || *G__getenv( "MAPSET" )==0;
- if( mapsetunset )
+ bool mapsetunset = G__getenv( "MAPSET" ) == NULL || *G__getenv( "MAPSET" ) == 0;
+ if ( mapsetunset )
G__setenv(( char * )"MAPSET", mMaps[mapId].mapset.toAscii().data() );
Vect_close( mMaps[mapId].map );
- if( mapsetunset )
+ if ( mapsetunset )
G__setenv(( char * )"MAPSET", "" );
}
mMaps[mapId].valid = false;
More information about the QGIS-commit
mailing list