Skip to content

Commit 83d33b3

Browse files
author
jef
committed
fix #2763
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@13600 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 5ee6a71 commit 83d33b3

File tree

3 files changed

+18
-32
lines changed

3 files changed

+18
-32
lines changed

src/app/qgisapp.cpp

+11-29
Original file line numberDiff line numberDiff line change
@@ -2990,33 +2990,24 @@ void QgisApp::newVectorLayer()
29902990
std::list<std::pair<QString, QString> > attributes;
29912991
geomDialog.attributes( attributes );
29922992

2993-
bool haveLastUsedFilter = false; // by default, there is no last
2994-
// used filter
29952993
QString enc;
29962994
QString fileName;
29972995

2998-
QSettings settings; // where we keep last used filter in
2999-
// persistent state
3000-
3001-
haveLastUsedFilter = settings.contains( "/UI/lastVectorFileFilter" );
3002-
QString lastUsedFilter = settings.value( "/UI/lastVectorFileFilter",
3003-
QVariant( QString::null ) ).toString();
3004-
3005-
QString lastUsedDir = settings.value( "/UI/lastVectorFileFilterDir",
3006-
"." ).toString();
2996+
QSettings settings;
2997+
QString lastUsedDir = settings.value( "/UI/lastVectorFileFilterDir", "." ).toString();
30072998

30082999
QgsDebugMsg( "Saving vector file dialog without filters: " );
30093000

3010-
QgsEncodingFileDialog* openFileDialog = new QgsEncodingFileDialog( this,
3011-
tr( "Save As" ), lastUsedDir, "", QString( "" ) );
3001+
QgsEncodingFileDialog* openFileDialog =
3002+
new QgsEncodingFileDialog( this, tr( "Save As" ), lastUsedDir, "", QString( "" ) );
30123003

3013-
// allow for selection of more than one file
30143004
openFileDialog->setFileMode( QFileDialog::AnyFile );
30153005
openFileDialog->setAcceptMode( QFileDialog::AcceptSave );
30163006
openFileDialog->setConfirmOverwrite( true );
30173007

3018-
if ( haveLastUsedFilter ) // set the filter to the last one used
3008+
if ( settings.contains( "/UI/lastVectorFileFilter" ) )
30193009
{
3010+
QString lastUsedFilter = settings.value( "/UI/lastVectorFileFilter", QVariant( QString::null ) ).toString();
30203011
openFileDialog->selectFilter( lastUsedFilter );
30213012
}
30223013

@@ -3026,23 +3017,14 @@ void QgisApp::newVectorLayer()
30263017
return;
30273018
}
30283019

3029-
enc = openFileDialog->encoding();
3020+
fileName = openFileDialog->selectedFiles().first();
30303021

3031-
// If the file exists, delete it otherwise we'll end up loading that
3032-
// file, which can cause problems (e.g., if the file contains
3033-
// linestrings, but we're wanting to create points, we'll end up
3034-
// with a linestring file).
3035-
if ( fileformat == "ESRI Shapefile" )
3036-
{
3037-
QgsVectorFileWriter::deleteShapeFile( fileName );
3038-
}
3039-
else
3040-
{
3041-
QFile::remove( fileName );
3042-
}
3022+
if( fileformat == "ESRI Shapefile" && !fileName.endsWith( ".shp", Qt::CaseInsensitive ) )
3023+
fileName += ".shp";
30433024

3044-
settings.setValue( "/UI/lastVectorFileFilter", openFileDialog->selectedFilter() );
3025+
enc = openFileDialog->encoding();
30453026

3027+
settings.setValue( "/UI/lastVectorFileFilter", openFileDialog->selectedFilter() );
30463028
settings.setValue( "/UI/lastVectorFileFilterDir", openFileDialog->directory().absolutePath() );
30473029

30483030
delete openFileDialog;

src/providers/ogr/qgsogrprovider.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ email : sherman at mrcc.com
4343
#include "qgsgeometry.h"
4444
#include "qgslogger.h"
4545
#include "qgscoordinatereferencesystem.h"
46+
#include "qgsvectorfilewriter.h"
4647

4748
static const QString TEXT_PROVIDER_KEY = "ogr";
4849
static const QString TEXT_PROVIDER_DESCRIPTION =
@@ -1575,6 +1576,12 @@ QGISEXTERN bool createEmptyDataSource( const QString &uri,
15751576
}
15761577
fieldNames << name;
15771578
}
1579+
1580+
QgsVectorFileWriter::deleteShapeFile( uri );
1581+
}
1582+
else
1583+
{
1584+
QFile::remove( uri );
15781585
}
15791586

15801587
OGRDataSourceH dataSource;

src/providers/spatialite/qgsspatialiteprovider.cpp

-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ email : a.furieri@lqt.it
2323
#include <qgsrectangle.h>
2424
#include <qgscoordinatereferencesystem.h>
2525

26-
#include "qgsprovidercountcalcevent.h"
27-
#include "qgsproviderextentcalcevent.h"
28-
2926
#include "qgsspatialiteprovider.h"
3027

3128
#include "qgslogger.h"

0 commit comments

Comments
 (0)