make confirmation on layer deletion optional (fixes #9094)

This commit is contained in:
Juergen E. Fischer 2014-02-25 19:51:42 +01:00
parent af17dbf3b2
commit e9f808ad0f
4 changed files with 21 additions and 10 deletions

View File

@ -6394,7 +6394,7 @@ void QgisApp::removeAllLayers()
QgsMapLayerRegistry::instance()->removeAllMapLayers();
}
void QgisApp::removeLayer( bool promptConfirmation )
void QgisApp::removeLayer()
{
if ( !mMapLegend )
{
@ -6412,20 +6412,22 @@ void QgisApp::removeLayer( bool promptConfirmation )
int numberOfRemovedItems = mMapLegend->selectedItems().size();
if ( numberOfRemovedItems == 0 )
{
messageBar()->pushMessage( tr( "No Object Selected" ),
tr( "To remove objects, you must select them in the legend" ),
messageBar()->pushMessage( tr( "No layers selected" ),
tr( "To remove layers, you must select them in the legend" ),
QgsMessageBar::INFO, messageTimeout() );
return;
}
bool promptConfirmation = QSettings().value( "qgis/askToDeleteLayers", true ).toBool();
//display a warning
if ( promptConfirmation && QMessageBox::warning( this, tr( "Remove objects" ), tr( "Remove %n object(s)?", "number of objects to remove", numberOfRemovedItems ), QMessageBox::Ok | QMessageBox::Cancel ) == QMessageBox::Cancel )
if ( promptConfirmation && QMessageBox::warning( this, tr( "Remove layers" ), tr( "Remove %n layers(s)?", "number of layers to remove", numberOfRemovedItems ), QMessageBox::Ok | QMessageBox::Cancel ) == QMessageBox::Cancel )
{
return;
}
mMapLegend->removeSelectedLayers();
showStatusMessage( tr( "%n object(s) removed.", "number of objects removed", numberOfRemovedItems ) );
showStatusMessage( tr( "%n layers(s) removed.", "number of layers to removed", numberOfRemovedItems ) );
mMapCanvas->refresh();
}

View File

@ -689,7 +689,7 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
//! Slot to handle user center input;
void userCenter();
//! Remove a layer from the map and legend
void removeLayer( bool promptConfirmation = true );
void removeLayer();
/** Duplicate map layer(s) in legend
* @note added in 1.9 */
void duplicateLayers( const QList<QgsMapLayer *> lyrList = QList<QgsMapLayer *>() );

View File

@ -635,6 +635,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WFlags fl ) :
mProjectOnLaunchPushBtn->setEnabled( projOpen == 2 );
chbAskToSaveProjectChanges->setChecked( settings.value( "qgis/askToSaveProjectChanges", QVariant( true ) ).toBool() );
mLayerDeleteConfirmationChkBx->setChecked( settings.value( "qgis/askToDeleteLayers", true ).toBool() );
chbWarnOldProjectVersion->setChecked( settings.value( "/qgis/warnOldProjectVersion", QVariant( true ) ).toBool() );
cmbEnableMacros->setCurrentIndex( settings.value( "/qgis/enableMacros", 1 ).toInt() );
@ -1086,6 +1087,7 @@ void QgsOptions::saveOptions()
settings.setValue( "/qgis/projOpenAtLaunchPath", mProjectOnLaunchLineEdit->text() );
settings.setValue( "/qgis/askToSaveProjectChanges", chbAskToSaveProjectChanges->isChecked() );
settings.setValue( "qgis/askToDeleteLayers", mLayerDeleteConfirmationChkBx->isChecked() );
settings.setValue( "/qgis/warnOldProjectVersion", chbWarnOldProjectVersion->isChecked() );
if (( settings.value( "/qgis/projectTemplateDir" ).toString() != leTemplateFolder->text() ) ||
( settings.value( "/qgis/newProjectDefault" ).toBool() != cbxProjectDefaultNew->isChecked() ) )

View File

@ -823,6 +823,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mLayerDeleteConfirmationChkBx">
<property name="text">
<string>Prompt for confirmation when a layer is to be removed</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="chbWarnOldProjectVersion">
<property name="text">
@ -1618,7 +1625,7 @@
</widget>
</item>
<item>
<spacer name="horizontalSpacer_38">
<spacer name="horizontalSpacer_41">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -1656,7 +1663,7 @@
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_56">
<widget class="QLabel" name="label_65">
<property name="text">
<string>Simplification threshold (higher values result in more simplification): </string>
</property>
@ -2896,7 +2903,7 @@
</layout>
</widget>
<widget class="QWidget" name="mOptionsPageComposer">
<layout class="QVBoxLayout" name="verticalLayout_9">
<layout class="QVBoxLayout" name="verticalLayout_36">
<property name="margin">
<number>0</number>
</property>
@ -2928,7 +2935,7 @@
</property>
<layout class="QGridLayout" name="gridLayout_8">
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<layout class="QHBoxLayout" name="horizontalLayout_39">
<item>
<widget class="QLabel" name="label_60">
<property name="text">