[QGIS Commit] r13600 - in trunk/qgis/src: app providers/ogr
providers/spatialite
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Sun May 30 05:13:16 EDT 2010
Author: jef
Date: 2010-05-30 05:13:15 -0400 (Sun, 30 May 2010)
New Revision: 13600
Modified:
trunk/qgis/src/app/qgisapp.cpp
trunk/qgis/src/providers/ogr/qgsogrprovider.cpp
trunk/qgis/src/providers/spatialite/qgsspatialiteprovider.cpp
Log:
fix #2763
Modified: trunk/qgis/src/app/qgisapp.cpp
===================================================================
--- trunk/qgis/src/app/qgisapp.cpp 2010-05-29 22:56:39 UTC (rev 13599)
+++ trunk/qgis/src/app/qgisapp.cpp 2010-05-30 09:13:15 UTC (rev 13600)
@@ -2990,33 +2990,24 @@
std::list<std::pair<QString, QString> > attributes;
geomDialog.attributes( attributes );
- bool haveLastUsedFilter = false; // by default, there is no last
- // used filter
QString enc;
QString fileName;
- QSettings settings; // where we keep last used filter in
- // persistent state
+ QSettings settings;
+ QString lastUsedDir = settings.value( "/UI/lastVectorFileFilterDir", "." ).toString();
- haveLastUsedFilter = settings.contains( "/UI/lastVectorFileFilter" );
- QString lastUsedFilter = settings.value( "/UI/lastVectorFileFilter",
- QVariant( QString::null ) ).toString();
-
- QString lastUsedDir = settings.value( "/UI/lastVectorFileFilterDir",
- "." ).toString();
-
QgsDebugMsg( "Saving vector file dialog without filters: " );
- QgsEncodingFileDialog* openFileDialog = new QgsEncodingFileDialog( this,
- tr( "Save As" ), lastUsedDir, "", QString( "" ) );
+ QgsEncodingFileDialog* openFileDialog =
+ new QgsEncodingFileDialog( this, tr( "Save As" ), lastUsedDir, "", QString( "" ) );
- // allow for selection of more than one file
openFileDialog->setFileMode( QFileDialog::AnyFile );
openFileDialog->setAcceptMode( QFileDialog::AcceptSave );
openFileDialog->setConfirmOverwrite( true );
- if ( haveLastUsedFilter ) // set the filter to the last one used
+ if ( settings.contains( "/UI/lastVectorFileFilter" ) )
{
+ QString lastUsedFilter = settings.value( "/UI/lastVectorFileFilter", QVariant( QString::null ) ).toString();
openFileDialog->selectFilter( lastUsedFilter );
}
@@ -3026,23 +3017,14 @@
return;
}
- enc = openFileDialog->encoding();
+ fileName = openFileDialog->selectedFiles().first();
- // If the file exists, delete it otherwise we'll end up loading that
- // file, which can cause problems (e.g., if the file contains
- // linestrings, but we're wanting to create points, we'll end up
- // with a linestring file).
- if ( fileformat == "ESRI Shapefile" )
- {
- QgsVectorFileWriter::deleteShapeFile( fileName );
- }
- else
- {
- QFile::remove( fileName );
- }
+ if( fileformat == "ESRI Shapefile" && !fileName.endsWith( ".shp", Qt::CaseInsensitive ) )
+ fileName += ".shp";
- settings.setValue( "/UI/lastVectorFileFilter", openFileDialog->selectedFilter() );
+ enc = openFileDialog->encoding();
+ settings.setValue( "/UI/lastVectorFileFilter", openFileDialog->selectedFilter() );
settings.setValue( "/UI/lastVectorFileFilterDir", openFileDialog->directory().absolutePath() );
delete openFileDialog;
Modified: trunk/qgis/src/providers/ogr/qgsogrprovider.cpp
===================================================================
--- trunk/qgis/src/providers/ogr/qgsogrprovider.cpp 2010-05-29 22:56:39 UTC (rev 13599)
+++ trunk/qgis/src/providers/ogr/qgsogrprovider.cpp 2010-05-30 09:13:15 UTC (rev 13600)
@@ -43,6 +43,7 @@
#include "qgsgeometry.h"
#include "qgslogger.h"
#include "qgscoordinatereferencesystem.h"
+#include "qgsvectorfilewriter.h"
static const QString TEXT_PROVIDER_KEY = "ogr";
static const QString TEXT_PROVIDER_DESCRIPTION =
@@ -1575,7 +1576,13 @@
}
fieldNames << name;
}
+
+ QgsVectorFileWriter::deleteShapeFile( uri );
}
+ else
+ {
+ QFile::remove( uri );
+ }
OGRDataSourceH dataSource;
dataSource = OGR_Dr_CreateDataSource( driver, QFile::encodeName( uri ).constData(), NULL );
Modified: trunk/qgis/src/providers/spatialite/qgsspatialiteprovider.cpp
===================================================================
--- trunk/qgis/src/providers/spatialite/qgsspatialiteprovider.cpp 2010-05-29 22:56:39 UTC (rev 13599)
+++ trunk/qgis/src/providers/spatialite/qgsspatialiteprovider.cpp 2010-05-30 09:13:15 UTC (rev 13600)
@@ -23,9 +23,6 @@
#include <qgsrectangle.h>
#include <qgscoordinatereferencesystem.h>
-#include "qgsprovidercountcalcevent.h"
-#include "qgsproviderextentcalcevent.h"
-
#include "qgsspatialiteprovider.h"
#include "qgslogger.h"
More information about the QGIS-commit
mailing list