@@ -4800,7 +4800,7 @@ void QgisApp::layerProperties()
48004800 showLayerProperties ( activeLayer () );
48014801}
48024802
4803- void QgisApp::deleteSelected ( QgsMapLayer *layer, QWidget* parent )
4803+ void QgisApp::deleteSelected ( QgsMapLayer *layer, QWidget* parent, bool promptConfirmation )
48044804{
48054805 if ( !layer )
48064806 {
@@ -4845,6 +4845,13 @@ void QgisApp::deleteSelected( QgsMapLayer *layer, QWidget* parent )
48454845 return ;
48464846 }
48474847
4848+ // display a warning
4849+ int numberOfDeletedFeatures = vlayer->selectedFeaturesIds ().size ();
4850+ if ( promptConfirmation && QMessageBox::warning ( parent, tr ( " Delete features" ), tr ( " Delete %n feature(s)?" , " number of features to delete" , numberOfDeletedFeatures ), QMessageBox::Ok, QMessageBox::Cancel ) == QMessageBox::Cancel )
4851+ {
4852+ return ;
4853+ }
4854+
48484855 vlayer->beginEditCommand ( tr ( " Features deleted" ) );
48494856 if ( !vlayer->deleteSelectedFeatures () )
48504857 {
@@ -6470,10 +6477,8 @@ void QgisApp::removeAllLayers()
64706477 QgsMapLayerRegistry::instance ()->removeAllMapLayers ();
64716478}
64726479
6473- void QgisApp::removeLayer ()
6480+ void QgisApp::removeLayer ( bool promptConfirmation )
64746481{
6475- int numberOfRemovedLayers = 0 ;
6476-
64776482 if ( mMapCanvas && mMapCanvas ->isDrawing () )
64786483 {
64796484 return ;
@@ -6489,12 +6494,11 @@ void QgisApp::removeLayer()
64896494 QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer*>( layer );
64906495 if ( vlayer && vlayer->isEditable () && !toggleEditing ( vlayer, true ) )
64916496 return ;
6492-
6493- numberOfRemovedLayers++;
64946497 }
64956498
64966499 // display a warning
6497- if ( QMessageBox::warning ( this , tr ( " Remove layers" ), tr ( " Remove %n layer(s)?" , " number of layers to remove" , numberOfRemovedLayers ), QMessageBox::Ok, QMessageBox::Cancel ) == QMessageBox::Cancel )
6500+ int numberOfRemovedLayers = mMapLegend ->selectedLayers ().size ();
6501+ if ( promptConfirmation && QMessageBox::warning ( this , tr ( " Remove layers" ), tr ( " Remove %n layer(s)?" , " number of layers to remove" , numberOfRemovedLayers ), QMessageBox::Ok, QMessageBox::Cancel ) == QMessageBox::Cancel )
64986502 {
64996503 return ;
65006504 }
@@ -9052,6 +9056,11 @@ void QgisApp::keyPressEvent( QKeyEvent * e )
90529056 {
90539057 stopRendering ();
90549058 }
9059+ // remove selected layers
9060+ else if ( e->key () == Qt::Key_D )
9061+ {
9062+ removeLayer ( true );
9063+ }
90559064#if defined(Q_OS_WIN)&& defined(QGISDEBUG)
90569065 else if ( e->key () == Qt::Key_Backslash && e->modifiers () & Qt::ControlModifier )
90579066 {
0 commit comments