Skip to content

Commit 7c40bf3

Browse files
committedNov 26, 2011
add log messages to OGR provider
1 parent 414729c commit 7c40bf3

File tree

2 files changed

+46
-48
lines changed

2 files changed

+46
-48
lines changed
 

‎src/providers/ogr/qgsogrdataitems.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "qgsogrdataitems.h"
1717

1818
#include "qgslogger.h"
19+
#include "qgsmessagelog.h"
1920

2021
#include <QFileInfo>
2122
#include <QTextStream>
@@ -93,7 +94,7 @@ bool QgsOgrLayerItem::setCrs( QgsCoordinateReferenceSystem crs )
9394
}
9495
else
9596
{
96-
QgsDebugMsg( "Couldn't open file " + layerName + ".prj" );
97+
QgsMessageLog::logMessage( tr( "Couldn't open file %1.prj" ).arg( layerName ), tr( "OGR" ) );
9798
return false;
9899
}
99100
OSRDestroySpatialReference( hSRS );
@@ -109,7 +110,7 @@ bool QgsOgrLayerItem::setCrs( QgsCoordinateReferenceSystem crs )
109110
}
110111
else
111112
{
112-
QgsDebugMsg( "Couldn't open file " + layerName + ".qpj" );
113+
QgsMessageLog::logMessage( tr( "Couldn't open file %1.qpj" ).arg( layerName ), tr( "OGR" ) );
113114
return false;
114115
}
115116

‎src/providers/ogr/qgsogrprovider.cpp

Lines changed: 43 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ email : sherman at mrcc.com
1717

1818
#include "qgsogrprovider.h"
1919
#include "qgslogger.h"
20+
#include "qgsmessagelog.h"
2021

2122
#define CPL_SUPRESS_CPLUSPLUS
2223
#include <gdal.h> // to collect version information
@@ -58,7 +59,8 @@ class QgsCPLErrorHandler
5859
{
5960
static void CPL_STDCALL showError( CPLErr errClass, int errNo, const char *msg )
6061
{
61-
QgsLogger::warning( QString( "OGR[%1] error %2: %3" ).arg( errClass ).arg( errNo ).arg( msg ) );
62+
if ( errNo != OGRERR_NONE )
63+
QgsMessageLog::logMessage( QObject::tr( "OGR[%1] error %2: %3" ).arg( errClass ).arg( errNo ).arg( msg ), QObject::tr( "OGR" ) );
6264
}
6365

6466
public:
@@ -189,13 +191,14 @@ QgsVectorLayerImport::ImportError QgsOgrProvider::createEmptyLayer(
189191

190192

191193
QgsOgrProvider::QgsOgrProvider( QString const & uri )
192-
: QgsVectorDataProvider( uri ),
193-
ogrDataSource( 0 ),
194-
extent_( 0 ),
195-
ogrLayer( 0 ),
196-
ogrOrigLayer( 0 ),
197-
ogrDriver( 0 ),
198-
featuresCounted( -1 )
194+
: QgsVectorDataProvider( uri )
195+
, ogrDataSource( 0 )
196+
, extent_( 0 )
197+
, ogrLayer( 0 )
198+
, ogrOrigLayer( 0 )
199+
, ogrDriver( 0 )
200+
, valid( false )
201+
, featuresCounted( -1 )
199202
{
200203
QgsCPLErrorHandler handler;
201204

@@ -272,14 +275,13 @@ QgsOgrProvider::QgsOgrProvider( QString const & uri )
272275
//TODO is in read-only mode, otherwise edit ops will fail
273276
//TODO: capabilities() should now reflect this; need to test.
274277
}
278+
275279
if ( ogrDataSource )
276280
{
277281

278282
QgsDebugMsg( "Data source is valid" );
279283
QgsDebugMsg( "OGR Driver was " + QString( OGR_Dr_GetName( ogrDriver ) ) );
280284

281-
valid = true;
282-
283285
ogrDriverName = OGR_Dr_GetName( ogrDriver );
284286

285287
// We get the layer which was requested by the uri. The layername
@@ -294,20 +296,14 @@ QgsOgrProvider::QgsOgrProvider( QString const & uri )
294296
}
295297

296298
ogrLayer = ogrOrigLayer;
297-
if (ogrLayer != NULL )
299+
if ( ogrLayer )
298300
{
299-
setSubsetString( mSubsetString );
300-
}
301-
else
302-
{
303-
valid = false;
301+
valid = setSubsetString( mSubsetString );
304302
}
305303
}
306304
else
307305
{
308-
QgsLogger::critical( "Data source is invalid" );
309-
QgsLogger::critical( QString::fromUtf8( CPLGetLastErrorMsg() ) );
310-
valid = false;
306+
QgsMessageLog::logMessage( tr( "Data source is invalid (%1)" ).arg( QString::fromUtf8( CPLGetLastErrorMsg() ) ), tr( "OGR" ) );
311307
}
312308

313309
// FIXME: sync with app/qgsnewvectorlayerdialog.cpp
@@ -426,10 +422,11 @@ QString QgsOgrProvider::subsetString()
426422
QStringList QgsOgrProvider::subLayers() const
427423
{
428424
QStringList theList = QStringList();
429-
if ( ! valid )
425+
if ( !valid )
430426
{
431427
return theList;
432428
}
429+
433430
for ( unsigned int i = 0; i < layerCount() ; i++ )
434431
{
435432
QString theLayerName = FROM8( OGR_FD_GetName( OGR_L_GetLayerDefn( OGR_DS_GetLayer( ogrDataSource, i ) ) ) );
@@ -630,7 +627,7 @@ bool QgsOgrProvider::nextFeature( QgsFeature& feature )
630627

631628
if ( !valid )
632629
{
633-
QgsLogger::warning( "Read attempt on an invalid shapefile data source" );
630+
QgsMessageLog::logMessage( tr( "Read attempt on an invalid shapefile data source" ), tr( "OGR" ) );
634631
return false;
635632
}
636633

@@ -994,15 +991,15 @@ bool QgsOgrProvider::addFeature( QgsFeature& f )
994991
break;
995992

996993
default:
997-
QgsLogger::warning( "QgsOgrProvider::addFeature, no type found" );
994+
QgsMessageLog::logMessage( tr( "type %1 for attribute %2 not found" ).arg( type ).arg( targetAttributeId ), tr( "OGR" ) );
998995
break;
999996
}
1000997
}
1001998
}
1002999

10031000
if ( OGR_L_CreateFeature( ogrLayer, feature ) != OGRERR_NONE )
10041001
{
1005-
QgsLogger::warning( "Writing of the feature failed" );
1002+
QgsMessageLog::logMessage( tr( "Writing of the feature %1 failed" ).arg( f.id() ), tr( "OGR" ) );
10061003
returnValue = false;
10071004
}
10081005
else
@@ -1059,7 +1056,7 @@ bool QgsOgrProvider::addAttributes( const QList<QgsField> &attributes )
10591056
type = OFTString;
10601057
break;
10611058
default:
1062-
QgsLogger::warning( QString( "QgsOgrProvider::addAttributes, type %1 not found" ).arg( iter->typeName() ) );
1059+
QgsMessageLog::logMessage( tr( "type %1 for field %2 not found" ).arg( iter->typeName() ).arg( iter->name() ), tr( "OGR" ) );
10631060
returnvalue = false;
10641061
continue;
10651062
}
@@ -1070,7 +1067,7 @@ bool QgsOgrProvider::addAttributes( const QList<QgsField> &attributes )
10701067

10711068
if ( OGR_L_CreateField( ogrLayer, fielddefn, true ) != OGRERR_NONE )
10721069
{
1073-
QgsLogger::warning( "QgsOgrProvider.cpp: writing of field failed" );
1070+
QgsMessageLog::logMessage( tr( "writing of field %1 failed" ).arg( iter->name() ), tr( "OGR" ) );
10741071
returnvalue = false;
10751072
}
10761073
OGR_Fld_Destroy( fielddefn );
@@ -1090,7 +1087,7 @@ bool QgsOgrProvider::deleteAttributes( const QgsAttributeIds &attributes )
10901087
{
10911088
if ( OGR_L_DeleteField( ogrLayer, attr ) != OGRERR_NONE )
10921089
{
1093-
QgsDebugMsg( "Failed to delete attribute " + QString::number( attr ) );
1090+
QgsMessageLog::logMessage( tr( "Failed to delete attribute %1" ).arg( attr ), tr( "OGR" ) );
10941091
res = false;
10951092
}
10961093
}
@@ -1119,15 +1116,15 @@ bool QgsOgrProvider::changeAttributeValues( const QgsChangedAttributesMap & attr
11191116

11201117
if ( FID_TO_NUMBER( fid ) > std::numeric_limits<long>::max() )
11211118
{
1122-
QgsLogger::warning( "QgsOgrProvider::changeAttributeValues, feature id too large for OGR" );
1119+
QgsMessageLog::logMessage( tr( "Feature id %1 too large for OGR" ).arg( fid ), tr( "OGR" ) );
11231120
continue;
11241121
}
11251122

11261123
OGRFeatureH of = OGR_L_GetFeature( ogrLayer, static_cast<long>( FID_TO_NUMBER( fid ) ) );
11271124

11281125
if ( !of )
11291126
{
1130-
QgsLogger::warning( "QgsOgrProvider::changeAttributeValues, Cannot read feature, cannot change attributes" );
1127+
QgsMessageLog::logMessage( tr( "Feature %1 for attribute update not found." ).arg( fid ), tr( "OGR" ) );
11311128
continue;
11321129
}
11331130

@@ -1140,7 +1137,7 @@ bool QgsOgrProvider::changeAttributeValues( const QgsChangedAttributesMap & attr
11401137
OGRFieldDefnH fd = OGR_F_GetFieldDefnRef( of, f );
11411138
if ( !fd )
11421139
{
1143-
QgsLogger::warning( "QgsOgrProvider::changeAttributeValues, Field " + QString::number( f ) + " doesn't exist" );
1140+
QgsMessageLog::logMessage( tr( "Field %1 of feature %2 doesn't exist." ).arg( f ).arg( fid ), tr( "OGR" ) );
11441141
continue;
11451142
}
11461143

@@ -1165,7 +1162,7 @@ bool QgsOgrProvider::changeAttributeValues( const QgsChangedAttributesMap & attr
11651162
OGR_F_SetFieldString( of, f, mEncoding->fromUnicode( it2->toString() ).constData() );
11661163
break;
11671164
default:
1168-
QgsLogger::warning( "QgsOgrProvider::changeAttributeValues, Unknown field type, cannot change attribute" );
1165+
QgsMessageLog::logMessage( tr( "Type %1 of attribute %2 of feature %3 unknown." ).arg( type ).arg( fid ).arg( f ), tr( "OGR" ) );
11691166
break;
11701167
}
11711168
}
@@ -1174,7 +1171,7 @@ bool QgsOgrProvider::changeAttributeValues( const QgsChangedAttributesMap & attr
11741171
OGRErr res;
11751172
if (( res = OGR_L_SetFeature( ogrLayer, of ) ) != OGRERR_NONE )
11761173
{
1177-
QgsLogger::warning( "QgsOgrProvider::changeAttributeValues, setting the feature failed: " + QString::number( res ) );
1174+
QgsMessageLog::logMessage( tr( "Update of Feature %1 failed: %2" ).arg( fid ).arg( res ), tr( "OGR" ) );
11781175
}
11791176
}
11801177

@@ -1194,14 +1191,14 @@ bool QgsOgrProvider::changeGeometryValues( QgsGeometryMap & geometry_map )
11941191
{
11951192
if ( FID_TO_NUMBER( it.key() ) > std::numeric_limits<long>::max() )
11961193
{
1197-
QgsLogger::warning( "QgsOgrProvider::changeGeometryValues, fid too large for OGR" );
1194+
QgsMessageLog::logMessage( tr( "Feature id %1 too large for OGR" ).arg( it.key() ), tr( "OGR" ) );
11981195
continue;
11991196
}
12001197

12011198
theOGRFeature = OGR_L_GetFeature( ogrLayer, static_cast<long>( FID_TO_NUMBER( it.key() ) ) );
12021199
if ( !theOGRFeature )
12031200
{
1204-
QgsLogger::warning( "QgsOgrProvider::changeGeometryValues, cannot find feature" );
1201+
QgsMessageLog::logMessage( tr( "Feature %1 not found for geometry update." ).arg( it.key() ), tr( "OGR" ) );
12051202
continue;
12061203
}
12071204

@@ -1211,22 +1208,22 @@ bool QgsOgrProvider::changeGeometryValues( QgsGeometryMap & geometry_map )
12111208
&theNewGeometry,
12121209
it->wkbSize() ) != OGRERR_NONE )
12131210
{
1214-
QgsLogger::warning( "QgsOgrProvider::changeGeometryValues, error while creating new OGRGeometry" );
1211+
QgsMessageLog::logMessage( tr( "Creation of new geometry for feature %1 failed." ).arg( it.key() ), tr( "OGR" ) );
12151212
OGR_G_DestroyGeometry( theNewGeometry );
12161213
theNewGeometry = 0;
12171214
continue;
12181215
}
12191216

12201217
if ( !theNewGeometry )
12211218
{
1222-
QgsLogger::warning( "QgsOgrProvider::changeGeometryValues, new geometry is NULL" );
1219+
QgsMessageLog::logMessage( tr( "Newly created geometry for feature % is null." ).arg( it.key() ), tr( "OGR" ) );
12231220
continue;
12241221
}
12251222

12261223
//set the new geometry
12271224
if (( res = OGR_F_SetGeometryDirectly( theOGRFeature, theNewGeometry ) ) != OGRERR_NONE )
12281225
{
1229-
QgsLogger::warning( "QgsOgrProvider::changeGeometryValues, error while replacing geometry: " + QString::number( res ) );
1226+
QgsMessageLog::logMessage( tr( "Geometry update for feature %1 failed: %2" ).arg( it.key() ).arg( res ), tr( "OGR" ) );
12301227
OGR_G_DestroyGeometry( theNewGeometry );
12311228
theNewGeometry = 0;
12321229
continue;
@@ -1235,7 +1232,7 @@ bool QgsOgrProvider::changeGeometryValues( QgsGeometryMap & geometry_map )
12351232

12361233
if (( res = OGR_L_SetFeature( ogrLayer, theOGRFeature ) ) != OGRERR_NONE )
12371234
{
1238-
QgsLogger::warning( "QgsOgrProvider::changeGeometryValues, error while setting feature: " + QString::number( res ) );
1235+
QgsMessageLog::logMessage( tr( "Update of feature %1 failed: %2" ).arg( it.key() ).arg( res ), tr( "OGR" ) );
12391236
OGR_G_DestroyGeometry( theNewGeometry );
12401237
theNewGeometry = 0;
12411238
continue;
@@ -1317,7 +1314,7 @@ bool QgsOgrProvider::deleteFeature( QgsFeatureId id )
13171314
{
13181315
if ( FID_TO_NUMBER( id ) > std::numeric_limits<long>::max() )
13191316
{
1320-
QgsDebugMsg( "id too large for OGR" );
1317+
QgsMessageLog::logMessage( tr( "id %1 too large for OGR" ).arg( id ), tr( "OGR" ) );
13211318
return false;
13221319
}
13231320

@@ -1425,7 +1422,7 @@ int QgsOgrProvider::capabilities() const
14251422

14261423
if ( mAttributeFields.size() == 0 )
14271424
{
1428-
QgsDebugMsg( "OGR doesn't handle shapefile without attributes well, ie. missing DBFs" );
1425+
QgsMessageLog::logMessage( tr( "Shapefiles without attribute are considered read-only." ), tr( "OGR" ) );
14291426
ability &= ~( AddFeatures | DeleteFeatures | ChangeAttributeValues | AddAttributes | DeleteAttributes );
14301427
}
14311428

@@ -1519,7 +1516,7 @@ QString createFilters( QString type )
15191516

15201517
if ( !driver )
15211518
{
1522-
QgsLogger::warning( "unable to get driver " + QString::number( i ) );
1519+
QgsMessageLog::logMessage( QObject::tr( "Unable to get driver %1" ).arg( i ), QObject::tr( "OGR" ) );
15231520
continue;
15241521
}
15251522

@@ -1705,7 +1702,7 @@ QString createFilters( QString type )
17051702
{
17061703
// NOP, we don't know anything about the current driver
17071704
// with regards to a proper file filter string
1708-
QgsDebugMsg( "fileVectorFilters, unknown driver: " + driverName );
1705+
QgsDebugMsg( QString( "Unknown driver %1 for file filters." ).arg( driverName ) );
17091706
}
17101707

17111708
} // each loaded GDAL driver
@@ -1874,7 +1871,7 @@ QGISEXTERN bool createEmptyDataSource( const QString &uri,
18741871
QString name = fldIt->first.left( 10 );
18751872
if ( fieldNames.contains( name ) )
18761873
{
1877-
QgsDebugMsg( QString( "duplicate field (10 significant characters): %1" ).arg( name ) );
1874+
QgsMessageLog::logMessage( QObject::tr( "Duplicate field (10 significant characters): %1" ).arg( name ), QObject::tr( "OGR" ) );
18781875
return false;
18791876
}
18801877
fieldNames << name;
@@ -1938,7 +1935,7 @@ QGISEXTERN bool createEmptyDataSource( const QString &uri,
19381935
break;
19391936
default:
19401937
{
1941-
QgsDebugMsg( QString( "Unknown vector type of: %1" ).arg(( int )( vectortype ) ) );
1938+
QgsMessageLog::logMessage( QObject::tr( "Unknown vector type of %1" ).arg(( int )( vectortype ) ), QObject::tr( "OGR" ) );
19421939
return false;
19431940
break;
19441941
}
@@ -2008,7 +2005,7 @@ QGISEXTERN bool createEmptyDataSource( const QString &uri,
20082005

20092006
if ( OGR_L_CreateField( layer, field, true ) != OGRERR_NONE )
20102007
{
2011-
QgsLogger::warning( "creation of field failed" );
2008+
QgsMessageLog::logMessage( QObject::tr( "creation of field %1 failed" ).arg( it->first ), QObject::tr( "OGR" ) );
20122009
}
20132010
}
20142011

@@ -2026,7 +2023,7 @@ QGISEXTERN bool createEmptyDataSource( const QString &uri,
20262023
}
20272024
else
20282025
{
2029-
QgsDebugMsg( "Couldn't open file " + layerName + ".qpj" );
2026+
QgsMessageLog::logMessage( QObject::tr( "Couldn't create file %1.qpj" ).arg( layerName ), QObject::tr( "OGR" ) );
20302027
}
20312028
}
20322029

@@ -2042,7 +2039,7 @@ QGISEXTERN bool createEmptyDataSource( const QString &uri,
20422039

20432040
QgsCoordinateReferenceSystem QgsOgrProvider::crs()
20442041
{
2045-
QgsDebugMsg( "entering." );
2042+
QgsDebugMsg( "Entering." );
20462043

20472044
QgsCoordinateReferenceSystem srs;
20482045

0 commit comments

Comments
 (0)
Please sign in to comment.