[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