diff --git a/src/providers/ogr/qgsgeopackagedataitems.cpp b/src/providers/ogr/qgsgeopackagedataitems.cpp index dd9db7d4725..6fab61e935c 100644 --- a/src/providers/ogr/qgsgeopackagedataitems.cpp +++ b/src/providers/ogr/qgsgeopackagedataitems.cpp @@ -166,10 +166,19 @@ QList QgsGeoPackageCollectionItem::actions() { QList lst; - // Add to stored connections - QAction *actionAddConnection = new QAction( tr( "Add connection" ), this ); - connect( actionAddConnection, &QAction::triggered, this, &QgsGeoPackageCollectionItem::addConnection ); - lst.append( actionAddConnection ); + if ( QgsOgrDbConnection::connectionList( QStringLiteral( "GPKG" ) ).contains( mName ) ) + { + QAction *actionDeleteConnection = new QAction( tr( "Remove connection" ), this ); + connect( actionDeleteConnection, &QAction::triggered, this, &QgsGeoPackageConnectionItem::deleteConnection ); + lst.append( actionDeleteConnection ); + } + else + { + // Add to stored connections + QAction *actionAddConnection = new QAction( tr( "Add connection" ), this ); + connect( actionAddConnection, &QAction::triggered, this, &QgsGeoPackageCollectionItem::addConnection ); + lst.append( actionAddConnection ); + } // Add table to existing DB QAction *actionAddTable = new QAction( tr( "Create a new layer or table..." ), this ); @@ -481,7 +490,7 @@ QList QgsGeoPackageConnectionItem::actions() return lst; } -void QgsGeoPackageConnectionItem::deleteConnection() +void QgsGeoPackageCollectionItem::deleteConnection() { QgsOgrDbConnection::deleteConnection( name(), QStringLiteral( "GPKG" ) ); mParent->refreshConnections(); diff --git a/src/providers/ogr/qgsgeopackagedataitems.h b/src/providers/ogr/qgsgeopackagedataitems.h index 3e4b93ac427..e4b49233ae7 100644 --- a/src/providers/ogr/qgsgeopackagedataitems.h +++ b/src/providers/ogr/qgsgeopackagedataitems.h @@ -93,6 +93,7 @@ class QgsGeoPackageCollectionItem : public QgsDataCollectionItem #ifdef HAVE_GUI void addTable(); void addConnection(); + void deleteConnection(); #endif protected: @@ -119,7 +120,6 @@ class QgsGeoPackageConnectionItem : public QgsGeoPackageCollectionItem public slots: #ifdef HAVE_GUI void editConnection(); - void deleteConnection(); #endif };