Navigation Menu

Skip to content

Commit

Permalink
Fix GPKG delete from browser stored connection
Browse files Browse the repository at this point in the history
Fixes #36930 - also delete from stored connections
before refresh.
  • Loading branch information
elpaso committed Jun 3, 2020
1 parent af474ea commit d7a33d3
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions src/gui/providers/ogr/qgsgeopackageitemguiprovider.cpp
Expand Up @@ -119,6 +119,7 @@ void QgsGeoPackageItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu
QAction *actionDelete = new QAction( message, collectionItem->parent() );
QVariantMap dataDelete;
dataDelete.insert( QStringLiteral( "path" ), collectionItem->path() );
dataDelete.insert( QStringLiteral( "name" ), collectionItem->name() );
dataDelete.insert( QStringLiteral( "parent" ), QVariant::fromValue( QPointer< QgsDataItem >( collectionItem->parent() ) ) );
actionDelete->setData( dataDelete );
connect( actionDelete, &QAction::triggered, this, &QgsGeoPackageItemGuiProvider::deleteGpkg );
Expand All @@ -139,7 +140,8 @@ void QgsGeoPackageItemGuiProvider::deleteGpkg()
{
QAction *s = qobject_cast<QAction *>( sender() );
QVariantMap data = s->data().toMap();
const QString path = data[QStringLiteral( "path" )].toString();
const QString path = data[QStringLiteral( "path" )].toString().remove( QStringLiteral( "gpkg:/" ) );
const QString name = data[QStringLiteral( "name" )].toString();
QPointer< QgsDataItem > parent = data[QStringLiteral( "parent" )].value<QPointer< QgsDataItem >>();
if ( parent )
{
Expand Down Expand Up @@ -171,6 +173,13 @@ void QgsGeoPackageItemGuiProvider::deleteGpkg()
else
{
QMessageBox::information( nullptr, title, tr( "GeoPackage deleted successfully." ) );
// If the deleted file was a stored connection, remove it too
if ( ! name.isEmpty() )
{
QgsProviderMetadata *md { QgsProviderRegistry::instance()->providerMetadata( QStringLiteral( "ogr" ) ) };
std::unique_ptr<QgsAbstractProviderConnection> conn { md->createConnection( name ) };
conn->remove( name );
}
if ( parent )
parent->refresh();
}
Expand Down Expand Up @@ -363,7 +372,7 @@ void QgsGeoPackageItemGuiProvider::vacuum()
{
QAction *s = qobject_cast<QAction *>( sender() );
QVariantMap data = s->data().toMap();
const QString path = data[QStringLiteral( "path" )].toString();
const QString path = data[QStringLiteral( "path" )].toString().remove( QStringLiteral( "gpkg:/" ) );
const QString name = data[QStringLiteral( "name" )].toString();
vacuumGeoPackageDbAction( path, name );
}
Expand Down

0 comments on commit d7a33d3

Please sign in to comment.