From bf490ae71c690a9457b4fb8cf23670bb8cda3957 Mon Sep 17 00:00:00 2001 From: Rob Norris Date: Sat, 19 Dec 2015 10:07:36 +0000 Subject: [PATCH] Don't remove project name if one decides not to delete all layers. --- src/viklayerspanel.c | 5 ++++- src/vikwindow.c | 15 ++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/viklayerspanel.c b/src/viklayerspanel.c index 6326fe2d..60ff221b 100644 --- a/src/viklayerspanel.c +++ b/src/viklayerspanel.c @@ -748,9 +748,12 @@ VikAggregateLayer *vik_layers_panel_get_top_layer ( VikLayersPanel *vlp ) return vlp->toplayer; } +/** + * Remove all layers + */ void vik_layers_panel_clear ( VikLayersPanel *vlp ) { - if ( (! vik_aggregate_layer_is_empty(vlp->toplayer)) && a_dialog_yes_or_no ( VIK_GTK_WINDOW_FROM_WIDGET(vlp), _("Are you sure you wish to delete all layers?"), NULL ) ) { + if ( ! vik_aggregate_layer_is_empty(vlp->toplayer) ) { g_signal_emit ( G_OBJECT(vlp), layers_panel_signals[VLP_DELETE_LAYER_SIGNAL], 0 ); vik_aggregate_layer_clear ( vlp->toplayer ); /* simply deletes all layers */ } diff --git a/src/vikwindow.c b/src/vikwindow.c index b89791fb..39146d2a 100644 --- a/src/vikwindow.c +++ b/src/vikwindow.c @@ -3751,11 +3751,20 @@ static void default_location_cb ( GtkAction *a, VikWindow *vw ) a_preferences_save_to_file(); } +/** + * Delete All + */ static void clear_cb ( GtkAction *a, VikWindow *vw ) { - vik_layers_panel_clear ( vw->viking_vlp ); - window_set_filename ( vw, NULL ); - draw_update ( vw ); + // Do nothing if empty + VikAggregateLayer *top = vik_layers_panel_get_top_layer(vw->viking_vlp); + if ( ! vik_aggregate_layer_is_empty(top) ) { + if ( a_dialog_yes_or_no ( GTK_WINDOW(vw), _("Are you sure you wish to delete all layers?"), NULL ) ) { + vik_layers_panel_clear ( vw->viking_vlp ); + window_set_filename ( vw, NULL ); + draw_update ( vw ); + } + } } static void window_close ( GtkAction *a, VikWindow *vw ) -- 2.39.5