diff --git a/python/core/qgsvectorfilewriter.sip b/python/core/qgsvectorfilewriter.sip index 3db6aa9c680..5011070a649 100644 --- a/python/core/qgsvectorfilewriter.sip +++ b/python/core/qgsvectorfilewriter.sip @@ -21,7 +21,12 @@ public: NoError = 0, ErrDriverNotFound, ErrCreateDataSource, - ErrCreateLayer + ErrCreateLayer, + ErrAttributeTypeUnsupported, + ErrAttributeCreationFailed, + ErrProjection, // added in 1.5 + ErrFeatureWriteFailed, // added in 1.6 + ErrInvalidLayer, // added in 2.0 }; /** Write contents of vector layer to a shapefile diff --git a/src/core/qgsvectorfilewriter.cpp b/src/core/qgsvectorfilewriter.cpp index b5b6a5962e2..6de11eb7c93 100644 --- a/src/core/qgsvectorfilewriter.cpp +++ b/src/core/qgsvectorfilewriter.cpp @@ -588,6 +588,11 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer* layer, QgsCoordinateTransform* ct = 0; int shallTransform = false; + if ( layer == NULL ) + { + return ErrInvalidLayer; + } + if ( destCRS && destCRS->isValid() ) { // This means we should transform diff --git a/src/core/qgsvectorfilewriter.h b/src/core/qgsvectorfilewriter.h index 6322e71ce8e..851ce43cf56 100644 --- a/src/core/qgsvectorfilewriter.h +++ b/src/core/qgsvectorfilewriter.h @@ -53,6 +53,7 @@ class CORE_EXPORT QgsVectorFileWriter ErrAttributeCreationFailed, ErrProjection, // added in 1.5 ErrFeatureWriteFailed, // added in 1.6 + ErrInvalidLayer, // added in 2.0 }; /** Write contents of vector layer to a shapefile