X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/107d445a66756e4ef2a54bbe00199f12b9929e31..020b155be89ee1825309eb6d8d1958f3b46c310d:/src/viklayerspanel.c?ds=sidebyside diff --git a/src/viklayerspanel.c b/src/viklayerspanel.c index a64ca5a7..e359b162 100644 --- a/src/viklayerspanel.c +++ b/src/viklayerspanel.c @@ -457,7 +457,7 @@ void vik_layers_panel_cut_selected ( VikLayersPanel *vlp ) VikAggregateLayer *parent = vik_treeview_item_get_parent ( vlp->vt, &iter ); if ( parent ) { - a_clipboard_copy ( vlp ); + a_clipboard_copy_selected ( vlp ); if ( vik_aggregate_layer_delete ( parent, &iter ) ) vik_layers_panel_emit_update ( vlp ); } @@ -476,13 +476,12 @@ void vik_layers_panel_copy_selected ( VikLayersPanel *vlp ) type = vik_treeview_item_get_type ( vlp->vt, &iter ); if ( type == VIK_TREEVIEW_TYPE_LAYER ) { - a_clipboard_copy ( vlp ); + a_clipboard_copy_selected ( vlp ); } } void vik_layers_panel_paste_selected ( VikLayersPanel *vlp ) { - gint type; GtkTreeIter iter; g_return_if_fail ( vik_treeview_get_selected_iter ( vlp->vt, &iter ) ); a_clipboard_paste ( vlp ); @@ -513,7 +512,8 @@ void vik_layers_panel_delete_selected ( VikLayersPanel *vlp ) else if (type == VIK_TREEVIEW_TYPE_SUBLAYER) { VikLayer *sel = vik_layers_panel_get_selected ( vlp ); if ( vik_layer_get_interface(sel->type)->delete_item ) { - vik_layer_get_interface(sel->type)->delete_item ( sel, type, vik_treeview_item_get_pointer(sel->vt, &iter) ); + gint subtype = vik_treeview_item_get_data( vlp->vt, &iter); + vik_layer_get_interface(sel->type)->delete_item ( sel, subtype, vik_treeview_item_get_pointer(sel->vt, &iter) ); } } } @@ -577,6 +577,13 @@ VikLayer *vik_layers_panel_get_layer_of_type ( VikLayersPanel *vlp, gint type ) return rv; } +GList *vik_layers_panel_get_all_layers_of_type(VikLayersPanel *vlp, gint type) +{ + GList *layers = NULL; + + return (vik_aggregate_layer_get_all_layers_of_type ( vlp->toplayer, layers, type )); +} + VikAggregateLayer *vik_layers_panel_get_top_layer ( VikLayersPanel *vlp ) { return vlp->toplayer;