[QGIS Commit] r15178 - in trunk/qgis/src: core providers/ogr

svn_qgis at osgeo.org svn_qgis at osgeo.org
Wed Feb 16 06:04:49 EST 2011


Author: jef
Date: 2011-02-16 03:04:49 -0800 (Wed, 16 Feb 2011)
New Revision: 15178

Modified:
   trunk/qgis/src/core/qgsvectorfilewriter.cpp
   trunk/qgis/src/providers/ogr/qgsogrprovider.cpp
Log:
fix #3945 (following up on r15148)

Modified: trunk/qgis/src/core/qgsvectorfilewriter.cpp
===================================================================
--- trunk/qgis/src/core/qgsvectorfilewriter.cpp	2011-02-16 09:52:24 UTC (rev 15177)
+++ trunk/qgis/src/core/qgsvectorfilewriter.cpp	2011-02-16 11:04:49 UTC (rev 15178)
@@ -42,7 +42,15 @@
 #include <cpl_error.h>
 #include <cpl_conv.h>
 
+#if defined(GDAL_VERSION_NUM) && GDAL_VERSION_NUM >= 1800
+#define TO8(x)   (x).toUtf8().constData()
+#define TO8F(x)  (x).toUtf8().constData()
+#else
+#define TO8(x)   (x).toLocal8Bit().constData()
+#define TO8F(x)  QFile::encodeName( x ).constData()
+#endif
 
+
 QgsVectorFileWriter::QgsVectorFileWriter(
   const QString &theVectorFileName,
   const QString &theFileEncoding,
@@ -144,7 +152,7 @@
   }
 
   // create the data source
-  mDS = OGR_Dr_CreateDataSource( poDriver, vectorFileName.toLocal8Bit().data(), options );
+  mDS = OGR_Dr_CreateDataSource( poDriver, TO8( vectorFileName ), options );
 
   if ( options )
   {
@@ -202,7 +210,7 @@
     options[ layerOptions.size()] = NULL;
   }
 
-  mLayer = OGR_DS_CreateLayer( mDS, QFile::encodeName( layerName ).data(), ogrRef, wkbType, options );
+  mLayer = OGR_DS_CreateLayer( mDS, TO8F( layerName ), ogrRef, wkbType, options );
 
   if ( options )
   {

Modified: trunk/qgis/src/providers/ogr/qgsogrprovider.cpp
===================================================================
--- trunk/qgis/src/providers/ogr/qgsogrprovider.cpp	2011-02-16 09:52:24 UTC (rev 15177)
+++ trunk/qgis/src/providers/ogr/qgsogrprovider.cpp	2011-02-16 11:04:49 UTC (rev 15178)
@@ -1622,7 +1622,7 @@
   }
 
   OGRDataSourceH dataSource;
-  dataSource = OGR_Dr_CreateDataSource( driver, QFile::encodeName( uri ).constData(), NULL );
+  dataSource = OGR_Dr_CreateDataSource( driver, TO8F( uri ), NULL );
   if ( dataSource == NULL )
   {
     return false;
@@ -1679,7 +1679,7 @@
   }
 
   OGRLayerH layer;
-  layer = OGR_DS_CreateLayer( dataSource, QFile::encodeName( QFileInfo( uri ).completeBaseName() ).constData(), reference, OGRvectortype, NULL );
+  layer = OGR_DS_CreateLayer( dataSource, TO8F( QFileInfo( uri ).completeBaseName() ), reference, OGRvectortype, NULL );
   if ( layer == NULL )
   {
     return false;



More information about the QGIS-commit mailing list