diff --git a/src/providers/ogr/qgsgeopackagedataitems.cpp b/src/providers/ogr/qgsgeopackagedataitems.cpp index 94be51fa2d1..b990200b2ab 100644 --- a/src/providers/ogr/qgsgeopackagedataitems.cpp +++ b/src/providers/ogr/qgsgeopackagedataitems.cpp @@ -86,10 +86,10 @@ QList QgsGeoPackageAbstractLayerItem::actions( QWidget * ) connect( actionDeleteLayer, &QAction::triggered, this, [ = ] { QList items = selectedItems(); - for ( const QgsDataItem *item : items ) + for ( QgsDataItem *item : items ) { - if ( const QgsGeoPackageAbstractLayerItem *gpkgAbstractItem = qobject_cast( item ) ) - deleteLayer( gpkgAbstractItem ); + if ( QgsGeoPackageAbstractLayerItem *gpkgAbstractItem = qobject_cast< QgsGeoPackageAbstractLayerItem *>( item ) ) + gpkgAbstractItem->deleteLayer(); } } ) ; lst.append( actionDeleteLayer ); @@ -499,7 +499,7 @@ void QgsGeoPackageCollectionItem::vacuumGeoPackageDbAction() } } -void QgsGeoPackageAbstractLayerItem::deleteLayer( const QgsGeoPackageAbstractLayerItem *item ) +void QgsGeoPackageAbstractLayerItem::deleteLayer() { //dave: here we are - we need to find out what other layers in the gpkg are selected and delete em // Check if the layer(s) are in the registry @@ -507,7 +507,7 @@ void QgsGeoPackageAbstractLayerItem::deleteLayer( const QgsGeoPackageAbstractLay const auto mapLayers( QgsProject::instance()->mapLayers() ); for ( QgsMapLayer *layer : mapLayers ) { - if ( layer->publicSource() == item->uri() ) + if ( layer->publicSource() == mUri ) { layersList << layer; } @@ -516,13 +516,13 @@ void QgsGeoPackageAbstractLayerItem::deleteLayer( const QgsGeoPackageAbstractLay if ( ! layersList.isEmpty( ) ) { if ( QMessageBox::question( nullptr, QObject::tr( "Delete Layer" ), QObject::tr( "The layer %1 exists in the current project %2," - " do you want to remove it from the project and delete it?" ).arg( item->name(), layersList.at( 0 )->name() ), QMessageBox::Yes | QMessageBox::No, QMessageBox::No ) != QMessageBox::Yes ) + " do you want to remove it from the project and delete it?" ).arg( mName, layersList.at( 0 )->name() ), QMessageBox::Yes | QMessageBox::No, QMessageBox::No ) != QMessageBox::Yes ) { return; } } else if ( QMessageBox::question( nullptr, QObject::tr( "Delete Layer" ), - QObject::tr( "Are you sure you want to delete layer %1 from GeoPackage?" ).arg( item->name() ), + QObject::tr( "Are you sure you want to delete layer %1 from GeoPackage?" ).arg( mName ), QMessageBox::Yes | QMessageBox::No, QMessageBox::No ) != QMessageBox::Yes ) { return; @@ -541,7 +541,7 @@ void QgsGeoPackageAbstractLayerItem::deleteLayer( const QgsGeoPackageAbstractLay } else { - QMessageBox::information( nullptr, tr( "Delete Layer" ), tr( "Layer %1 deleted successfully." ).arg( item->name() ) ); + QMessageBox::information( nullptr, tr( "Delete Layer" ), tr( "Layer %1 deleted successfully." ).arg( mName ) ); if ( mParent ) mParent->refreshConnections(); } diff --git a/src/providers/ogr/qgsgeopackagedataitems.h b/src/providers/ogr/qgsgeopackagedataitems.h index a2375cf1bc4..6b34f98ac63 100644 --- a/src/providers/ogr/qgsgeopackagedataitems.h +++ b/src/providers/ogr/qgsgeopackagedataitems.h @@ -42,7 +42,7 @@ class QgsGeoPackageAbstractLayerItem : public QgsLayerItem #ifdef HAVE_GUI QList actions( QWidget *menu ) override; public slots: - virtual void deleteLayer( const QgsGeoPackageAbstractLayerItem *item ); + virtual void deleteLayer(); #endif };